以下命令之间有什么区别?:
git diff foo master # a
git diff foo..master # b
git diff foo...master # c
Run Code Online (Sandbox Code Playgroud)
diff手册谈到它:
比较分支机构
Run Code Online (Sandbox Code Playgroud)$ git diff topic master <1> $ git diff topic..master <2> $ git diff topic...master <3>
- 主题提示与主分支之间的更改.
- 与上述相同.
- 自主题分支启动以来主分支上发生的更改.
但对我来说并不完全清楚.
我想找到我在本地仓库中的文件与其中的文件之间的差异origin master.
我知道有git diff,但我只是想把它隔离到这个特定的文件.
为简单起见,我们假设该文件已命名,file1.txt并且它具有本地文件路径= [local_path]并且在原点中它具有filepath = [remote-path].
我需要输入什么git命令?
编辑:谢谢大家的意见,它非常有见地.对于那些使用Eclipse的人(我和我之前应该说过),我发现你可以直接点击 - >比较 - >分支,标签或参考 - >选择合适的版本然后你就去了.
如何在Git中显示未提交的更改?
我SFTW'ed,这些命令不起作用.
teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git status
On branch teyan/psservice
Your branch is up-to-date with 'origin/teyan/psservice'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: psservice.c
modified: psservice.vcxproj.filters
teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff
teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud) 我在不同的分支中有两个不同的文件.如何在一个命令中区分它们?
就像是
# git diff branch1/foo.txt branch2/foo-another.txt
Run Code Online (Sandbox Code Playgroud)
我可以看看另一个文件,差异并恢复,但这是非常脏的解决方案.
我们如何才能获得两个git存储库之间的区别?
场景:我们有一个repo_a和repo_b.后者是作为repo_a的副本创建的.之后两个存储库都有并行开发.有没有办法列出这两个存储库当前版本的差异?
我想要一个尚未合并到master的分支中的所有更改的差异.
我试过了:
git diff master
git diff branch..master
git diff branch...master
Run Code Online (Sandbox Code Playgroud)
但是,在每种情况下,diff都包含master中尚未合并到我的分支中的内容.
有没有办法在我的分支和主人之间做一个差异,排除了尚未合并到我的分支的主人的变化呢?
有时会有一些已更改的文件以及一些新的,已删除和/或重命名的文件.在做git diff或者git-log我想省略它们时,我可以更好地发现修改.
实际上,列出新文件和已删除文件的名称是最好的.对于"旧"重命名为"新"我想选择性地区分"旧"和"新".
当我输入"git diff"时,我想看到一个并排的差异,就像"diff -y"一样,或者喜欢在像"kdiff3"这样的交互式差异工具中显示差异.如何才能做到这一点?
假设我克隆了一个存储库并开始修改文件.我知道如果我有本地未提交的更改,我可以按如下方式进行差异,git diff test.txt它将显示当前本地HEAD与文件中已修改的未提交更改之间的区别.如果我提交这些更改,我可以通过使用将其与原始存储库区分开来git diff master origin/master
但有没有办法在本地提交之前将服务器上的原始存储库区分本地更改?我尝试了各种git diff --cached master origin/master没有运气的排列.
我喜欢输出格式git diff.线条之间的变化的颜色和+/ -表示比GNU diff更容易阅读.
我可以git diff使用--no-indexgit repo之外的标志运行,它运行正常.但是,似乎缺少--exclude从递归中排除文件或子目录的选项diff.
有没有办法让两全其美?(GNU diff的颜色选项和+/ -格式git diff以及--exclude选项).
我已经尝试过colordiff,但我仍然喜欢它的输出格式git diff