Git 如何获取本地父分支提交更新

Git 如何获取本地父分支提交更新,git,Git,如果我修改了分支a中的提交,我有一个本地分支a从主分支分支,分支B从a分支。如何在分支B中获得分支a更新。您的解决方案包括使用和选择好的提交…您可以在B分支修改后更新它 最初,您可能会遇到以下情况: * 9a808df (HEAD, B) Initial B branch commit * 2d6684f (A) Initial A branch commit * 88fe061 (master) added some changes * 90499d4 initial commit 如果您签

如果我修改了分支a中的提交,我有一个本地分支a从主分支分支,分支B从a分支。如何在分支B中获得分支a更新。

您的解决方案包括使用和选择好的提交…

您可以在B分支修改后更新它

最初,您可能会遇到以下情况:

* 9a808df (HEAD, B) Initial B branch commit
* 2d6684f (A) Initial A branch commit
* 88fe061 (master) added some changes
* 90499d4 initial commit
如果您
签出
到分支A,
添加一些更改,然后
提交--修改
,您将获得以下内容:

* 0f99377 (HEAD, A) Initial A branch commit with some amended changes
| * 9a808df (B) Initial B branch commit
| * 2d6684f Initial A branch commit
|/  
* 88fe061 (master) added some changes
* 90499d4 initial commit
* 57db150 (HEAD, B) Initial B branch commit
* 0f99377 (A) Initial A branch commit with some amended changes
* 88fe061 (master) added some changes
* 90499d4 initial commit
如您所见,分支B在其历史记录中保留了原始A提交,而分支A现在有了此提交的不同版本

解决方案:您需要的是将B的基础更新到新提交,即

然后,在最后,您将有以下内容:

* 0f99377 (HEAD, A) Initial A branch commit with some amended changes
| * 9a808df (B) Initial B branch commit
| * 2d6684f Initial A branch commit
|/  
* 88fe061 (master) added some changes
* 90499d4 initial commit
* 57db150 (HEAD, B) Initial B branch commit
* 0f99377 (A) Initial A branch commit with some amended changes
* 88fe061 (master) added some changes
* 90499d4 initial commit

修改作为其他提交父级的提交可能不是一个好主意。相反,您应该向分支a添加一个新的提交,然后从a合并到B。@NamshubWriter我并不完全同意,因为它将以一个更复杂的历史结束,这并不总是一件好事……使用您的解决方案,您无法保证重基不会最终出现合并冲突(取决于所做的更改),所以做一个
重基--
是一个更好的主意…你确定吗?你能再详细说明一下你的答案吗?我认为这是一个有趣的问题:)如果您修改commit以添加新的更改,那么重基将在没有冲突的情况下工作。但是,如果修改提交中引入的更改(更新此提交中已修改的行),则您的重基将不会应用而不会发生冲突。但在这种情况下,如果在应用第一次提交时出现冲突,也可以跳过应用提交。伙计们,谢谢你们的回答,我认为我发现一件有用的事情是使用交互式重基。当您重新设置A的基础时,git创建了A的新提交,通过执行git rebase-IA,您可以删除新提交,这样您就不会继续执行。