假设我克隆了一个存储库并开始修改文件.我知道如果我有本地未提交的更改,我可以按如下方式进行差异,git diff test.txt它将显示当前本地HEAD与文件中已修改的未提交更改之间的区别.如果我提交这些更改,我可以通过使用将其与原始存储库区分开来git diff master origin/master
但有没有办法在本地提交之前将服务器上的原始存储库区分本地更改?我尝试了各种git diff --cached master origin/master没有运气的排列.
JJD*_*JJD 126
鉴于远程存储库已通过git fetch它进行缓存,应该可以与这些提交进行比较.请尝试以下方法:
$ git fetch origin
$ git diff origin/master
Run Code Online (Sandbox Code Playgroud)
Nat*_*ate 38
我知道这不是一个答案,问确切的问题,但我发现这个问题,寻找差异比较到一个文件中的一个分支和本地未提交的文件,我想我会分享
句法:
git diff <commit-ish>:./ -- <path>
Run Code Online (Sandbox Code Playgroud)
例子:
git diff origin/master:./ -- README.md
git diff HEAD^:./ -- README.md
git diff stash@{0}:./ -- README.md
git diff 1A2B3C4D:./ -- README.md
Run Code Online (Sandbox Code Playgroud)
(感谢Eric Boehs提供了一种无需输入文件名两次的方法)
如果要直观地比较文件,可以使用:
git difftool
Run Code Online (Sandbox Code Playgroud)
它会自动为每个更改的文件启动diff应用程序.
PS:如果你没有设置差异应用程序,你可以像下面的例子一样(我使用Winmerge):
git config --global merge.tool winmerge
git config --replace --global mergetool.winmerge.cmd "\"C:\Program Files (x86)\WinMerge\WinMergeU.exe\" -e -u -dl \"Base\" -dr \"Mine\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
git config --global mergetool.prompt false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103001 次 |
| 最近记录: |