Program Club

git fetch 이해 후 병합

proclub 2020. 12. 7. 21:05
반응형

git fetch 이해 후 병합


svn 배경에서 왔을 때이 질문이 있습니다.

svn status -u에 해당하는 git

(git에 해당하는 것은 무엇입니까? svn status -u)

이해합니다.

git fetch
git log ..origin/master

하지만 origin/master지점에 따라 부분이 다른 것 같아요 ? 원격 지점을 추적하는 경우 반드시 마스터가 아닐까요?

나는 또한 git merge origin/master정확하게 이해하지 못합니다 . 나는 그것이 git fetch원격에서 변경 사항을 가져 와서 원본 / 마스터로 git 데이터베이스 시스템에 넣는 것을 의미한다고 생각하고 있습니다 . 변경 사항을 가져오고 수행 한 작업을 확인하고 변경 사항에 겁을 먹고 병합하지 않으려면 어떻게합니까? 기본적으로 어떻게 버리나요?


자식 가져 오기

git fetch원격 저장소에서 변경 사항을 가져와 저장소의 개체 데이터베이스에 저장합니다. 또한 원격 저장소에서 분기를 가져와 원격 추적 분기 로 저장합니다 .

가져올 때 git은 가져 오는 원격 저장소의 각 분기를 저장하는 위치를 알려줍니다. 예를 들어 다음과 같은 내용이 표시됩니다.

   7987baa..2086e7b  master -> origin/master

가져올 때. 즉, 'origin / master'는 'master'가 'origin'저장소에있는 위치를 저장합니다.

.git/config파일 을 검사 하면 다음 조각이 표시됩니다.

[원격 "원점"]
        URL = git : //git.example.com/repo.git
        가져 오기 = + refs / heads / * : refs / remotes / origin / *

이것은 (다른 것들 중에서) 원본 원격 (복제 한 저장소)의 모든 분기 'A'( 'refs / heads / A')가 'origin / A'( 'refs / remotes / origin / A')로 저장됨을 의미합니다. .

git log ..origin / master

보시다시피 'origin / master'는 'master'입니다. 당신은에있는 경우 (기본값) '마스터'지점은, 다음 git log ..origin/master에 해당되는 git log HEAD..origin/master동일하다 '마스터'지점에있는 경우, git log master..origin/master원격 저장소에있는 '마스터'지점에있는 지역 '마스터에없는 모든 커밋을 나열합니다 '당신이 일하는 지점.

최신 git의보다 일반적인 버전 (업스트림 / 추적 정보가 존재한다고 가정)은 간단히 사용하는 것입니다.

$ git log ..@{u}

(여기 @{u}에의 동의어가 @{upstream}있습니다. gitrevisions 맨 페이지를 참조하십시오 .)

git merge origin / master

git merge두 줄의 역사를 연결하는 데 사용됩니다. 면 중 한 쪽이 마지막 분기 지점 이후로 작업을 수행하지 않은 경우 (베이스 병합 이후) 상황은 빨리 감기 (현재있는 분기가 병합중인 분기의 끝으로 업데이트 됨) 또는 위로 - to-date (병합 할 새로운 것이 없으며 현재 있는 브랜치는 변경되지 않습니다).

git fetch뒤에 오는 git merge origin/master'마스터'브랜치에서 발행하는 것과 동일합니다.

$ git pull

병합하지 않으려면 할 필요가 없습니다. git reset --hard HEAD@{1}를 들어 돌아가서 git pull마음에 들지 않으면 결과를 버릴 수 있습니다 .


git fetch지정된 원격 분기를 나타내는 데 필요한 모든 변경 사항을 다운로드합니다. 일반적으로 이것은 origin/master또는 유사합니다.

git merge새로운 커밋이나 빨리 감기 (또는 조합)를 만들어 두 가지를 병합합니다. 커밋 한 내용은 변경되지 않으며 언제든지 이전 브랜치로 롤백 할 수 있습니다 ( git reset또는 사용 git checkout).

참고 git pull되는 git fetch다음 git merge(또는 git rebase경우에 --rebase주어진다).

참고 URL : https://stackoverflow.com/questions/3419658/understanding-git-fetch-then-merge

반응형