假设您维护2个分支,dev
和release
。GIT,在右分支进行更改
其他然后纪律,你如何强迫自己不要在release
和结帐到dev
更改?
Q1:如果您忘记这样做,并在release
所做的更改,有没有办法将它们提交到dev
,而不是在release
中止?
Q2:是否有任何常见的技巧用于避免在分支中进行大量的改变而不是为此设计的?
假设您维护2个分支,dev
和release
。GIT,在右分支进行更改
其他然后纪律,你如何强迫自己不要在release
和结帐到dev
更改?
Q1:如果您忘记这样做,并在release
所做的更改,有没有办法将它们提交到dev
,而不是在release
中止?
Q2:是否有任何常见的技巧用于避免在分支中进行大量的改变而不是为此设计的?
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:我在很大程度上依赖于混帐完成:
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
这不像您正在寻找的复杂答案,但将您当前的git分支放到提示符中会让您获得很大一部分路径。你可以在那里找到很多的食谱,但this one看起来很合理,有一些花里胡哨的。
您还可以检出how I do it。
我已经在我的shell中添加了一个小脚本,它总是向我显示我在哪个分支上。我使用oh-my-zsh,其中大多数主题都包含此内容,但也有一些较轻的选项,如here。
这样我就可以知道我正在从事哪一个分支并且通常不会搞砸。
如果您已经将提交给分公司,可以使用git rebase
和git cherry-pick
改写历史,把它们放在其他部门
如何为例你知道你在哪个部门吗?你能分享一下剧本吗? – JAM 2012-08-01 23:17:40
在帖子中有一个链接...我会再次发布它在超级混蛋中:http://vvv.tobiassjosten.net/git/add-current-git-branch-to-your-bash-prompt – klaustopher 2012-08-02 13:09:54
请提供你怎么做 – JAM 2012-08-01 22:56:09