[Git 깃] git 협업 시 이슈 리스트 (updating)
내가 보기 위해 정리하는 git 이슈 리스트
.
다른 개발자들과 하나의 레포지토리를 공유하며 git 협업을 진행할 경우에는 git 사용에 특히 유의해야 한다.
우리의 소중한 코드 지켜야 해 !
그렇지 않는다면 아래 사진 속 새벽 5시의 나처럼 큰 패닉에 빠지게 될 것이다.
당시 나는 git push 를 main 브랜치에 하는 바람에, 정말 중요한 main 브랜치 최근 작업물들을 다 날려먹을 뻔 했다 휴우3
.
1. git pull - push 시 branch 일관성 유지 이슈
git push 작업은 pull 작업이 선행되어야 동작한다.
이는 conflict 를 기본적으로 피하게 하기 위한 git 의 기본 설정이다.
# git pull 명령어
git pull origin(원격저장소 이름) main(브랜치 이름)
# git push 명령어
git push origin main(업데이트시키고자 하는 브랜치 이름) # 또는
git push --set-usptream origin main
다시 말해 git pull 은 A branch 에 받아놓고, 정작 작업은 B branch 에서 한 후 해당 내용을 git push 하려고 하면 거부당한다. 만약 실수로 pull 을 받지 않았는데, 작업한 코드를 push 하긴 해야겠다면, 방법이 있긴 하다. 뒤에 --force 옵션을 붙여주면 된다.
git push origin main --force
그러면 git 의 경고와 거부 따위는 무시하고 바로 push 된다.
그렇지만 이와 별개로, 협업 시 작업을 시작하기 전에는 항상 git pull 을 받는 습관을 들여야 한다.
그렇지 않으면 나중에 pr merge 하는 과정에서 수많은 conflict 들을 마주하며 눈앞이 캄캄해지는 경험을 해볼 수 있을 것이다. 그 conflict 코드들 일일히 손으로 manually 수정하는 것도 상당히 번거롭다.
.
2. git pull 미반영 이슈
만약 git pull 명령어가 적용되지 않는다면 아래와 같은 명령어를 작성해주면 된다.
git fetch --all
git reset --hard origin/main
원격저장소를 전부 fetch 한 후, 해당 branch 로 --hard 옵션을 주어 reset 시키는 방법이다.
(출처: https://programming119.tistory.com/109)