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

Ler*_*rve 232 git

有哪些Git命令可以执行以下工作流程?

脚本

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

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

  2. 假设自从我上一次拉动以来远程存储库上有3个新的提交,我想区分远程存储库的提交,即 HEAD~3with HEAD~2,HEAD~2with HEAD~1HEAD~1with HEAD.

  3. 在知道远程更改后,我想获得其他人的最新提交.

到目前为止我的发现

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

对于第3步:也就是说,我猜,只是一个git pull.

Ala*_*avi 237

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

git diff origin/master
Run Code Online (Sandbox Code Playgroud)

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

如果要接受远程更改:

git merge origin/master
Run Code Online (Sandbox Code Playgroud)

  • 差异看起来相反.我发现使用`git diff HEAD origin/master`更容易,所以如果我接受远程更改,diff会显示将应用的内容. (32认同)
  • "git fetch origin"和"git show-branch*master"对我很有用. (2认同)

Raj*_*uri 151

git remote update && git status 
Run Code Online (Sandbox Code Playgroud)

发现这个对答案,以检查是否需要拉Git中

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

  1. git status -uno会告诉你你正在跟踪的分支是在前面,后面还是分歧.如果没有说什么,本地和远程都是一样的.

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

如果你使用-v,git remote update你可以看到哪些分支更新,所以你真的不需要任何进一步的命令.

  • @Overdrivr这个问题要求在获取提交到本地分支之前检查更改的方法.所以,是的,您必须在检查更改后更新本地分支. (2认同)
  • @Shad你应该做`git remote -v update`而不是`git remote update -v` (2认同)

小智 33

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

git remote show origin
Run Code Online (Sandbox Code Playgroud)

  • 但是那个命令并没有告诉我自从我上一次拉动以来有多少次提交"起源",是吗?我理解它的方式"git remote show origin"是一个本地操作,不会通过网络获取信息. (11认同)
  • 输出***不包含任何有关遥控器*内容*的信息。 (2认同)

小智 18

我只是用

git remote update
git status
Run Code Online (Sandbox Code Playgroud)

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

然后

git pull origin master
Run Code Online (Sandbox Code Playgroud)

带我的本地最新:)


Ler*_*rve 11

一个潜在的解决方

感谢Alan Haggai Alavi的解决方案,我想出了以下潜在的工作流程:

步骤1:

git fetch origin
Run Code Online (Sandbox Code Playgroud)

第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
Run Code Online (Sandbox Code Playgroud)

第3步:

git checkout master
git branch -D localTempOfOriginMaster
git merge origin/master
Run Code Online (Sandbox Code Playgroud)

  • 为什么需要在远程修订版之间为diff做一个临时分支?你可以只是`git diff origing/master ^ origing/master ^^` (13认同)

小智 10

我经常的问题是相当"任何新的或回购改变",所以whatchanged来得心应手.在这里找到它.

git whatchanged origin/master -n 1
Run Code Online (Sandbox Code Playgroud)