我有一个文本文件(.yml),我输入一些文本到我的系统使用.但现在我们需要立刻知道新的线路.我想用git来解决我们的问题,但我找不到明确的命令来做到这一点.
这可能吗?
我正在编写一个小测试套件来运行要在一堆输入文件上进行测试的工具.对于每个输入文件,该工具正在创建相应的输出文件(两者都是XML格式).输入和输出文件在Git仓库中签入.
输出文件带有编译工具的时间,因此输出文件在被测试工具重新创建后肯定会被修改.
如果输出已经改变(当我修改工具的源代码时)快速一瞥,我想检查节点的内容是否OutputFingerprint已经改变(对输出文件的相关部分的内容进行简单的哈希) .
阅读手册git-diff,我发现有一个-G选项:
-G <regex>
查找添加或删除的行与给定<regex>匹配的差异.
不幸的是,它们没有提供如何使用该-G选项的示例.
我的第一个想法是简单地写
git diff -GOutputFingerprint
Run Code Online (Sandbox Code Playgroud)
但那是错的:
> git diff -GOutputFingerprint
error: invalid option: -GOutputFingerprint
Run Code Online (Sandbox Code Playgroud)
接下来的想法是将正则表达式放入斜杠,这也是不成功的:
> git diff -G/OutputFingerprint/
error: invalid option: -GC:/Program Files/Git/OutputFingerprint/
Run Code Online (Sandbox Code Playgroud)
此外,只是在两者之间放置一个空格-G并且OutputFingerprint不起作用:
> git diff -G OutputFingerprint
fatal: ambiguous argument 'OutputFingerprint': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Run Code Online (Sandbox Code Playgroud)
当我打电话git diff没有任何参数时,我得到修改:
- <OutputFingerprint>e45807ca76fc5bb78e9e928c6fb7eed6</OutputFingerprint>
+ <OutputFingerprint>d0846851bc9d52b37f7919def78660a2</OutputFingerprint>
Run Code Online (Sandbox Code Playgroud)
另一种想法是使用git …
我真的只是想找到一种配置git gui生成差异的方法git diff --patience,但我强烈怀疑任何可能允许我这样做的机制都允许其他选项也被传递,所以我问更一般的问题为了更好地为后人服务:
有没有办法设置一些
git diff选项,git gui用于生成它显示的差异?
我正在寻找一个免费的PHP库,可以生成与HTML相对应的代码。基本上就像GitHub的代码差异页面一样。
我一直在搜索,找不到任何东西。有人知道我在寻找什么吗?
我读了一篇关于三向合并的文章(diff3).它给出了一个如何检测冲突的示例.例子是:
A=[1,4,5,2,3,6]
O=[1,2,3,4,5,6] <<< Origin
B=[1,2,4,5,3,6]
Run Code Online (Sandbox Code Playgroud)
在第一次计算OA和OB之后的差异时:
A=[1,4,5,2,3, ,6]
O=[1, ,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
和
O=[1,2,3,4,5, ,6]
B=[1,2, ,4,5,3,6]
Run Code Online (Sandbox Code Playgroud)
之后diff3 parse:
Run Code Online (Sandbox Code Playgroud)A=[1,4,5,2, 3 ,6] O=[1, ,2, 3,4,5 ,6] <<< Origin B=[1, ,2, 4,5,3 ,6]
在发现冲突后:
1
4
5
2
<<<<<<<<<A
3
|||||||O
3
4
5
=======
4
5
3
>>>>>>B
6
Run Code Online (Sandbox Code Playgroud)
按照这种方法来检测冲突,我尝试一个简单的例子:最初我有文件:
a;
b;
Run Code Online (Sandbox Code Playgroud)
我做了更新用户1更新"a;","a=0;"
用户2更新"b;","b=0;"
我得到这个结果:
xx
<<<<<<< A
int a=0;
int b;
||||||| O
int a;
int b;
=======
int a;
int b=0; …Run Code Online (Sandbox Code Playgroud) 目前,当启用选项时git diff,--colorgit ^M仅在添加的行中显示行结尾,例如尾随空格.是否有可能让git在删除的行中显示这些?
我得到了数十个存储库,如果发生任何差异,新的提交,新的标记,新的分支,我的脚本应该更新它们。在我的情况下,对于数十个存储库而言,访存有点慢,我想知道是否有任何快速命令可以满足我的要求。
我一直都diff -b在制作补丁时会做补丁git repo。
git diff / git format-patch内部是否也使用linux / unix diff命令?(我知道之间的区别git diff/git format-patch)patch -p1有何不同git apply。我可以应用由diff命令(diff -b)生成的补丁并使用进行应用git diff吗?git diff/apply时是一种好习惯git吗?我一直在使用diff/patch,从未遇到任何问题。如果我对上述事情的知识不足,请指正。
git log -p .
Run Code Online (Sandbox Code Playgroud)
仅在当前目录中,但不在子目录中
当量
svn log --diff --depth files .
Run Code Online (Sandbox Code Playgroud)
可能吗?
我需要编辑一个凌乱的commit提交,该提交只会在随后的几行中更改一个单词,保留其中一些更改,而删除其他更改。这些更改很容易在中看到git diff --word-diff,并且以这种格式,我可以轻松地编辑大块以完成我打算做的事情,但是现在我有了一个像这样的文件
diff --git a/cldf/forms.csv b/cldf/forms.csv
index 46c12a4..0374ece 100644
--- a/cldf/forms.csv
+++ b/cldf/forms.csv
@@ -1783,8 +1783,8 @@ ID,Lect_ID,Concept_ID,Form_according_to_Source,Form,Local_Orthography,Segments,C
1782,adan1251-lawah,day,dil?l?,dil?l?,dilele,d i l ? l ?,Lit. 'all day'.,datasets_Adang_Lawahing_tsv
1783,adan1251-lawah,day,w?d saha,w?d_saha,wed saha,w ? d _ s a h a,midday' lit. 'hot sun',datasets_Adang_Lawahing_tsv
1784,adan1251-lawah,morning,lalami,lalami,lalami,l a l a m i,,datasets_Adang_Lawahing_tsv
1785,adan1251-lawah,yesterday,?u:mi,?u?mi,[-umi-]{+'umi+},? u? m i,,datasets_Adang_Lawahing_tsv
1786,adan1251-lawah,day_before_yesterday,?otari? alumi,?otari?_alumi,[-otaring-]{+'otaring+} alumi,? o t a r i ? _ a l u m i,,datasets_Adang_Lawahing_tsv
1787,adan1251-lawah,tomorrow,dil?l?,dil?l?,dilele,d i l ? l ?,,datasets_Adang_Lawahing_tsv
1788,adan1251-lawah,day_after_tomorrow,a:lu,a?lu,alu,a? l u,,datasets_Adang_Lawahing_tsv
1789,adan1251-lawah,twilight_dawn,lalami,lalami,lalami,l a l a …Run Code Online (Sandbox Code Playgroud)