경우에 따라 차이가 있기는 하지만 대부분의 프로젝트 개발은 아래의 Git Workflow를 따르게 됩니다.
(0) 본격적인 새로운 기능 개발을 하기전에 우선 upstream repository로 부터 나의 remote repository로 fork
를 실행합니다. 그리고 다시 remote에서 local로 git clone
을 실행합니다.
(1) 개발 중 upstream에서 새로운 업데이트가 이루어졌다면 최적의 개발 환경을 위해 항상 최신 상태를 유지합니다.
$ git pull upstream master
// 또는
$ git pull <branch name> master
$ git pull
// 이 실행은 아래의 두 가지를 한꺼번에 실행하는 것과 같음
$ git fetch
$ git merge
(2) 분리된 작업 영역에서 원본에 영향을 주지 않고 다양한 시도를 하면서 새로운 기능을 개발하기 위해 branch를 생성합니다.
$ git branch // 브랜치 목록 및 현재 브랜치 확인
$ git checkout <branch name to base> // 베이스로 하고자 하는 브랜치로 이동
$ git branch <branch name to create> // 베이스 브랜치에서 새로운 브랜치 생성
$ git checkout <branch name created> // 생성된 브랜치로 이동
// 위의 두 가지 실행을 아래와 같이 한꺼번에 실행할 수도 있음
$ git checkout -b <branch name to create> // 베이스 브랜치에서 새로운 브랜치를 생성하고, 생성된 브랜치로 이동
(3) 코딩하고 파일을 저장한 뒤 git commit
을 실행합니다.
$ git status // git 현황 확인
$ git add <. or file name>
$ git status
$ git commit -m "first commit"
$ git status
(4) 나의 remote repository로 git push
를 실행합니다.
$ git push origin master <or branch name>
(5) GitHub로 이동하여 pull request
를 작성함으로써 마무리 합니다.
협업하는 동료가 있을 경우 동료의 remote repository를 추가하여 작업을 진행할 수도 있습니다.
// 지정된 URL의 repository를 remote로 추가하고 이름 짓기 $ git remote add <naming branch> <repository URL> // remote 현황(이름들) 보기 $ git remote show // 또는 git remote -v : remote 현황 좀더 자세히 보기 $ git remote --verbose
협업시 주의해야 할 점은
git pull
은 동료의 remote를 대상으로 하고,git push
는 나의 remote를 대상으로 실행해야 합니다.$ git pull <named branch> master $ git push origin master
자료 출처: 코드스테이츠(CodeStates)
참조: Git, GitHub