작성
·
937
0
제가 master 브랜치에 올라가있는 소스코드를 git clone을 이용해서 받은다음 작업후
git branch a -> git checkout a -> git add . -> git commit -m "first" -> git push origin a
순으로 입력해 push를 했습니다. 이제 이걸 master에 merge 하려고
git checkout master -> git merge a 명령어를 사용할 생각에
git checkout master 명령어를 사용해 브랜치를 master로 바꿨더니 제 로컬에 있는 소스코드가 master에 있던 코드로 교체되었습니다.
원래 이렇게 checkout으로 브랜치를 변경하면 자동으로 pull이 되는건가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
님께서 질문하신 내용을 바탕으로 설명 드리겠습니다. git checkout 명령어를 사용하셨을 때 자동으로 pull이 되지는 않습니다. git checkout 명령어는 지정한 브랜치로 작업 디렉터리를 변경하는 명령어입니다. 귀하가 마스터 브랜치로 체크아웃했을 때 로컬의 소스코드가 마스터 브랜치의 코드로 보인 것은, 체크아웃한 브랜치의 최신 커밋 상태를 반영하기 때문입니다.
원격 브랜치의 변경사항을 로컬 브랜치로 가져오고자 할 때는 git pull 명령어를 사용합니다. 이 명령어는 원격 저장소의 변경사항을 현재 작업 중인 브랜치로 가져와 병합하는 명령어입니다.
따라서, master 브랜치로 변경 후 원격 브랜치의 최신 상태를 반영하고 싶다면, git checkout master
다음에 git pull origin master
명령어를 사용하여 원격 master 브랜치의 변경사항을 로컬에 반영하셔야 합니다.
저 혹시 그러면 제가 a라는 브랜치로 작업중 다른팀원이 master에 merge를 해서 동기화를 시켜야 한다면 어떤 순서로 pull을 받아야 제 작업물이 유지되면서 최신 master를 pull받을 수 있을까요?
감사합니다 제가 checkout 기능에 대해 잘못알고 있었네요.