我对git还很陌生,我有一个分支叫做“feature”,里面有多个文件被修改、创建和删除。我正在处理的任务最终不仅需要创建新文件,还需要重构现有的文件。最后我有了与新特性相关的文件“a,b,c”和“d,e,f”。我想把所有对这些文件的修改都保存在我的“feature”分支中,但是也要把d,e,f文件的修改拆分到不同的分支,并为这些修改创建不同的拉取请求。我还没有提交。
我尝试的是将“feature”分支 checkout 到“d”分支并提交和推送对“d file”的更改,然后 checkout 到“e”并提交和推送“e file”等等。它对于将“d”,“e”,“f”拆分到单独的分支效果很好,但最后我离开时使用了“a,b,c”未提交的更改,并且 checkout 回“feature”分支,只留下这些更改,而不是所有初始更改。
我知道这不是实现我想要的东西的方法。我应该先一个接一个地提交“特性”分支中的所有更改,然后 checkout 到新分支“d,e,f”并从“特性分支”中选择提交我想要的。
最终结果:
功能分支- a、b、c、d、e、f变更(提交?)
D分支- d变更
E分支- e变更
F分支- f变更
正确的方法是什么?我可以把修改隐藏起来,然后应用到d,e,f分支中,只留下需要的修改,丢弃其他的吗?
1条答案
按热度按时间ijnw1ujt1#
据我所知,您有
feature
分支和git log
如下:feature
分支中的git status
到:如果您使用
git stash
命令,您修改的文件添加到存放区,现在git status
在feature
分支为:在
feature
分支中创建d
、e
和f
分支如果您在任何分支上使用
git stash apply
命令,更改将从隐藏区域移除,并且在切换分支时移动。你在相关的分支提交这些更改,你会达到目标.
最后,
git log
:功能分支
d分支
e分支
f分支