问题标签 [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 投票
2 回答
1598 浏览

hook - magento 2 供应商 git diff & 应用补丁

主要是,这个问题特定于带有 Magento 2 的 git。我有一个正在工作的 Magento 2 项目,并且我已经使用 github repo - https://github.com/Adyen/adyen-magento2安装了一个扩展。

在我目前的情况下,我必须调试该扩展并且必须检查我的远程服务器。我已经分叉了那个 repo 并为例如 cc_debug.patch 文件创建了一个补丁。现在,我已将该补丁添加到本地服务器上的根目录中。git apply --apply --directory=vendor/adyen/module-payment/ cc_debug.patch然后,如果我使用它执行补丁程序并修改供应商目录下的文件。我通过 repo 推送了更改,并且由于部署脚本,该文件移动到了远程服务器。

现在,我只有远程服务器的读取权限,并且没有初始化 .git。如果我确实在远程服务器上应用补丁,它肯定会执行,但如果我下次推送,由于部署脚本供应商将重新生成,补丁应用的更改将丢失。据我所知,这里有一些钩子,但我缺乏关于钩子的知识。

我假设我必须在我的 git 本地仓库中创建部署后挂钩,如下所示:

现在,我不能将该钩子推送到远程仓库(甚至没有初始化),所以这个解决方案对我不起作用。或者我知道更新后是特定于远程的(如果我错了,请纠正我)所以我猜测由于这个钩子,更改将在远程服务器上执行,但是如果我在另一台本地机器上再次克隆,我必须再次创建部署后补丁,所以这不是理想的情况。

我每次执行部署脚本时应用补丁的解决方案是什么?[注意:部署脚本不在我手中,因为它是由 Magento 通过 github 提供的 webhook 执行的。所以,我假设必须有一些 webhook 使用它我必须应用补丁,这又是我缺乏知识。] 我相信有人和我的情况一样。请指导我。TIA。

0 投票
2 回答
3282 浏览

git - 撤消或恢复 git am --resolved

我正在手动应用补丁,完成后我做了以下

我忽略了 rej 文件也存在且未跟踪的部分,但git add .按预期将所有文件添加到暂存区域,git am --resolved最后我提交了包含补丁 diffs 的 rej 文件。

我做了一个git reset --soft HEAD^,所以我可以恢复提交,只提交补丁修改的文件。

但现在的问题是提交消息和作者将不再从补丁文件中提取,因为我做了一个 git 提交。

如何撤消已解析的 git,以便我可以删除 rej 文件并再次解析,以便提交消息和作者完好无损?

0 投票
3 回答
5922 浏览

git - 如何为 git 中的最后 N 次提交准备和应用多个补丁

我需要为最后 N 次提交创建一个补丁文件,并将它们作为单独的提交应用到另一个分支。对于 N=3 我假设我必须这样做:

git diff HEAD~3 HEAD~2 >> diff1
git diff HEAD~2 HEAD~1 >> diff2
git diff HEAD~1 HEAD >> diff3

然后分别将它们应用到另一个分支上:

git apply diff1
(推送)
git apply diff2
(推送)
git apply diff3

有没有更短的方法来做到这一点?

0 投票
2 回答
497 浏览

git - 从 git stash 中提取非二进制文件

我对 git 很陌生。我在一台计算机上运行

我复制myfeaturepatch到第二台计算机并运行

我做了一些更改,包括添加一些字体文件(二进制文件)然后运行

当我尝试将第二个版本应用回我的第一台计算机时,我得到

git stash save --binary myfeature2我的猜测是当我藏匿时我需要跑步。不幸的是,由于git stash删除了它保存到文件中的更改,并且由于上述错误,我无法将补丁应用于任何一台计算机,因此我目前无法访问我所做的更改。

我尝试了一堆不同的git apply命令git stash,但我对正在发生的事情以及从我的补丁文件中提取非二进制文件的含义没有足够的了解。我认为有办法做到这一点。

0 投票
1 回答
570 浏览

git - 理解并尝试为 fuse 文件系统应用 git 补丁

我有一个基于 fuse 的文件系统,为了改进它,我需要实现这种方法 https://lwn.net/Articles/674286/

我明白我应该git apply < patch >,问题是我不明白这个补丁应该应用在哪里?

该补丁正在尝试修改几个文件,例如:

我用命令找不到locate,也尝试丢失'a'和'b'前缀,只找到了makefile。

  • 注意:已安装 libfuse-dev
0 投票
1 回答
771 浏览

git - git apply --reject/--include 默认使用 --verbose 吗?

我懂了

总是打印关于哪些文件被考虑和拒绝从补丁文件传递的完整信息。因此,选项通过--verbose时似乎 git 使用的模式。--reject

选项是否--verbose打印了--reject 选项未打印的任何其他信息?我也没有在git-apply文档中找到任何相关细节。

0 投票
2 回答
3656 浏览

linux - 检查是否已应用 git apply

这个问题是关于git apply

有没有办法区分:它失败了,因为......

  1. ...补丁已经应用
  2. ...源代码真的不一样

我工作的目录不是 git 目录,因此我不能使用git log或其他东西。

我知道-R(反向)选项,因此我目前的解决方法是:

这种方式git apply abc.patch -R --check && git apply abc.patch只会在git apply abc.patch失败时执行,然后检查它是否因为补丁已经应用而失败(git apply abc.patch -R --check),如果是这种情况,它会回显“已经应用”

但我不喜欢它,在 git 的应用程序中没有类似内置解决方案的东西吗?

0 投票
1 回答
106 浏览

git - 如何在不重新创建它的原始结构的情况下应用 git 补丁

我正在尝试将此补丁应用于文件(bi_janrain_data/js/bi_janrain_data.js):

但它给了我这些错误:

我也试过这个:

0 投票
1 回答
294 浏览

c# - 致命:直接从 C# 执行 git diff 时出现不明确的参数 '>' 错误

我正在尝试在 C# 中执行以下操作:

  1. 获取两个分支之间的差异。
  2. 重定向补丁文件中的输出。
  3. 签出一个新的空分支。
  4. 将补丁文件应用到这个新分支。
  5. 添加文件并将此分支提交到远程仓库。

我正在运行的当前 git 命令:

虽然这在 git bash 中可以正常工作,但在从 C# 执行时却不行,并且我收到 diff 命令的以下消息:

在此处输入图像描述

编辑:

我用来运行上述每个命令的 C# 方法如下:

它是这样调用的:

注意:我在项目的其他部分使用 LibGit2Sharp,但在这种特定情况下,我无法使用它,因为 LibGit2Sharp 没有实现git-apply

0 投票
2 回答
162 浏览

git - Git取消应用存储?

我有几种情况的调试代码。我把它存放在藏匿处。他们涉及许多文件。有时在编码过程中我需要做debug stash apply.

但在解决情况后,无法将临时“debug2”代码解开。我应该恢复文件,或者在最坏的情况下只调试我之前手动接触过的类中的代码行。

我知道可以先做代码commit,然后debug stash apply再做debug commit. 然后做第三个代码commit。但是,如果我不确定所有工作更改都应该提交到第一次代码提交,那就很不舒服。

有没有办法即时取消应用相同的调试存储代码?

此外,也许您更了解如何使用临时调试代码。