如何检查远程(原始)Git存储库的变化?
题
什么是Git命令来执行以下工作stream程?
脚本
我从存储库克隆,并做了我自己的一些提交到我的本地存储库。 与此同时,我的同事们向远程仓库作出了承诺。 现在,我想:
-
检查远程存储库上的其他人是否有任何新的提交,即
origin
? -
假如自从我上一次拉取以来,远程仓库中有3个新的提交,我想要区分远程仓库的提交,即
HEAD~3
与HEAD~2
,HEAD~2
,HEAD
。 -
知道什么是远程更改后,我想从其他人那里获得最新的提交。
我的发现迄今为止
对于步骤2:我知道脱字符号HEAD^
, HEAD^^
等和代字符HEAD^
, HEAD^^
等
对于第3步:那就是,我猜,只是一个git pull
。
您可以通过git fetch origin
来更新存储库中的远程分支以指向最新版本。 对于偏远地区的差异:
git diff origin/master
是的,你也可以使用脱字符号。
如果您想接受远程更改:
git merge origin/master
git remote update && git status
find这个答案 检查是否需要拉在Git
git remote update
,使您的远程refs最新。 然后你可以做几件事情之一,比如:
git status -uno
会告诉你你正在追踪的分支是前进还是后退。 如果什么都不说,本地和远程都是一样的。
git show-branch *master
会显示所有名称以master结尾的分支(例如master和origin / master)的提交。如果你使用
-v
和git remote update
你可以看到哪个分支得到了更新,所以你不需要任何进一步的命令。
综合考虑“起源”是什么的好方法是:
git remote show origin
一个可能的解决
感谢Alan Haggai Alavi的解决scheme,我提出了以下潜在的工作stream程:
步骤1:
git fetch origin
第2步:
git checkout -b localTempOfOriginMaster origin/master git difftool HEAD~3 HEAD~2 git difftool HEAD~2 HEAD~1 git difftool HEAD~1 HEAD~0
第3步:
git checkout master git branch -D localTempOfOriginMaster git merge origin/master
我只是用
git remote update git status
后者然后报告我的本地背后有多less承诺。 (如果有的话)
然后
git pull origin master
把我的本地更新:)
我的常规问题是“什么新东西或更改回购”,所以更换来得心应手。 在这里find它。
git whatchanged origin/master -n 1
即使在提取之后, git status
并不总是显示主机和原始/主机之间的区别。 如果你想组合git fetch origin && git status
起作用,你需要指定本地分支和原点之间的跟踪信息:
# git branch --set-upstream-to=origin/<branch> <branch>
对于主分支:
git branch --set-upstream-to=origin/master master