3

假设您维护 2 个分支,dev并且release.

除了纪律之外,您如何强迫自己不进行更改release和结帐dev

Q1:如果您忘记这样做并在 中进行了更改release,有没有办法将它们提交给dev并中止release

Q2:人们有没有什么常用的技巧来避免在分支中进行大量不是为它设计的更改?

4

3 回答 3

3

Q1:是的,这很简单。如果你意识到你提交了错误的分支:

git checkout dev
git cherry-pick release # you may need to cherry-pick several commits
git checkout release && git reset --hard HEAD^ # or reset to wherever you want

Q2:我严重依赖 git-completion:

https://github.com/git/git/blob/master/contrib/completion/git-completion.bash

于 2012-08-01T22:58:13.107 回答
2

这并不像您正在寻找的那样复杂的答案,但是将您当前的 git 分支放在您的提示符中可以让您获得很大的成功。你可以在那里找到很多食谱,但是这个看起来很合理,有一些花里胡哨的东西。

你也可以看看我是怎么做的。

于 2012-08-01T22:54:12.393 回答
1

我在我的 shell 中添加了一个小脚本,它总是向我显示我在哪个分支上。我使用oh-my-zsh,其中大多数主题都包含此功能,但也有一些较轻的选项,例如此处描述的选项。

这样我就可以知道我在哪个分支上工作并且通常不会搞砸。

如果您已经提交到分支,您可以使用git rebaseandgit cherry-pick重写历史并将它们放在其他分支上

于 2012-08-01T22:56:04.513 回答