问题标签 [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.
git - 使用大块编辑模式暂存重命名的属性
我正在尝试使用 'git add -p' 仅提交我的一部分代码。在下面的差异中,我想将“模型”重命名为“共享数据”(因此,删除模型行并添加共享数据行)。
我尝试使用多个设置在上下文中添加不必要的行(添加空格),但我得到“您编辑的块不适用。”:
删除上下文行也不起作用:
git - 如何在分支 B 和工作目录 A 中创建所有更改的补丁,比如 10 天?
我尝试使用命令
但是当我使用
我收到一个错误
git - 如何在具有更改历史记录的存储库上应用 git 补丁?
最近我从 SVN 迁移到 git,我的团队已经开始在新的 git 存储库中工作。
后来我发现了一些转换问题,并通过一些修复和历史重写从 SVN 制作了第二个 git repo。
现在我有 SVN 存储库的第二个 git 副本(我很满意),我想用我的团队在第一个 git 存储库中已经做出的更改来修补它。
为此,我尝试使用 git 补丁:
git-format-patch --zero-commit --stdout > master.patch
创建已经对master
第一个 git repo 进行的更改的单个文件- 并从
第二个存储库的文件
git-am
中应用提交*.patch
master
我指定--zero-commit
,因为补丁文件中的哈希是错误的,因为我实际上有两个不同的存储库。
问题是,当我尝试应用补丁时,git am master.patch
我得到:
Applying: %commit_name% error: patch failed: readme.md:5 error: readme.md: patch doesn't apply Patch failed at 0001 %commit_name% 失败的补丁副本位于:.git/rebase-apply/补丁解决了这个问题后,运行“git am --continue”。如果您希望跳过此补丁,请运行“git am --skip”。要恢复原始分支并停止修补,请运行“git am --abort”。
即使我在这个补丁中只有一个提交并且我想将它应用到同一个 repo 以获得相同的提交,但是在另一个分支上。
git - 使用 git am 时,是否可以将提交者设置为在补丁中定义为作者的同一个人?
使用命令应用补丁时,是否可以将提交者设置为补丁中定义为作者的同一个人git am
?
git - 如何为分支中的所有提交生成补丁?
如何通过只知道分支名称为给定分支中的所有提交生成补丁?
此步骤是复杂工作流程的一部分,所有这些工作流程都是自动化的。因此,要求某人手动确定分支中的第一次提交不是一种选择。
请注意,任何依赖 reflog 的东西都不是一个选项,因为分支中的更改不是在本地进行的。
git - Git 自动补丁子模块
我有一个带有子模块的 C++ 项目(我只有读取权限)。早期它只是代码的副本而不是子模块。在工作过程中,这个副本已经改变了一点。那么,如何在每次子模块更新后自动应用这些更改?
这真的是很小的变化,但删除它们会让我进行大代码编辑。
git - 如何使用 git 在新版本后重新修补主题
我正在使用一个主题 3 年。
我已经为自己修补了一点。
在dreamhost停止php 5.6之后,我必须更新到新版本。
从第一天开始,我就一直在使用 git。
您能否建议 git 如何帮助在新分支上再次应用相同的更改?
xcode - libgit2:如何在一个大块中展示特定的行
我正在编写一个 mac 应用程序,它允许我仅将包含特定文本的行作为子字符串暂存。基本上,我尝试构建源树为其用户提供的功能。在大块中分期选定的行。我的选择逻辑是,选择包含特定文本的行作为子字符串。但我不知道如何使用 libgit2 来实现这一点。
我已经像这样初始化了回购
然后我正在为工作目录创建一个差异索引,如下所示。
之后,我可以使用下面的回调函数遍历大块和每个大块中的行。
并且为大块中的每一行调用回调。
现在我意识到我需要以某种方式创建一个补丁,并且只将差异中的必要行添加到补丁中。
任何人都可以指导正确的方向吗?如果 libgit2 还不允许这样做,是否还有其他库可以让我这样做。atlassian 源代码树似乎也在后台使用 libgit2。他们怎么可能实现这一点?
顺便说一句,git CLI 允许通过此答案中给出的修补来做到这一点。 https://stackoverflow.com/a/32311872/569497
git - 更改 git merge 的方向(合并完成后)
我在 git repo 中有一个分支(例如 Feature-X)。
我所做的是以下
我解决了很多冲突。我还没有提交更改。
但是,事实证明我想要做的是反向合并(即合并 master 到 Feature-x),因为分支可能仍然不稳定。
是否有任何命令可以挽救我在解决冲突中所做的工作,或者我是否需要再次解决,这次是在分支 Feature-X 中?
我在想是否有办法获取当前补丁,但以“反向”顺序将其应用到分支 Feature-X 中。例如,当补丁说 X 行更改为 Y 时,这是相对于 Feature-X 要掌握的。如果我想做相反的事情,补丁应该说 Y 行改为 X 行,对吗?这只是我的想法。任何解决方案都可以。
git - 跨多个重命名为两个文件创建 Git 补丁
我想将两个文件从一个存储库移动到另一个。这些文件最初添加为:
/src/init/Price.cs
/tests/init/PriceTests.cs
这两个文件后来被重命名为:
/src/init/PriceValue.cs
/tests/init/PriceValueTests.cs
然后移动到:
/src/moved/PriceValue.cs
/tests/moved/PriceValueTests.cs
我试图通过这个描述为这些文件创建一组补丁,但我不确定如何传递文件存在的六个不同路径。
我设法找到了所有影响PriceValue.cs
(跨重命名和移动)的提交 ID,但是将这些 ID 传递给 Git 失败并显示以下错误消息:
那么,我如何为此创建一组补丁,其中仅包含对上述文件的更改,但在每个文件的一次重命名和一次移动中包含它?