我有一个脚本在一个分支中工作正常,在另一个分支中被破坏.我想并排看两个版本,看看有什么不同.有没有办法做到这一点?
要明确我不是在寻找比较工具(我使用Beyond Compare).我正在寻找一个git diff命令,它允许我将主版本与我当前的分支版本进行比较,看看有什么变化.我不是在合并或任何事情的中间.我只想说些什么
git diff mybranch/myfile.cs master/myfile.cs
Run Code Online (Sandbox Code Playgroud) $ git ls-tree fb3a8bdd0ce
100644 blob 63c918c667fa005ff12ad89437f2fdc80926e21c .gitignore
100644 blob 5529b198e8d14decbe4ad99db3f7fb632de0439d .mailmap
100644 blob 6ff87c4664981e4397625791c8ea3bbb5f2279a3 COPYING
040000 tree 2fb783e477100ce076f6bf57e4a6f026013dc745 Documentation
100755 blob 3c0032cec592a765692234f1cba47dfdcc3a9200 GIT-VERSION-GEN
100644 blob 289b046a443c0647624607d471289b2c7dcd470b INSTALL
100644 blob 4eb463797adc693dc168b926b6932ff53f17d0b1 Makefile
100644 blob 548142c327a6790ff8821d67c2ee1eff7a656b52 README
...
Run Code Online (Sandbox Code Playgroud)
我知道最后3个八位数字是文件模式,但前3位是什么?我在git用户手册中找不到它.
我一直在从返回的信息中收集数据
git diff <commitId>..<commitId>
Run Code Online (Sandbox Code Playgroud)
然后我遇到了 @@ -1 +1 @@
我无法弄清楚那是什么告诉我的.我在Google上搜索了一下,但无济于事.
我正试图git add --interactive有选择地为我的索引添加一些更改,但我不断收到"你编辑的hunk不适用.再次编辑..."消息.即使我选择了e选项,我也会收到此消息,并立即保存/关闭我的编辑器.换句话说,根本不编辑hunk,补丁不适用.
这是我正在使用的确切示例(我正在尝试整理一个小型演示):
原始档案:
first change
second change off branch
third change off branch
second change
third change
fourth change
Run Code Online (Sandbox Code Playgroud)
新文件:
Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
bug fix 1
change supporting feature 1
Run Code Online (Sandbox Code Playgroud)
我试图展示如何使用git add --interactive只添加"错误修复1"行到索引.在文件上运行交互式添加,我选择了补丁模式.它告诉我
diff --git a/newfile b/newfile
index 6d501a3..8b81ae9 100644
--- a/newfile
+++ b/newfile
@@ -1,6 +1,9 @@
+Change supporting feature 1
first change
second change off …Run Code Online (Sandbox Code Playgroud) 以下是什么意思?
diff -rBNu src.orig/java/org/apache/nutch/analysis/NutchAnalysisConstants.java src/java/org/apache/nutch/analysis/NutchAnalysisConstants.java
--- src.orig/java/org/apache/nutch/analysis/NutchAnalysisConstants.java 2009-03-10 11:34:01.000000000 -0700
+++ src/java/org/apache/nutch/analysis/NutchAnalysisConstants.java 2009-03-10 14:11:55.000000000 -0700
@@ -4,9 +4,12 @@
+ int CJK = 21;
+ int DIGIT = 22;
int DEFAULT = 0;
String[] tokenImage = {
"<EOF>",
+ "\"OR\"",
"<WORD>",
"<ACRONYM>",
"<SIGRAM>",
@@ -39,6 +42,8 @@
"\"\\\"\"",
"\":\"",
"\"/\"",
+ "\"(\"",
+ "\")\"",
"\".\"",
"\"@\"",
"\"\\\'\"",
Run Code Online (Sandbox Code Playgroud) 当我git diff在C#文件上使用时,我看到这样的东西:
diff --git a/foo.cs b/foo.cs
index ff61664..dd8a3e3 100644
--- a/foo.cs
+++ b/foo.cs
@@ -15,6 +15,7 @@ static void Main(string[] args)
string name = Console.ReadLine();
}
Console.WriteLine("Hello {0}!", name);
+ Console.WriteLine("Goodbye");
}
}
}
Run Code Online (Sandbox Code Playgroud)
hunk标题行包含当前方法(static void Main(string[] args))的第一行,这很好.然而,它似乎并不是非常可靠......我看到很多情况它不起作用.
所以我想知道,这段摘录是从哪里来的?是否git diff以某种方式识别语言的语法?有没有办法定制它?
这个问题是关于理解基本的统一差异输出格式.三种方式的差异和合并可能是最好的方法,从适当的GUI合并工具的舒适性,或至少,vim diff模式与插件,如fugitive.vim.
我发现git diff在合并冲突时运行会产生一个带有两列优缺点的差异视图.
很明显,在比较相同数据的三个不同版本时,我们需要的信息比仅比较两个版本时要多.但这些专栏究竟意味着什么呢?现在显然有很多组合可用于现在属于给定线的可能"桶".它曾经只是无论是空白的(相同的), +(加)或-(删除),现在我们有空白,++,--,+ , +,- ,和 -.甚至可能还有更多我没见过的东西.
所以,我有一个我一直在分支A工作的文件,我只是准备提交它.但是,看看差异,我认为最好把它分成两个单独的提交(好吧,在这种情况下,可能是两个独立的分支).我之前使用过git add --patch来分离各个帅哥,所以我想我可以用它.问题是,我需要分开我的一个人.运行git add --patch SdA.py和使用e编辑问题块...
# Manual hunk edit mode -- see bottom for a quick guide
@@ -50,13 +50,74 @@ import PIL.Image as im
import constant
+
+def exp_range(min=None, max=None, step=None):
+ """
+ Generate an exponentially increasing value scaled and offset such
+ that it covers the range (min, max]. Behaviour is similar to
+ exp(x), scaled such that the final value generated is equal to
+ 'max'. 'step' defines the granularity of …Run Code Online (Sandbox Code Playgroud) 示例代码
diff -r -u -P a.c b.c > diff.patch
Run Code Online (Sandbox Code Playgroud)
我试图在人中搜索。
man 说 diff -u 是为了统一输出的模式,什么意思,什么时候用?
多谢。
我一直使用git但是从未使用过diff命令我今天开始使用它但我真的不明白输出...我有一个文件,我删除了第3行和第4行,我得到了以下输出但是可以有人帮助我理解输出线在虚拟术语中的含义.谢谢
$ git diff
diff --git a/README.txt b/README.txt
index 15827f4..8115e72 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,2 @@
this file
adding like
-line 3
-
Run Code Online (Sandbox Code Playgroud) git ×8
diff ×5
patch ×3
git-add ×2
bash ×1
file-format ×1
git-diff ×1
git-ls-tree ×1
git-patch ×1
interactive ×1
linux ×1
shell ×1
svn ×1
syntax ×1
terminal ×1