gpt4 book ai didi

git - 在 git 中“ float ”提交

转载 作者:太空狗 更新时间:2023-10-29 13:38:45 24 4
gpt4 key购买 nike

在我们的项目中,我们像往常一样有一个 master 分支。基于那是部署分支,其中设置被修改。同样基于此的是运行部署镜像的镜像分支。 master 分支不应包含任何配置更改补丁。

小功能和修复在镜像分支中开发。所以添加一个特征后,它看起来像这样:

master:      history ┐
deployment: ├─ deployment-config
mirror: └─ mirror-config ── feature

现在要将该功能移回 master,我首先必须重新排序镜像分支中的补丁:

master:      history ┐
deployment: ├─ deployment-config
mirror: └─ feature ── mirror-config

现在我可以快进 merge 到 master

master:      history ┬─ feature ┐
mirror: │ └─ mirror-config
deployment: └─ deployment-config

然后将master merge 到mirror中,并rebase到master上

master:      history ── feature ┐
mirror: ├─ mirror-config
deployment: └─ deployment-config

是否有插件或工具可以自动执行此操作,以便

  • 每个新提交都会自动应用到顶级提交的“下方”,
  • 每个 merge 或 cherry-pick 也会自动应用到顶级提交的“下方”,
  • 来自这样一个分支的 merge 从顶部提交的“下方”状态 pull 出?

最佳答案

一般来说,我会建议尝试摆脱这种配置提交情况。您不能只将配置存储在您的部署中吗?或者使用污迹滤镜,正如我在此处解释的:https://stackoverflow.com/a/13616911/758345

如果那不是一个选项,让我来回答你的问题,因为 git 中的分支非常轻量,所以有更简单的方法来实现你想要的。这些都不是完全自动化的,但非常简单,您绝对可以为此编写一些小脚本。

每个新提交都会自动应用到最上面的提交“下方”

不太确定情况,但假设您进行了更改并想要提交它们:

  1. 记住您当前的分会负责人的 SHA
  2. 存储您的更改
  3. git reset --hard HEAD^
  4. stash 流行音乐
  5. promise
  6. 挑选你的老分行负责人

每个 merge 或 cherry-pick 也会自动应用到顶层提交的“下方”

同上:reset --hard,做你的工作,cherry-pick old branch head

来自这样一个分支的 merge 从顶部提交的“下方”状态 pull ?

这个很简单:git merge mybranch^


如果你不想改变你的工作目录,并且你的“config commit”修改的文件没有被你的其他操作触及,你可以这样做:

  1. 记住您当前的分行负责人的 SHA
  2. 进行软重置:git reset HEAD^
  3. 通过 git update-index --assume-unchanged 让 git 忽略你的配置文件
  4. 创建你的提交
  5. 为你的配置文件运行 git update-index --no-assume-unchanged
  6. 再次提交——这将重新创建您的配置文件。

如果您通过脚本自动执行此操作,则可以使用 git 通过查看配置提交来获取 --assume-unchanged 的配置文件列表。如果您不想自动执行此操作,则可以跳过第 3 步和第 5 步,只需确保不在第 4 步中提交配置文件即可。

关于git - 在 git 中“ float ”提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14010807/

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