초보자를 위한 Git 협업개발 핵심 포인트
라이언의 꿀팁백과
- 협업을 하려면 Fork & Clone 을 우선 해야한다.
git clone git@github.com:gentleelinuxer/pytorch-exam
git log --oneline | wc -l
- push 권한은 아무에게나 주지 않는다.
- pull request (=PR) 가 수용되면 내가 수정한 코드가 실제 Repository 에 merge 된다.
- 커밋을 만든다 = 소스를 수정한다
- 작업의 시작 = 브랜치(branch) 생성
git checkout -b 브랜치이름
git branch
- 변경내역 비교
git diff
- 커밋 메시지에는 무슨 내용을 수정했는지 잘 적는 게 중요
git commit -m "내용"
- 내가 작성한 commit 확인하기
git show
- 내가 fork 한 repository에 push 하기
git push origin fix-mnist
- 내가 Fork 한 Repository 에서 Pull Request 를 함으로써 실제 Repository 에 수정 요청을 할 수 있다.
- 내가 commit 하기 전에 다른 사람이 commit 을 해서 나의 base 가 변할 수 있다는 점을 인지해야 한다. 이게 rebase 가 필요한 이유다.
- 즉, fetch 를 통해 최신 정보를 가져오고
git remove -v
git remote add upstream https://github.com/taeung/pythorch-example
git fetch upstream main
- rebase 로 base 를 최신화 한다.
git rebase upstream/main
- push 할 때 충돌은 대부분 base 의 변경에서 온다. (단, 동일한 파일을 수정하지 않으면 충돌은 일어나지 않음)
git push origin master
- 충돌 시 pull 명령어를 토해 최신 소스를 가져온다. (단, pull 을 통해 가져오면 merge 까지 바로 되기 때문에 조심해야 함)
git pull origin master
- 그래서 pull 을 했을 때 merge 를 일단 취소해야 한다.
git merge --abort
- pull = fetch + merge (단, 버전 업 후에는 현재는 option 을 통해 merge 여부를 변경 가능)
git config --unset pull.ff only
git config pull.rebase false
- 충돌이 난 경우 파일을 직접 열어서 해당 충돌 부분을 수정해야 하는 경우도 있다. (수정 후 아래 명령어 입력)
git rebase --continue
---
다시보기
https://www.youtube.com/watch?v=_2l2v85gVNE
강사님 개발 프로그램
https://github.com/git-rainbow/git-rainbow
강사님 티스토리 블로그