如何检查远程(原始)Git存储库的变化?

什么是Git命令来执行以下工作stream程?

脚本

我从存储库克隆,并做了我自己的一些提交到我的本地存储库。 与此同时,我的同事们向远程仓库作出了承诺。 现在,我想:

  1. 检查远程存储库上的其他人是否有任何新的提交,即origin

  2. 假如自从我上一次拉取以来,远程仓库中有3个新的提交,我想要区分远程仓库的提交,即HEAD~3HEAD~2HEAD~2HEAD

  3. 知道什么是远程更改后,我想从其他人那里获得最新的提交。

我的发现迄今为止

对于步骤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最新。 然后你可以做几件事情之一,比如:

  1. git status -uno会告诉你你正在追踪的分支是前进还是后退。 如果什么都不说,本地和远程都是一样的。

  2. git show-branch *master会显示所有名称以master结尾的分支(例如master和origin / master)的提交。

如果你使用-vgit 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