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

时间:2010-03-25 09:22:52

标签: git

问题

执行以下工作流程的Git命令是什么?

方案

我从存储库克隆并对我的本地存储库进行了一些自己的提交。与此同时,我的同事们提交了远程存储库。现在,我想:

  1. 检查是否有新的 来自其他人的承诺 远程存储库,即origin

  2. 说有3个新的提交 我上次的远程存储库 拉,我想差一点 远程存储库的提交,即 HEAD~3 HEAD~2HEAD~2 HEAD~1HEAD~1 HEAD

  3. 知道远程改变了什么后, 我想获得最新的提交 来自其他人。

  4. 到目前为止我的调查结果

    对于第2步:我知道插入符号HEAD^HEAD^^等以及代字符HEAD~2HEAD~3等。

    对于第3步:我想,只是git pull

8 个答案:

答案 0 :(得分:223)

您可以git fetch origin更新存储库中的远程分支以指向最新版本。对于遥控器的差异:

git diff origin/master

是的,您也可以使用插入符号。

如果您想接受远程更改:

git merge origin/master

答案 1 :(得分:148)

git remote update && git status 

answerCheck if pull needed in Git

上找到此信息
  

git remote update让您的遥控器更新。然后你可以   做以下几件事之一,例如:

     
      
  1. git status -uno会告诉您正在跟踪的分支是在前方,后方还是分歧。如果它什么也没说,那就是当地和   遥控器是一样的。

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

  4.         

    如果您将-vgit remote update一起使用,则可以看到哪些分支   得到了更新,所以你真的不需要任何进一步的命令。

答案 2 :(得分:33)

对“起源”进行综合观察的好方法是:

git remote show origin

答案 3 :(得分:15)

我只是用

git remote update
git status

后者然后报告我当地背后有多少提交。 (如果有的话)

然后

git pull origin master

让我的本地人更新:)

答案 4 :(得分:11)

一个可能的解决方案

感谢Alan Haggai Alavi's solution我提出了以下潜在的工作流程:

第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

答案 5 :(得分:8)

我的常规问题是“任何新的或在回购中更改”,因此 whatchanged 会派上用场。找到它here

git whatchanged origin/master -n 1

答案 6 :(得分:1)

即使在获取之后,

git status并不总是显示master和origin / master之间的区别。 如果您希望组合git fetch origin && git status起作用,则需要在本地分支和原点之间指定跟踪信息:

# git branch --set-upstream-to=origin/<branch> <branch>

对于主分支:

git branch --set-upstream-to=origin/master master

答案 7 :(得分:0)

由于到目前为止尚未提出建议...我发现它非常有用...

我只是使用

git fetch origin

获取远程更改,然后使用不错的gitk工具查看本地和待处理的远程提交(及其相关更改) (https://git-scm.com/docs/gitk)涉及--all参数,例如

gitk --all