gpt4 book ai didi

Git 分支 : There and Back Again

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

当我处理一项功能时,我经常会偶然发现代码库中可以改进的某些部分。我想修复这些部分,但我不想在当前功能分支中修复它们,因为它们只是相关,如果有的话。

因此我做了以下事情:

  1. git add -A
  2. git commit -m "WIP。很快回来..."
  3. git checkout master
  4. git pull origin master
  5. git checkout -b quickfix-something
  6. ...改进代码...
  7. git commit -m "修复这个那个"
  8. git push my_origin quickfix-something
  9. hub pull-request -b origin:master -h my_origin:quickfix-something(这只是 GitHub 特定的 PR 开放)
  10. git checkout my_feature_branch
  11. git reset --soft HEAD~1
  12. ...继续在我的功能分支上工作...

但这需要很长时间!

相反,我想做这样的事情:

  1. git 来回 --start "my_new_branch"
  2. ...改进代码...
  3. git back-and-forth --finish -m "Fix this and that"
  4. ...继续在我的功能分支上工作...

我知道 git-flow 会做类似的事情,但我不想承担它的所有负担,除非有办法按照我想要的方式对其进行最低限度的设置。另外,如果我没记错的话,它不支持在 GitHub 上自动打开 PR。

在我编写自己的脚本来做同样的事情之前,这是我的问题:

  1. 是否有任何现有的 git 工具可以满足我的需求?
  2. 除非 1,是否有任何其他方法可以做我想做的事,而且步骤更少?

最佳答案

编写自己的脚本似乎是 #1 的最佳选择。您可以将命令组组合为简单的别名,以避免编写完整的脚本。

就 #2 而言,您可以通过使用 git stash 而不是 check out master 来消除一些步骤。

  1. git 存储
  2. git fetch
  3. git checkout -b quickfix-something origin/master
  4. ...改进代码...
  5. git commit -am "修复一些东西"
  6. git push my_origin quickfix-something
  7. 集线器 pull 请求 ...
  8. git checkout my_feature_branch
  9. git stash pop
  10. ...继续在我的功能分支上工作...

您的原始问题有 10 个命令。这将它从 2 个命令缩短为 8 个。


下面是我在尝试消除命令时想到的另一个选项。它不会节省任何打字,而且与上述解决方案相比,肯定会使生活变得更加复杂。请不要使用它。

Alternative insanity: rebase 方法。 除非您喜欢混合使用 LSD 和电锯,否则不要将其用于真实用途。这可能会在 rebase 上发生冲突,具体取决于与您的“改进”相关的上游更改。

  1. git 存储
  2. ...改进代码...是的,在您的功能分支上进行
  3. git commit -am "修复一些我在别处需要的东西"
  4. git fetch
  5. git rebase HEAD^ --onto origin/master
  6. git push my_origin my_feature_branch:quickfix-something
  7. 集线器 pull 请求 ...
  8. git reset --hard ORIG_HEAD^
  9. git stash pop
  10. ...继续在功能分支上工作...

关于Git 分支 : There and Back Again,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24862317/

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