在我开始开发实验之前,我创建了一个新分支。我经常忘记(这不是问题),但现在我事先做了 从那以后,我更新了3个文件。
是否有可能 - 我确定是 - (快速)从我的(脏)工作目录中提交一些未经分级的,未提交的更改到旧的安全分支?
我唯一能想到的是切换分支(没有签出),将更改提交到1个文件并切换回来,但我不知道切换回脏分支时会发生什么变化(是他们还在那里还是因为承诺而“消失”了?)......
我确信GIT有一些美丽的东西,但GIT有这么多,我找不到完全相同的东西。
(我一直在使用this 'manual' for help,但我不确定那里有同样的东西。如果是(并且你愿意扫描那件事),请告诉我,所以我知道下次看起来更难。)
谢谢!现在我只需要保留一张纸,方便更改'以便稍后提交安全分支'。
答案 0 :(得分:7)
答案 1 :(得分:6)
所以你的情况是
x--x--x (safe)
\
<a,b,c> (3 private evolutions in exp branch)
你想去
x--x--x--a (a committed only in safe banch)
\
b,c (b and c commited in exp branch)
你可以:
git add a
git commit -m # in exp branch, gasp!
git stash save # save the rest of the exp work in progress
git checkout master
git merge exp # fast-forward merge
x--x--x--a (safe,exp)
\
[b,c] (stashed)
git branch -f exp HEAD~1 # reset branch exp to before 'a'
git checkout exp
git stash pop
git add -A
git commit -m "..."
x--x--x--a (a committed only in safe banch)
\
b,c (b and c commited in exp branch)
答案 2 :(得分:0)
由于GIT上的分支操作非常便宜,我只想使用以下工作流程:
cherrypick
无论你的“实验性”和“实验”提交的是什么刚刚在步骤1中创建的新分支。