问题标签 [git-apply]

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 投票
0 回答
2114 浏览

git - git apply patch 排除 2 个文件

你如何 git 应用补丁但排除 2 个文件?对于 1 个文件或文件模式,您可以--exclude标记。但是,如果我有 2 个不同的文件a.rb并且b.rb我需要排除但我有c.rb, d.rb,e.rb也在需要应用的补丁中怎么办。

0 投票
2 回答
228 浏览

git - Git stash apply - git 在申请之前会尝试合并吗?

假设我有一个本地存储库并进行了一些更改 - 有些已添加到索引中,而有些仅被跟踪但留在工作区中而没有添加到索引中。

如果我要存储更改,请在同一个分支上继续工作(存储后),然后在添加或提交存储后所做的更改之前 git-apply。

git 如何处理“申请”?是应用=应用+尝试合并吗?

将存储应用到 repo 时,git 在内部做了什么?

在将其他隐藏的更改应用到同一分支之前,我们是否应该始终提交或隐藏我们的更改?

谢谢 !

0 投票
1 回答
1765 浏览

git - 你可以让 git apply 进行试运行吗?

我想知道,使用 git apply 应用 .patch 文件时会写入哪些文件。

有没有办法通过空运行在 git 中应用 .patch 文件?

0 投票
2 回答
256 浏览

git - Git 合并仓库外的文件内容(--no-index)

git diff命令(带有--no-index标志)非常适合区分两个文件,无论这两个文件是否包含在 Git 存储库中。

例子

问题

git add如果它们不是 Git 存储库的一部分,是否也可以使用 Git 选择性地将内容从一个文件“合并”(即)到另一个文件?基本上像 agit add -p但不是从工作目录到索引,而是从filebfilea.

我觉得所有基本构建块(管道命令)都应该可用。可能涉及format-patch和/或apply

0 投票
0 回答
334 浏览

git - Git diff 补丁在 git apply 失败

我已经使用以下 git 命令生成了补丁

当我应用补丁时,出现以下错误

如果我使用以下 git apply 命令,我可以成功应用补丁

但问题是我们无法将 git apply 命令更改为上述命令,我们使用的是不允许更改 git apply 命令的 Magento 云 PaaS 环境。

在 git diff 中,我提到了忽略空格(-b)和忽略空格(-w),但它不起作用。当我们在 git apply 命令中提到忽略空格和忽略空格时,只有它起作用了。

请帮我解决这个问题。

提前致谢。

0 投票
1 回答
136 浏览

git - 将几个文件添加到 Stash (Git)

目前我在本地分支中有一些修改过的文件:

我想放在stash第一个 3. 我该怎么做?

0 投票
0 回答
116 浏览

git - `git apply --ignore-whitespace` 坏了

根据官方git 文档

然而,一个基本的测试表明这是一个该死的谎言。

复制步骤:

  1. somefile.txt使用以下内容 创建:
    • 第 1 行:任何你想要的文本
    • 第 2 行:任何非零数量的空格
    • 第 3 行:任何你想要的文本
  2. git add somefile.txt
  3. cp somefile.txt somefile.orig.txt
  4. 修改somefile.txt
    • 第 1 行:进行任何您想要的更改
    • 第 2 行:删除所有空格(现在将是空行)
    • 第 3 行:不要更改此行
  5. 使用git diff创建一个所谓的“忽略空格”的差异:git diff -w somefile.txt > somefile.gitdiff
  6. 请注意,由于存在明显的错误,生成的第 2 行(更改行之后的行)将git diff -w没有空格,该行显示为上下文.gitdiff
  7. 可选地,为了比较:使用 GNU diff创建一个真正忽略空格的差异:diff -uw somefile.orig.txt somefile.txt > somefile.diff
  8. 重置somefile.txt为原始版本:git checkout somefile.txt
  9. 尝试应用gitdiff我们在第 5 步中创建的补丁:git apply --ignore-whitespace somefile.gitdiff

预期结果:

同样,用git apply文档的确切内容:

应用补丁时,如有必要,请忽略上下文行中的空白更改。

在这里,我们得到了确切的答案:上下文行中的空格发生变化的补丁。所以期望它git apply会做它在锡上所说的,实际上忽略这个上下文行的空白差异,并成功和干净地应用补丁,没有任何模糊或错误。然而...

实际结果:

应用补丁失败:error: patch failed ... patch does not apply

应该注意的是,使用patch --ignore-whitespace -p1 < somefile.gitdiff效果很好,成功地应用了补丁,没有模糊也没有错误。

一个漂亮的表格来帮助说明

bugs-with-git-diff-and-apply-not-ignoring-whitespace

diff -wpatch --ignore-whitespace完美地工作。git' 等价物并非如此。

注意:我已经测试并遇到了相同的结果,同时使用git v. 2.15.1git v. 2.25.1

问题:

  • 我错过了什么吗?还是我真的是 2021 年第一个注意到/烦恼提出这个问题的人?
  • 有什么聪明/巧妙的解决方法吗?
0 投票
1 回答
75 浏览

git - 应用隐藏补丁并且没有阶段

我正在寻找一种方法来应用我的存储补丁,以便逐步查看我正在应用的内容。

如果我做git stash apply 0

  • 自动合并所有,如果在我运行后我git diff看不到更改。就像它自动上演所有。

  • 只有在应用后,在一个文件中存在一些冲突时,我才能解决冲突,并且在这样做之后,我可以看到未暂存的更改。

如何在申请过程中获得更多控制权,而不是全部应用代码并已暂存?

谢谢!

0 投票
1 回答
39 浏览

git - git apply patch 似乎已应用但不断收到补丁错误

我运行以下命令来应用补丁,在第一次尝试中,它吐出了几个错误,说这些文件的补丁应用失败,在对这些文件进行更改后,我再次运行该命令以查看很多其他的错误。

但是我检查了一些文件,看起来补丁已正确应用,但为什么会出现错误?以下 .rej 和源文件无法帮助我调试原因

0 投票
2 回答
79 浏览

git - 如何查看将要提交的文件

我在我的目录中修改了一个文件(或一些文件),并且我习惯于git add从文件中暂存一些更改行,但不是所有更改的行。

我可以git diff --staged my-file用来查看更改的差异。 git diff --staged my-file忽略已更改但未上演的行。这是输出的示例git diff --staged my-file

问题:如何生成将要提交的文件的文本?我想要一个签入挂钩,以便在允许提交之前最终处理该文件。

我怀疑有一些简单的咒语使用git apply。但是,简单的使用git apply会产生以下诊断消息。

我有一个似乎太复杂的解决方案。

  1. 生成 .patch 文件git diff --staged > my-file.patch
  2. 保存原件cp my-file my-file.save
  3. 隐藏更改git stash save my-file
  4. 应用补丁git apply my-file.patch
  5. 保存了所需的结果cp my-file my-file.to-commit
  6. 将文件恢复到预添加状态mv my-file.save my-file
  7. 将字段恢复到添加后状态git stash apply

现在,my file.to-commit是要提交的填充副本。这真的是正确的方法吗?看来我做的工作太多了。