问题标签 [git-patch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
52559 浏览

git - 应用补丁时“1 行添加空白错误”是什么意思?

我正在编辑克隆的远程存储库的一些降价文件,并想测试从一个分支创建补丁并将其应用到另一个分支。但是,每次我进行任何更改时,我都会收到以下消息git apply

(这发生在我的 Mac 上,我不知道原始代码是在哪里创建的。)

警告信息是什么意思,我需要注意吗?

0 投票
3 回答
3208 浏览

git - 使用 Git 的耐心差异算法进行交互式添加

我想git diff--patience. git add -p我怎样才能做到这一点?

背景:我正在处理一些 XML 文件,并且由于“未对齐”的进入/退出标签,其git diff正常算法会产生非常差的差异。如果我运行git diff --patience,我会得到更多有用的差异,但是没有明显的方法可以在git add -p.

0 投票
1 回答
192 浏览

git - GIT stash apply reverse 不适用于 js 和 rb 文件

我试图弄清楚为什么 GIT 不对 javascript 和 ruby​​ 文件应用反向补丁,而是对 php 文件应用反向补丁。我的步骤是:

...modifying some php, ruby and js files...

git stash#将更改保存到存储中

git stash apply#应用它们

git stash show -p | git apply -R#反向修补

它工作正常并且不应用我隐藏的更改,但仅适用于 php 文件,不适用于 ruby​​ 或 javascript。所有文件(甚至 php)都有CRLF行尾。当我尝试使用LF行结尾的文件时,根本没有问题,但我仍然想知道,为什么它只适用于特定文件类型的CRLF行。

谢谢你的帮助!

0 投票
1 回答
2582 浏览

windows - git在文件路径中用括号添加补丁

我想git add -p在包含括号的完整路径的文件上运行,如下所示:

但是,当我运行它时,我收到以下错误:

我也尝试过使用 转义括号\,但我得到了同样的错误。为了比较,正则git add表达式的括号没有问题。

如何将此文件传递给git add -p

编辑:我使用 Windows 似乎很相关。

0 投票
3 回答
531 浏览

git - Git 格式补丁 vs git log -p

我想检索一个提交列表作为补丁,然后尝试将它们应用到另一个存储库中,在该存储库中我存储了一个与我想要检索补丁的项目非常接近的项目:我如何在一个命令中检索所有补丁? git format-patch 和 git log -p 之间最好的方法(和区别)是什么?

0 投票
3 回答
3943 浏览

git - 如何仅为更改特定文件的提交生成/应用 git 补丁

我有两个 git 存储库,它们是彼此的分支,我需要偶尔将提交从一个导入到另一个。

例如:

git-repo1有这个目录结构:

repo1/project1/src

repo1/project2/src

whilegit-repo2具有以下目录结构:

repo2/src/

我想做的是进行一系列提交并仅为更改特定子目录(例如repo1/project1/src)中的文件的提交生成补丁,并忽略所有仅更改其他任何地方的文件的提交。

或者,为所有提交生成补丁,但仅在补丁更改特定目录中的文件时应用补丁。

我需要保留有关提交的元数据,因此玩游戏git diff似乎不是一个可行的选择。

分叉的 git 存储库之间的目录结构不同。

有没有直接的方法来做到这一点?

更新1

在处理不同的目录结构方面,我看到了这个问题(如何将 git 补丁从一个存储库应用到另一个存储库? )。

但是,如果补丁提到修改根本不存在的文件怎么办?我想忽略这些变化。

0 投票
6 回答
60211 浏览

git - 如何将 Git 补丁应用于具有不同名称和路径的文件?

我有两个存储库。一方面,我对文件进行了更改./hello.test。我提交更改并使用git format-patch -1 HEAD. 现在,我有第二个存储库,其中包含一个与 hello.test 内容相同但以不同名称放置在不同目录中的文件:./blue/red/hi.test. 如何将上述补丁应用于hi.test文件?我试过git am --directory='blue/red' < patch_file了,但这当然抱怨文件的名称不同(我认为 Git 不在乎?)。我知道我可能可以编辑差异以应用于该特定文件,但我正在寻找命令解决方案。

0 投票
1 回答
263 浏览

git - Git:从某些文件列表中创建补丁

我想从文件列表中创建一个补丁。例如,我有 10 次提交,修改了 4 个文件。我想创建一个补丁,其中包含这 10 次提交期间这 4 个文件中的 3 个的更改。我怎样才能做到这一点?

0 投票
4 回答
13617 浏览

git - git:补丁没有有效的电子邮件地址

我有一个补丁文件。

我想将此补丁应用于我在 git 存储库中的代码。

当我使用 subversion 时,这个过程非常简单:右键单击 -> tortoise svn -> 应用补丁。它总是按我的预期工作。

但我不能使用 git 来做到这一点。Git 没有应用我的补丁。它抱怨

Patch 没有有效的电子邮件地址。

所以,我的问题是:“在这种情况下如何应用补丁文件?”

0 投票
2 回答
3051 浏览

git - 使用 git add --patch 手动编辑

所以,我有一个我一直在分支 A 中处理的文件,我正准备提交它。但是,查看差异,我认为最好将其放入两个单独的提交中(好吧,在这种情况下,可能是两个单独的分支)。我之前使用过 git add --patch 来分阶段,所以我想我可以使用它。问题是,我需要分裂我的一个帅哥。运行git add --patch SdA.py并使用e来编辑问题大块...

没关系。底部有一个迷你指南。我明白了。因此,我们希望将新函数放入此提交中,并将其他函数的文档放入另一个提交中。根据迷你文档:# To remove '+' lines, delete them.

这看起来不错。让我们添加那只小狗...

嗯... git add --interactive “您编辑的块不适用”以及如何读取 git diff 的输出?说明我必须更新受影响的行号。为此,现在,我可以手动计数并说“嗯,我删除了 1、2、3……23 行。我之前编辑了 74 行,现在我正在编辑……嗯……希望我有一个计算器...... 51 行”(“哇,我出汗了”)

这似乎是一种过于复杂的方法。我仍然认为补丁是正确的方法,但是如果我需要手动更新目标文件中受影响的行数,我一定是做错了。有人对如何更轻松有效地做到这一点有任何建议吗?