본문 바로가기
Git

[Git] pull과 충돌

by qoth_0 2023. 12. 11.
728x90
반응형

git pull과 충돌

  • 수정 후 수정사항 업로드
    • add, commit, push
  • 수정사항 다운로드
    • git pull
    • origin이 수정되어 local과의 차이 발생시
      • origin의 변경사항은 local에서는 추적불가능
      • vscode의 source control의 변경사항 인지는 local repository에 대한 변경인지

      → push 했을 때 다른사람이 먼저 수정해서 올려놨으면 origin과 로컬이 다르기 때문에 내려받은 후 수정을 해야됨

  • git pull origin 브랜치명
    • ex)git pull origin main
      • origin을 기준으로 local을 update
      • fetch + merge까지 되는 것 → 바로 origin내용으로 바뀜
    • pull은 working directory까지 반영
    • 별도의 브랜치명 명시 안하면 현재 checkout 된 branch에서 pull
    • 만약 로컬의 변경파일과 origin의 변경파일이 같이 변경되면 충돌발생 가능성
      • 이 때는 git fetch 사용해서 비교한 후 merge 해야함

실습

  • origin main에서 test3.txt 파일 변경 발생

    → local에서 변경사항 인지 가능한지 vscode에서 확인, 소스트리도 확인

origin에서 변경
vs에서 변경 확인 안됨
소스트리에서도 확인 불가
  • 내 local에서 test3.txt 파일 변경하여 push 시도
vs로 변경
충돌 발생 - git pull을 하라는 hint
  • 충돌로 push 불가 → 일단 force를 통해 강제 push
—force
바뀜

⇒ git pull origin main하면 origin에서 바꾼 내용이 vs코드에 반영됨

  • 로컬에서 test1.txt 파일 수정 후 커밋(push x), github에서 test2.txt 파일 수정 후 git pull - 서로 다른 파일

로컬 수정

커밋

github수정

git pull origin

⇒ test2.txt 내용이 로컬에도 반영됨 - 충돌 x (다른 파일이기 때문)

728x90
반응형

'Git' 카테고리의 다른 글

[Git] diff, fetch  (0) 2023.12.13
[Git] 취소 상황  (0) 2023.12.12
[Git] 기본 명령어  (0) 2023.12.11
[Git] config, ignore  (0) 2023.12.11
[Git] git 프로젝트  (1) 2023.12.06