내 로컬 리포지토리가 최신 상태인지 알고 싶습니다 (그렇지 않은 경우 이상적으로 변경 사항을보고 싶습니다).
git fetch
또는 하지 않고 어떻게 확인할 수 git pull
있습니까?
답변:
시도 git fetch --dry-run
(설명서를 git help fetch
말한다)
--dry-run
Show what would be done, without making any changes.
git fetch --dry-run
아무것도 나타나지 않는 이유는 무엇입니까?
--all
할까요?
git pull
대략 git fetch && git merge
. 어느 시점 --dry-run
에서.
git remote show origin
결과:
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (local out of date) <-------
먼저를 사용 git remote update
하여 원격 참조를 최신 상태로 가져옵니다. 그런 다음 다음과 같은 몇 가지 작업 중 하나를 수행 할 수 있습니다.
git status -uno
추적중인 지점이 앞, 뒤 또는 분기되었는지 알려줍니다. 아무 것도 표시되지 않으면 로컬과 원격이 동일합니다. 샘플 결과 :지점 DEV에서
브랜치는 7 개의 커밋에 의해 'origin / DEV'뒤에 있으며 빨리 감기가 가능합니다.
( "git pull"을 사용하여 로컬 브랜치를 업데이트)
git show-branch *master
이름이 'master'(예 : master 및 origin / master)로 끝나는 모든 분기의 커밋을 표시합니다.-v
git remote update ( git remote -v update
) 와 함께 사용 하면 어떤 브랜치가 업데이트되었는지 확인할 수 있으므로 추가 명령이 필요하지 않습니다.
git remote update ; git status -uno
해결했습니다. git fetch --dry-run
로컬이 원격 뒤에있는 경우에도 출력을 제공하지 않았습니다.
git remote -v update
저에게 답입니다.
git status -uno
로컬 브랜치가 원본 브랜치와 최신 상태인지 확인 하는 데 사용할 수 있습니다 .
git remote update ; git status -uno
트릭을했습니다! 은 git fetch --dry-run
내가 그것을 예상 (때 및 출력을 포기하지 git pull
것들을 끌어 것입니다).
실제로 git fetch
는 아니지만 지역 지점을 변경 하지 않으므로 어떻게 상처를 입을 지 모르겠습니다 .
또 다른 대안은 리포지토리뿐만 아니라 모든 리모트에서 브랜치를 볼 git show-branch remote/branch
수있는 비교로 사용 하여 원격 브랜치의 상태
git show-branch *branch
를 보는 것입니다! 자세한 내용은이 답변을 확인하십시오 https://stackoverflow.com/a/3278427/2711378
다음 두 가지 명령을 실행해야합니다.
git fetch
로컬 저장소를 원격 서버의 파일과 비교 하려면 먼저 실행해야 합니다.
이 명령은 원격 추적 브랜치를 업데이트하고 전화 할 때까지 worktree에 영향을 미치지 않습니다 git merge
나 git pull
.
가져온 후 로컬 브랜치와 원격 추적 브랜치의 차이점을 확인하려면 여기에 설명 된대로 git diff 또는 git cherry를 사용할 수 있습니다.
이것은 사용하지 않고 불가능하다 git fetch
나 git pull
. "최신"이 무엇을 의미하는지 확인하기 위해 원격 저장소로 이동하지 않고 저장소가 "최신"인지 여부를 어떻게 알 수 있습니까?
git pull
OP가 그의 질문에서 명시 적으로 금지하는를 사용합니다 .
git status -uno
이것은 작동하며 git show-branch *master
모든 마스터 브랜치의 상태를 보는 데 사용할 수도 있습니다 ! 아직도 불가능하다고 말하는 겁니까? 리모컨에 액세스 할 수있는 한 모든 지점의 상태를 볼 수 있습니다!
git status
로컬 참조의 상태 만 알려주고 로컬 참조가 원격 참조에 대해 최신 상태인지 여부 는 알려주지 않습니다 . 다시 말하지만, 원격 저장소의 상태를 가져 오지 않고 원격 저장소의 상태를 아는 것은 논리적으로 불가능합니다. 기간. 이것은 단지 시공간의 기본 법칙입니다.