본문 바로가기

팀원 입장에서 GitHub로 협업하기

codeConnection 2024. 5. 9.

팀원 입장에서 최초 깃허브 초대받은 리포지토리에 연결하기

// 전부 내려받음. 원격 저장소의 주소는 .git으로 끝나는 것. 뒤에 한칸 띄고 .은 상위 폴더를 만들지 않는 것.
git clone <원격저장소주소> . 

// 전체 브랜치를 보여줌(확인 차)
git branch -a

// 내 작업 브랜치를 하나 만들고 이동함
git switch <브랜치명>

작업하기 전

// 깃허브에서 누가 push한 것이 있는지 확인한다
// 또는 습관적으로 메인 브랜치를 pull 해서 최신 버전으로 만들고 시작한다. 내 꺼 다 만들고 pull 해도 되지만 병합 충돌하기 까다로울 수 있다.

// origin은 보통 저렇게 설정하고, 아닌 경우도 있음.
git pull origin <메인브랜치명>

작업 완료 시

// 현재 위치 중인 브랜치 확인
git branch

// 만약 엉뚱한 곳에 있다면 내 브랜치로 이동
git switch <내브랜치명>

// 변경사항 있는 파일 모두 스테이징 에어리어로 이동시킴
git add .

// 스테이징 에어리어로 이동한 파일들 커밋함 (버전 기록함)
git commit -m "커밋메시지"

// 내 작업 브랜치에 push함
git push origin <내브랜치명>

// 이후에 dev로는 github에서 내 브랜치로 이동해서 code 드랍다운 아이콘을 눌러 pull request 요청하는 게 가장 깔끔함
// base : 합쳐질 곳, compare : 내 꺼
// merge 옵션으로 3 개가 있는데 create a merge commit은 내 브랜치의 커밋 메시지도 같이 넘어가고, 아래 두 개는 (squash, rebase...) 내 브랜치 커밋메시지는 안 넘어감.

// 터미널에서 merge 하기
// 현재 내 브랜치에서 합칠 브랜치로 이동
git switch <합칠 브랜치명>
git merge <내브랜치명>
// 이후 충돌발생 시 충돌 해결. 병합 확인기에서 좌측이 팀원 내용, 우측이 내 것, 하단이 최종 완료된 모습.

작업 중 복구가 필요할 때

// 가장 최근 커밋 이후의 작업 내용을 취소하고자 할 때
// 한 칸 띄고 .은 모든 파일을 복구하는 것. ctrl + z를 안 먹힐 때까지 누르는 것과 같은 효과임.
git restore .
git restore <파일명.확장자>

// 커밋을 직접 지정해서 복구시키기
git restore --source <커밋아이디> <파일명.확장자>

// 특정 파일 git add 취소하기
// git status로 상태 확인할 때 추천명령어로 나옴. 외울 필요 없고 그거 보고 하면 됨.
git restore --staged <파일명.확장자>

// 방금 전에 커밋한 내역 삭제하기
git revert HEAD

// 이 외 revert, reset 등의 명령어가 있지만 협업에서는 권장되지 않기 때문에 사용 지양

댓글