팀 개발을 위한 Git, GitHub 시작하기 - 4, 5

CHAPTER 4 : 둘 이상의 원격저장소로 협업하기

🖊01.원본저장소를 복사해서 너구리의 원격저장소를 만든다(fork)

포크와 브랜치의 차이

🖊02.원본저장소에 풀 리퀘스트 보내기

🖊03.묵은 커밋을 새 커밋으로 이력 조작하기(rebase)

강제푸시 터미널
git push --force origin master

CHAPTER 5 : 실무 사례와 함께 Git 다루기

🖊01.실습을 위한 사전준비 : 새로운 원격저장소 만들기

🖊02.amend: 수정못한 파일이 있어요, 방금 만든 커밋에 추가하고 싶어요.

 git commit --amend
를 치면 vi 에디터가 열린다 ! 이때 당황하지말고 맨 위에있는 메세지를 수정하거나, 파일을 다시 추가하고싶은거면 종료해주면 된다!

vi > 저장 종료 :wq!
esc 눌러야 명령어 입력
r 커서위치 한글자 교체
R 커서위치부터 esc 누를때까지 다른글자로 교체</pre></code>
참고 : [vi edit](https://wiki.kldp.org/KoreanDoc/html/Vim_Guide-KLDP/Vim_Guide-KLDP.html)

**🖊03.cherry-pick: 저 커밋 하나만 떼서 지금 브랜치에 붙이고 싶어요**

- 다른 브랜치의 커밋 하나만 내 브랜치에 반영하기 : cherry-pick
- 해당 브랜치에 있는 상태에서 복제하길 원하는 커밋에 오른쪽마우스 누르고 체리픽 클릭!



- 위와 같이 두개 다 체크한 뒤 continue 버튼을 눌러준다.
- 이렇게 가져오게 되면, 내용은 가져오지만 같은 커밋은 아니기 때문에 커밋ID는 다르다.

**🖊04.reset: 옛날 커밋으로 브랜치를 되돌리고 싶어요**

- Soft / Mixed reset : 모든 기억을 남기면서 브랜치를 되돌리기



- 돌리고 싶은 커밋의 오른쪽 마우스 누르고 [~를 이 커밋으로 초기화] 클릭
- 밑에와 같은 창이 뜬다



- Hard = 작업 공간이 더럽던 깨끗하던, 깔끔하게 히스토리를 돌리겠다. (변경사항 날려먹음)
- Mixed = 변경사항을 작업공간에 뽑아둠, 커밋은 없던걸로 되돌렸지만 ~.md 파일을 만든 기록이 스테이지 아래에 살아있다 > 다시 수정 가능 (무엇을 스테이지에 올릴지 고민 가능)
- Soft = 변경사항을 작업공간에 Mixed 와 같이 뽑아두는데, Soft 는 변경사항을 스테이지에 올려논다. 당장 커밋 가능

- 로컬을 reset 해도 원격은 그대로 남아있는 경우가 많다. 그럴때는 강제푸시로 같이 뒤로 돌려줘야 한다.

**🖊05.revert: 이 커밋의 변경사항을 되돌리고 싶어요**

- revert : 커밋의 변경사항 되돌리는 새로운 커밋 만들기
- 이상하게, 잘못 커밋했을때 되돌리는 방법 : 해당 커밋의 오른쪽 마우스 클릭 후 밑에와 같이 커밋 되돌리기 버튼 클릭



**🖊06.stash: 변경사항을 잠시 다른곳에 저장하고 싶어요, 커밋은 안만들래요**

- stash : 커밋하지 않은 변경 사항을 서랍 속에 넣어두기
- 커밋하기엔 애매한 파일들!
- 해당 파일 누른 뒤, 스태시 클릭! **참고로 stash에는 tracked 상태 (추적중 - 한번이라도 깃에 올렸던 상태)인 파일들만 들어간다**
- 스태시를 다시 꺼낼때에는 왼쪽 바에서 원하는 스태시를 클릭 후 적용하면 끝!