标签: git-diff

在git diff中自定义标题

查看差异使用时git diff,每个更改都以以下行开头:

@@ -28,41 +20,10 @@ namespace ConsoleApplication1
Run Code Online (Sandbox Code Playgroud)

对于C,最后一部分是非常具有描述性的 - 它显示了例如发生变化的函数.但对于C#,它只显示命名空间,这不是很有用.我认为那是因为它显示的是没有缩进的最后一行.有没有办法如何配置?

git diff git-diff

15
推荐指数
1
解决办法
1720
查看次数

如果文件的内容保持不变,则使git忽略修改日期更改

我有python脚本生成和修改不同的xml文件.它们工作,以便打开文件,基于它创建ElementTree对象,尝试在必要时修改对象的内容,然后将这些对象保存到原始文件中.

问题是,有时它们甚至不会改变文件的内容.但是文件的修改日期会发生变化.

另一方面,Git将这些文件视为"已更改",因为它注意到修改日期已更改.虽然它不会产生差异(显然).

citool表现得很疯狂(警告日期已经改变,但文件本身没有,尝试重新扫描它们并再次将它们显示为"已修改")

我没有权限修改那些python脚本,因此不能重写它们(它们存储并经常在单独的repo中修改).有没有办法告诉git忽略特定文件夹的修改日期更改?看到几十个"已更改"的文件实际上只有其中一个被真正修改过,这只是非常讨厌.

我知道我可以暂存所有文件,然后取消它们,但是我需要省略一些额外的操作.有时它只会干扰正常的git工作流程.

更新: git citool错误读取(引用):"未检测到差异.<file>没有更改.此文件的修改日期已由另一个应用程序更新,但文件中的内容未更改.重新扫描将自动启动找到可能具有相同状态的其他文件."

然后重新扫描后,所有伪修改的文件再次出现.

git status还将这些文件显示为"已修改"

git git-diff

15
推荐指数
2
解决办法
5730
查看次数

如何使git diff显示与github的pull request diff相同的结果?

合并分支后,当我尝试发出拉取请求时,github不再显示差异,但git diff仍会显示差异.

例如,我有分支D,在分支H上创建了修补程序,将H合并到D,然后在D上创建了更多东西.现在git hub pull reuqest从H到D显示没有区别,但git diff HD显示差异.

我想要做的是创建一个命令行工具,以查看哪些旧分支(可能有很多)没有代码差异来开发.现在我必须去github,做一个拉动reuqest并选择每个分支,看看是否有差异.

谢谢

git github git-diff

15
推荐指数
1
解决办法
5430
查看次数

Git"配对破坏"和"未知"状态意味着什么,它们何时发生?

git diff例如--name-status,某些选项会导致在文件名旁边输出状态字母.他们是:

A,C,D,M,R,T,U,X,B

......他们的意思是

添加(A),复制(C),删除(D),修改(M),重命名(R),类型(即常规文件,符号链接,子模块,...)更改(T),未合并(U),未知(X) ),或配对破碎(B).

问题:如何解释X和B状态,以及哪些情况会导致它们出现?您能否提供一系列步骤,导致出现在输出中的这种状态git-diff,以及可能的修复方法?

git git-diff

14
推荐指数
1
解决办法
1727
查看次数

如何巧妙地打印出git-diff输出?

对于我即将到来的学士论文,我需要打印出本文附录的git-diff输出.我非常喜欢它的输出git diff --color-words,但我完全不知道如何将这个 - 彩色和包含行号 - 带到我的Mac上的一张纸上.我知道有些像SourceTree这样的工具,但即使是那些我似乎也无法用单个文件的差异打印出来的.

好吧,我很确定我不能成为唯一一个有这个问题的人,我发现了一些建议的ansi2html解决方案,但它们似乎不适用于我的git版本(1.7.10.2).我还想过简单地打印Github提交页面(这看起来很漂亮,看起来像我需要的那样),但是当我尝试打印时,浏览器会自动删除所有着色和格式.

谢谢你的帮助!

printing git diff git-diff

14
推荐指数
2
解决办法
1万
查看次数

设置默认差异算法不会转换为默认合并算法(耐心)

我已经看到很多博客文章和堆栈溢出帖子说,这 git config --global diff.algorithm patience 将允许差异和合并使用耐心策略选项与默认的递归算法.

我发现这不是这种情况,我提出以下演示来说明原因.

git config --global diff.algorithm patience   //mythical config statement  

git clone https://github.com/kjlubick/PracticingGit.git
cd PracticingGit
git checkout origin/patience-merge-1 -t

git checkout -b merge_test           //temp branch for merging
git diff origin/patience-merge-2
Run Code Online (Sandbox Code Playgroud)

图片 这种差异(图片由meld看起来很漂亮.让我们尝试合并它.

git merge origin/patience-merge-2
Run Code Online (Sandbox Code Playgroud)

图片

咦?合并看起来很难看.尽管第9-19行没有实际改变,但它们与diff完全不同,标记为冲突/改变.

如果我们强制合并使用耐心策略选项:

git merge --abort
git merge origin/patience-merge-2 -X patience
Run Code Online (Sandbox Code Playgroud)

图片

那好多了.冲突与我们之前制作的差异相匹配,并且在语义上是正确的.

如何让合并实际上使用耐心设置,而不仅仅是差异?

在黑暗中我尝试了额外的镜头(失败):

git config --global merge.algorithm patience
git config --global merge.diff.algorithm patience
Run Code Online (Sandbox Code Playgroud)

系统信息:
Windows 8.1
git版本1.8.4.msysgit.0(通过GitHub for Windows 2.0)

git algorithm git-diff git-merge git-config

14
推荐指数
2
解决办法
1098
查看次数

如何在GitLab中默认为并排视图

如何将Side并排作为我的GitLab安装或项目或配置文件的默认差异?

diff git-diff gitlab

14
推荐指数
2
解决办法
3119
查看次数

如何查看工作目录和暂存索引之间的差异?

我们可以看到存储库和工作目录之间的区别:

git diff
Run Code Online (Sandbox Code Playgroud)

我们可以看到存储库和登台索引之间的区别:

git diff --staged
Run Code Online (Sandbox Code Playgroud)

但是我们如何看待工作目录和登台索引之间的区别?

git git-diff

14
推荐指数
2
解决办法
6756
查看次数

如何从大师分支以来git diff所有变化?

我在我的分支上做了几次提交,现在我要看到从master分支时的变化.然而,由于我最初将其分支合并,因此现在的大师现在已经合并了其他分支.

类似于 显示git分支中的所有提交,因为来自master的原始分支点,但是关于日志.

我确实试过了

git diff  --boundary master..
Run Code Online (Sandbox Code Playgroud)

但我仍然看到比我的更多变化.

编辑: 我真的希望有一种方法不需要任何SHA的知识或者提交了多少次提交.如果我不需要它们,我可以自动化,自动化和自动化,并且可以更轻松,无故障地对其进行别名.

git diff my_branch_name...master
Run Code Online (Sandbox Code Playgroud)

似乎很接近但不正确.

git git-diff

14
推荐指数
3
解决办法
3380
查看次数

14
推荐指数
2
解决办法
6450
查看次数

标签 统计

git-diff ×10

git ×9

diff ×3

algorithm ×1

git-config ×1

git-merge ×1

github ×1

gitlab ×1

printing ×1