相关疑难解决方法(0)

如何比较两个不同分支的文件?

我有一个脚本在一个分支中工作正常,在另一个分支中被破坏.我想并排看两个版本,看看有什么不同.有没有办法做到这一点?

要明确我不是在寻找比较工具(我使用Beyond Compare).我正在寻找一个git diff命令,它允许我将主版本与我当前的分支版本进行比较,看看有什么变化.我不是在合并或任何事情的中间.我只想说些什么

git diff mybranch/myfile.cs master/myfile.cs
Run Code Online (Sandbox Code Playgroud)

git git-diff

1430
推荐指数
10
解决办法
69万
查看次数

如何读取git-ls-tree输出的mode字段

$ 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 file-permissions git-ls-tree

95
推荐指数
2
解决办法
3万
查看次数

什么"@@ -1 +1 @@"在Git的diff输出中意味着什么?

我一直在从返回的信息中收集数据

git diff <commitId>..<commitId>
Run Code Online (Sandbox Code Playgroud)

然后我遇到了 @@ -1 +1 @@

我无法弄清楚那是什么告诉我的.我在Google上搜索了一下,但无济于事.

git diff

94
推荐指数
3
解决办法
2万
查看次数

git add --interactive"你编辑的hunk不适用"

我正试图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)

patch interactive git-add

80
推荐指数
10
解决办法
3万
查看次数

补丁文件的格式是什么?

以下是什么意思?

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)

patch file-format

63
推荐指数
3
解决办法
5万
查看次数

带有svn diff或git diff标志的"@@ ... @@"元线是什么意思?

当我使用svn diffgit diff它显示如下行:

@@ -1,5 +1,9 @@
Run Code Online (Sandbox Code Playgroud)

他们的意思是什么?

svn git diff

58
推荐指数
3
解决办法
8196
查看次数

git diff hunk header中的摘录从何而来?

当我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以某种方式识别语言的语法?有没有办法定制它?

git syntax diff

20
推荐指数
1
解决办法
1992
查看次数

12
推荐指数
1
解决办法
3742
查看次数

如何阅读Git 3路统一差异输出格式?

前言

这个问题是关于理解基本的统一差异输出格式.三种方式的差异和合并可能是最好的方法,从适当的GUI合并工具的舒适性,或至少,vim diff模式与插件,如fugitive.vim.

我发现git diff在合并冲突时运行会产生一个带有两列优缺点的差异视图.

很明显,在比较相同数据的三个不同版本时,我们需要的信息比仅比较两个版本时要多.但这些专栏究竟意味着什么呢?现在显然有很多组合可用于现在属于给定线的可能"桶".它曾经只是无论是空白的(相同的), +(加)或-(删除),现在我们有空白,++,--,+ , +,- ,和 -.甚至可能还有更多我没见过的东西.

git

8
推荐指数
1
解决办法
1500
查看次数

使用git add --patch <filename>手动编辑

所以,我有一个我一直在分支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)

git version-control git-add git-patch

7
推荐指数
1
解决办法
2603
查看次数

如何理解linux中的diff -u?

示例代码

diff -r -u -P a.c b.c > diff.patch
Run Code Online (Sandbox Code Playgroud)

我试图在人中搜索。

man 说 diff -u 是为了统一输出的模式,什么意思,什么时候用?

多谢。

linux bash shell terminal

4
推荐指数
2
解决办法
5128
查看次数

解释git diff输出

我一直使用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 diff

3
推荐指数
1
解决办法
3008
查看次数