我是使用 Git 的新手,一些事情或命令对我来说很清楚。我现在的问题在这里描述:
昨天我得到了最新版本的master. 我做了一些本地更改,最终超出预期。现在我想将此本地状态提交给另一个branch(名为"image_acquisition")。
所以我的问题总结如下:
我是“大师背后的 2 次提交”。我必须考虑什么才能不破坏任何东西?这一步有必要吗?
更重要的是:命令应该如何才能使分支上的所有内容都清理干净?
如果我做错了什么,我只是害怕丢失所有更改。
如果你还没有提交你的本地工作,那么我建议做一个git stash隐藏你当前工作目录和阶段的工作。然后,从中创建一个新分支master并应用您的存储。尝试这个:
# from master
git stash
git checkout -b your_feature
git stash apply
git commit -m 'completed a feature'
Run Code Online (Sandbox Code Playgroud)
这会让你在一个新的分支上your_feature,一个包含你所有工作的提交。从这一点开始,您将做什么取决于您的工作流程。典型的下一步是将您的分支推送到远程,并创建一个拉取请求:
git push origin your_feature
# then create pull request on GitHub, Bitbucket, etc.
Run Code Online (Sandbox Code Playgroud)
如果您已经已经取得的一个或更多的提交,那么情况就有点复杂。在这种情况下,您可能只提交本地工作,然后创建一个新分支:
# from master
git commit -m 'completed a feature'
git branch your_feature
Run Code Online (Sandbox Code Playgroud)
然后,您可以回滚master到提交之前。例如,如果您已经进行了三个提交,包括上面的一个,那么您可以尝试:
git reset --hard HEAD~3
Run Code Online (Sandbox Code Playgroud)
现在,你有一个包含三个提交的真正的功能分支,master应该在远程之后,而不应该在远程之前。
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |