将分支上的 git 提交保存到文件
Save git commits on a branch to the file
给定本地分支(比如 'test')- 是否可以使用一些 git 魔法将此分支上的提交保存到一个文件中,我可以将该文件发送给其他开发人员,然后他们可以申请这些提交到他的分支?我知道有一种方法可以将分支上的每个提交都保存到文件中,但不确定是否可以只对本地分支上的提交进行保存。
例如假设 master 分支有提交 'a'、'b' 和 'c',我的测试分支是在 'c' 上创建的,并且有提交 'd' 和 'e':
+ (branch:master)
|
* commit:'a'
|
* commit:'b'
|
* commit:'c'
| \
... + (branch:test)
|
* commit:'d'
|
* commit:'e'
x
因此,在 'test' 和 'master' 分支之间生成差异后,我只想在该差异中提交 'd' 和 'e'。
所以其他开发人员也可以从 master 创建他自己的测试分支,应用我的 diff 并在他的分支上提交 'd' 和 'e'。
我知道这可以通过将更改推送到远程分支来实现,但出于某些原因我想避免这样做,是的,我知道分支很便宜,但相信我我有充分的理由不这样做将这些更改推送到远程分支。
在你的测试分支中做
git format-patch master --stdout > patch.diff
申请时
git am < patch.diff
您可以使用git diff命令。
尝试以下操作:
git diff test master
我认为最好的方法是创建一个 bundle。它不仅会移动您的分支所具有的差异,还会移动实际的提交。
该文档有一个很好的示例,但您基本上要做的是在一台计算机上创建一个捆绑包,将其传输到另一台计算机并将其添加为远程。从那里你可以合并、变基、挑选或任何你喜欢的东西。
文档中没有明确提到的是,制作一个太大的包是可以的,它包含目标计算机上已经存在的大量提交,只要它有一个共同点就可以工作。
给定本地分支(比如 'test')- 是否可以使用一些 git 魔法将此分支上的提交保存到一个文件中,我可以将该文件发送给其他开发人员,然后他们可以申请这些提交到他的分支?我知道有一种方法可以将分支上的每个提交都保存到文件中,但不确定是否可以只对本地分支上的提交进行保存。
例如假设 master 分支有提交 'a'、'b' 和 'c',我的测试分支是在 'c' 上创建的,并且有提交 'd' 和 'e':
+ (branch:master)
|
* commit:'a'
|
* commit:'b'
|
* commit:'c'
| \
... + (branch:test)
|
* commit:'d'
|
* commit:'e'
x
因此,在 'test' 和 'master' 分支之间生成差异后,我只想在该差异中提交 'd' 和 'e'。 所以其他开发人员也可以从 master 创建他自己的测试分支,应用我的 diff 并在他的分支上提交 'd' 和 'e'。
我知道这可以通过将更改推送到远程分支来实现,但出于某些原因我想避免这样做,是的,我知道分支很便宜,但相信我我有充分的理由不这样做将这些更改推送到远程分支。
在你的测试分支中做
git format-patch master --stdout > patch.diff
申请时
git am < patch.diff
您可以使用git diff命令。
尝试以下操作:
git diff test master
我认为最好的方法是创建一个 bundle。它不仅会移动您的分支所具有的差异,还会移动实际的提交。
该文档有一个很好的示例,但您基本上要做的是在一台计算机上创建一个捆绑包,将其传输到另一台计算机并将其添加为远程。从那里你可以合并、变基、挑选或任何你喜欢的东西。
文档中没有明确提到的是,制作一个太大的包是可以的,它包含目标计算机上已经存在的大量提交,只要它有一个共同点就可以工作。