我有一个应用程序在分支上的git存储库中运行(比如说dev).应用程序修改某些存储库中的内容并提交它们.我现在必须将这些更改合并到另一个分支(比如说master),但是在我git checkout master做这个之前我不想做这个问题.有没有办法说"将当前分支合并为主"?
有没有办法将分支合并到另一个分支而不检查任何分支?例如,我检查了分支'master',但我想将branch-a合并到branch-b,而不离开master.
我有以下场景:
* ab82147 (HEAD, topic) changes
* 8993636 changes
* 82f4426 changes
* 18be5a3 (master) first
Run Code Online (Sandbox Code Playgroud)
我想(非快进)合并topic成master.这需要我:
git checkout master git merge --no-ff topic但是检查master,然后将主题合并到它会导致git更改我的工作目录(虽然最终结果与检查master之前的结果相同),而我遇到的问题是由于我们项目的大小,构建它需要大约30分钟(使用IncrediBuild)虽然没有真正改变,但它简直无法忍受.
所以我想得到的是以下内容:
* 9075cf4 (HEAD, master) Merge branch 'topic'
|\
| * ab82147 (topic) changes
| * 8993636 changes
| * 82f4426 changes
|/
* 18be5a3 first
Run Code Online (Sandbox Code Playgroud)
没有真正触及工作目录(或至少以某种方式欺骗git).
我在git中做的一件事(尤其是当一个人在项目上工作时)是通过快速合并将当前主题分支合并到master分支中。令我感到困扰的是,我必须首先检出master分支,该分支将工作树中所有已更改的文件都更改回其原始状态,然后合并主题分支,从而将文件再次设置为新状态。
这会导致我的IDE重新编译所有已更改的文件,因为它看到它们已经被触摸了,这实际上是不必要的,因为文件的内容与以前相同,并且检出的提交与以前相同。
是否有一些git magic可以达到相同的结果而无需git接触工作树?