intro
팀 프로젝트 깜지(레시피 암기 서비스)를 진행하는데 코드 짜는 것은 문제가 안되지만 github로 모든 코드를 같이 공유하고 관리하는 것은 처음이라 초기 git설정에서 애먹었다.
누군가와 같이 프로젝트를 진행한다면 git사용은 거의 불가피한 선택이다. 일단 주로 내가 사용되는 명령어는 pull, branch, commit, checkout, push 정도인거 같다.
프로젝트 git 구조

remote branch에 올린 것들을 sub branch에서 한 번 병합한 뒤, 검토하고 main branch에 push하는 방식이다.
명령어
git pull
git pull [원격 저장소 이름] [브랜치 이름]
- 최근에 업데이트된 코드를 가져와서 병합(merge)까지 하는 명령어.
- clone과 비슷하지만 clone은 완전 복사해서 내 로컬 저장소에 넣어서 같아지는 것. 반면 pull은 업데이트된 부분만 가져와서 내 코드에 접목시킨다.
- 내가 작성한 코드를 계속 remote branch에 push하다가 sub branch에 보낼일이 생겼을 때, sub branch가 변경사항이 없다면 그냥 push해도 상관없다.
하지만 변경사항이 있는데 그냥 push한다면? 에러발생.
애초에 성사가 되면 안된다. 다른 remote branch에서 작성한 코드가 전부 날라가고 내 코드만 남기 때문이다.

git checkout
git checkout [브랜치 이름]
- branch를 전환하는 명령어.
- 나는 주로 pull이 막혀서 checkout으로 브랜치를 바꾼 뒤 merge로 병합해서 올리는 방식의 차안으로 사용한다.
git branch
git branch
git branch -a
git branch [new 브랜치 이름]
git branch -v
- 로컬 브랜치와 최근에 커밋한 기록을 보여주는 명령어.
git branch -d [삭제할 브랜치 이름]
git commit & push
git add . // 해당 코드의 변경 부분만 반영.
git commit -m '커밋 이름'
git push [원격 저장소 이름] [브랜치 이름]
- 브랜치에 내 코드를 업데이트하는 명령어. 거의 세트로 사용된다.
force
git pull --force
- 원격 저장소의 변경사항들을 강제로 덮어쓰게 하는 명령어.
- push 안된다고 막 사용하지 말 것. 팀원들과 상의하고 사용할 것.