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

Git有哪些命令来完成下面的工作流程?

场景

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

  1. 检查是否有新的 提交给其他人 远程存储库,即origin?< / p >

  2. 假设有三个新的提交 远程存储库 拉,我想区别 远程存储库的提交,即。 HEAD~3 with HEAD~2HEAD~2 with HEAD~1HEAD~1 with HEAD.

  3. 在知道远程变化后, 我想获取最新的提交

我目前的发现

对于第二步:我知道插入符号HEAD^HEAD^^等和波浪符号HEAD~2HEAD~3等。

对于第3步:我猜,这只是一个git pull

328190 次浏览

您可以git fetch origin来更新存储库中的远程分支以指向最新版本。与遥控器不同的是:

git diff origin/master

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

如果你想接受远程更改:

git merge origin/master

综合看待“起源”的一个好方法是:

git remote show origin

一个潜在的解决方案

感谢阿兰·哈盖·阿拉维的解决方案,我提出了以下潜在的工作流程:

步骤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

回答检查是否需要在Git中拉上找到这个

git remote update使您的远程参考最新。然后你就可以 执行以下几种操作之一,例如:

  1. git status -uno将告诉你你正在跟踪的分支是在前面、后面还是已经分叉。如果什么都没说,当地的 Remote是一样的。

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

如果你使用-vgit remote update,你可以看到哪个分支 已经更新,所以你真的不需要任何进一步的命令

我经常问的问题是“回购中有什么新的或改变的吗”,所以whatchanged很方便。找到它在这里

git whatchanged origin/master -n 1

我只是用

git remote update
git status

后者然后报告我的本地文件后面有多少个提交(如果有的话)。

然后

git pull origin master

让我的本地更新:)

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

我简单地用

git fetch origin

来获取远程更改,然后我使用包含--all参数的漂亮gitk工具查看本地和挂起的远程提交(以及它们相关的更改),如下所示:

gitk --all