gpt4 book ai didi

git - 当提交已经 merge 时,Rebase 提交到 master

转载 作者:行者123 更新时间:2023-12-02 03:08:48 25 4
gpt4 key购买 nike

enter image description here

现在我想要“公共(public)重新编译”。和“需要 package.json 的兼容包”位于单个时间线 a 而不是备用时间线。所有本地或远程分支都已获得所有提交。我该怎么做

最佳答案

Because I want a clean history so that I can share the code.

请注意,您拥有的是“干净的”Git 历史记录。像您这样的“功能气泡”显示哪些提交是作为一个组一起完成的。这是了解提交原因的附加有用信息。我建议保留您的存储库原样。

您要避免的是“更新” merge 从 master 获取最新更新。这些就是我所说的“簿记” merge 。它们混淆了历史,对考古学没有用处。

*   11067971 [master]
|\
| * d3adb3f merge master again
|/|
* | 1234567 another master commit
| * daf9f2d Require compatible...
| * abc1234 merge master
|/|
| * 3547419 Public recompile.
* | e0d2740 N/A
* | 6b2385f Apply Codestyles:
|/
* 08c6f59 Change vendor user...

相反,请使用 git rebase 进行更新,以保持分支历史记录的线性。

git checkout feature
git rebase master

* daf9f2d [feature] Require compatible...
* 3547419 Public recompile.
* 1234567 [master] another master commit
* e0d2740 N/A
* 6b2385f Apply Codestyles:
* 08c6f59 Change vendor user...

然后git merge --no-ff(无快进)以保持功能气泡。

git checkout master
git merge --no-ff feature
git branch -d feature

* abcd1234 [master] merge feature
|\
| * daf9f2d Require compatible...
| * 3547419 Public recompile.
|/
* 1234567 another master commit
* e0d2740 N/A
* 6b2385f Apply Codestyles:
* 08c6f59 Change vendor user...

因为 merge 没有执行任何操作,所以当您在 merge 之前测试分支时,您也测试了 merge 之后的代码。现在您只需对分支进行一次质量检查。

如果您想改善历史记录,请使用 git rebase -i 在这些 N/A 提交消息中添加一些内容。

但是如果您想删除重要信息...


  • 恢复 merge 前的 master 和分支。

这会有效地撤消 merge 。

git branch -f master e0d2740
git branch -f feature daf9f2d

* daf9f2d [feature] Require compatible...
* 3547419 Public recompile.
* | e0d2740 [master] N/A
* | 6b2385f Apply Codestyles:
|/
* 08c6f59 Change vendor user...
  • 在 master 之上重新设置基础功能。

功能分支是在 08c6f59 之上完成的,但现在您将其放在 e0d2740 之上。可能会有冲突。

git checkout feature
git rebase master

* daf9f2d [feature] Require compatible...
* 3547419 Public recompile.
* e0d2740 [master] N/A
* 6b2385f Apply Codestyles:
* 08c6f59 Change vendor user...
  • 快进母版到专题。

对直接祖先进行 merge 将执行“快进”。不需要 merge 提交,Git 只是将分支标签向前移动。

git checkout master
git merge feature

* daf9f2d [feature][master]]Require compatible...
* 3547419 Public recompile.
* e0d2740 N/A
* 6b2385f Apply Codestyles:
* 08c6f59 Change vendor user...
  • 删除功能
git branch -d feature

* daf9f2d [master]]Require compatible...
* 3547419 Public recompile.
* e0d2740 N/A
* 6b2385f Apply Codestyles:
* 08c6f59 Change vendor user...

关于git - 当提交已经 merge 时,Rebase 提交到 master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58249416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com