我想要检查在运行git pull之后对文件所做的更改。我知道我们使用git fetch
从远程仓库检索新对象而不更改本地仓库。但是如何在编辑器中查看这些更改呢?
假设您所有的本地修改都已提交,一种方法是执行以下操作:
git fetch origin
# To see local changes as the "new" version
git diff origin/yourbranch HEAD
# Or to see remote changes as the "new" version
git diff HEAD origin/yourbranch
这将比较你本地仓库(当前为HEAD
)和远程内容origin/yourbranch
。
origin/yourbranch
中缺失的内容将显示为添加,而不是删除。 - chepnergit diff HEAD...origin/yourbranch
或者 git difftool -D HEAD...origin/yourbranch
或者 git log HEAD...origin/yourbranch
。 - Marek Rgit fetch
后跟 git diff origin/yourbranch
也可以工作。 - joanis想要查看在运行
git pull
后对文件所做的更改,最简单的方法就是直接运行并查看!首先,确定你所处的位置:
% git show --oneline --no-patch
bf1908d ...
% git pull
% git diff bf1908d
git pull
后对文件所做的更改。git reset --hard bf1908d
,你就会回到拉取之前的状态,没有任何损失。git rev-parse @
是 git show --oneline --no-patch
的更短、更直接的版本,但你甚至不需要这样做。如果你想要查看差异,可以使用 git pull; git diff @{1}
命令,如果你不喜欢看到的内容,可以使用 git reset --hard @{1}
。 - jthill@{1}
表示“我刚才所在的位置”。 - mattgit reset --hard @{1}
将销毁它们。请注意,最好在拉取之前提交或隐藏您的本地更改,但Git不要求这样做,因此我认为值得注意。 - joanisgit fetch
,你就有了一个完整的本地数据库,其中包含你刚刚获取的远程所有更改的记录,因此你可以使用Git的所有功能来探索这些更改。
git log origin/branch
将显示提交列表git log -p origin/branch
将按提交显示更改。git diff origin/branch
或git diff HEAD origin/branch
(请参见@Gaël J的答案)如果你的本地更改已经提交,你也可以检出origin/branch
进行尝试,然后再回到自己的分支。
git checkout origin/branch # go to the fetched state from origin
# explore stuff
git checkout branch # go back to your own branch