标签: git-patch

如何在Git中有选择地合并或选择来自另一个分支的更改?

我在一个新项目上使用git,该项目有两个并行 - 但目前是实验性的 - 开发分支:

  • master:导入现有的代码库加上一些我一般都知道的mod
  • exp1:实验分支#1
  • exp2:实验分支#2

exp1exp2代表两种截然不同的架构方法.直到我走得更远,我无法知道哪一个(如果有的话)会起作用.当我在一个分支中取得进展时,我有时会在另一个分支中进行编辑,并且只想合并那些.

将选择性更改从一个开发分支合并到另一个开发分支而将其他所有内容合并的最佳方法是什么?

我考虑过的方法:

  1. git merge --no-commit 然后手动取消大量编辑,我不想在分支之间做出共同点.

  2. 手动将公共文件复制到临时目录,然后git checkout移动到另一个分支,然后更多地手动从临时目录复制到工作树中.

  3. 以上的变化.暂时放弃exp分支并使用另外两个本地存储库进行实验.这使得手动复制文件更加简单.

所有这三种方法都显得乏味且容易出错.我希望有更好的方法; 类似于过滤器路径参数的东西会git-merge更具选择性.

git git-merge git-patch git-cherry-pick

1374
推荐指数
22
解决办法
69万
查看次数

从当前工作目录中的更改创建一个git补丁

假设我的工作目录中有未提交的更改.如何在不必创建提交的情况下从那些补丁中创建补丁?

git git-patch

789
推荐指数
7
解决办法
44万
查看次数

如何使用我收藏的内容格式化补丁

在git中,我隐藏了我的变化.我可以用我藏的东西创建补丁吗?并将补丁应用于其他一些存储库(我的同事)?

我知道'git format-patch -1',但我认为这是我所承诺的.但我正在寻找同样的东西,因为我藏起来的变化?

如何在其他存储库中应用补丁?

git git-stash git-patch

126
推荐指数
4
解决办法
4万
查看次数

应用补丁时"1行添加空白错误"是什么意思?

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

0001-b.patch:16: trailing whitespace.
warning: 1 line adds whitespace errors.
Run Code Online (Sandbox Code Playgroud)

(这在我的Mac上发生,我不知道原始代码的创建位置.)

警告信息意味着什么,我需要关心吗?

git whitespace patch git-patch

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

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

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

git filenames patch git-patch git-am

84
推荐指数
4
解决办法
3万
查看次数

如何将git补丁从一个存储库应用到另一个存储库?

我有两个存储库,一个是库的主要仓库,另一个是使用该库的项目.

如果我修复了subservient项目,我想要一个简单的方法将该补丁应用到上游.

每个存储库中文件的位置都不同.

  • 主要回购: www.playdar.org/static/playdar.js
  • 项目: playlick.com/lib/playdar.js

我尝试git format-patch -- lib/playdar.js在playlick项目上使用,然后git am在主playdar repo上,但补丁文件中的不同文件位置引发了错误.

有没有一种简单的方法可以将给定文件中给定提交的补丁应用到其他地方的另一个任意文件?

对于奖励积分,如果您要应用补丁的文件不在git存储库中,该怎么办?

git patch git-submodules git-patch

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

Git - 为分支中的所有提交生成补丁

如何只知道分支名称,如何为给定分支中的所有提交生成补丁?

此步骤是复杂工作流程的一部分,所有这些工作流程都是自动化的.因此,要求某人手动确定分支中的第一次提交不是一种选择.

请注意,依赖于reflog的任何内容都不是一个选项,因为分支中的更改不是在本地进行的.

git git-patch git-branch

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

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

我想使用Git的耐心差异算法(如果你git diff--patience参数调用你得到的算法)git add -p.我怎样才能做到这一点?

背景:我正在使用一些XML文件,并且由于"未对齐"的进入/退出标记,git diff正常算法会产生相当差的差异.如果我运行git diff --patience,我会得到更多有用的差异,但没有明显的方法来使用这些差异git add -p.

git git-diff git-add git-patch

20
推荐指数
3
解决办法
2768
查看次数

尝试应用 git diff 时出错,“输入中没有有效补丁”

我正在创建一个 powershell 脚本,其目标是遍历多个 git 分支,保存工作更改的补丁,切换到主干分支以拉取远程提交,然后切换回工作分支并重新应用工作更改。

下面是我具体测试的方法:

git diff > test.patch
git restore .
*do main branch operation*
git apply test.patch
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试应用刚刚创建的补丁时,出现错误:

错误:输入中没有有效的补丁(允许使用“--allow-empty”)

有人看到我在这里做错了什么吗?

Git版本:2.35.2.windows.1

Powershell版本:5.1.19041.1320

git powershell git-patch

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

git:Patch没有有效的电子邮件地址

我有一个补丁文件.

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

当我使用subversion时,这个过程非常简单:右键单击 - > tortoise svn - > apply patch.它总是像我预期的那样工作.

但是我不能用git这样做.Git不适用我的补丁.它抱怨

补丁没有有效的电子邮件地址.

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

git patch git-patch

14
推荐指数
2
解决办法
1万
查看次数