我想知道我的本地仓库是否是最新的(如果没有,理想情况下,我想查看更改)。
我怎么能检查这个而不做git fetch
还是git pull
?
我想知道我的本地仓库是否是最新的(如果没有,理想情况下,我想查看更改)。
我怎么能检查这个而不做git fetch
还是git pull
?
Answers:
尝试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分支上
您的分支落后“ origin / DEV” 7次提交,并且可以快速转发。
(使用“ 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 show-branch remote/branch
使用它作为比较来查看远程分支的状态,
您可以看到它git show-branch *branch
在所有远程目录以及存储库中都可以看到该分支!查看此答案以了解更多https://stackoverflow.com/a/3278427/2711378
您需要发出两个命令:
您必须先运行,git fetch
然后才能将本地存储库与远程服务器上的文件进行比较。
此命令仅更新您的远程跟踪分支,并且在您调用git merge
或之前不会影响您的工作树git pull
。
要查看本地分支和远程跟踪分支之间的区别,可以按以下说明使用git diff或git cherry。
不使用git fetch
或则不可能git pull
。您如何知道存储库是否为“最新”,而不必去远程存储库查看“最新”的含义?
git pull
OP明确禁止在问题中投票和接受的答案最高。
git status -uno
这行得通,还可以git show-branch *master
用来查看所有主分支的状态!你还在说那是不可能的吗?只要您可以访问遥控器,就可以看到任何分支的状态!
git status
仅告诉您本地裁判的状态,而不告诉您本地裁判是否与远程裁判保持最新。再次:从逻辑上讲,如果不获取远程仓库的状态就无法知道远程仓库的状态。期。这只是时空的基本规律。