git - 我不小心在 master 上工作,如何将我对分支重置 master 所做的所有更改转移到最后一次提交?
问题描述
我还没有提交我的更改,因为我意识到我正在处理 master 就像我即将提交一样。我想将所有未提交的更改移动到一个新分支上,然后将 master 重置为最后一次提交。我确信一定有办法做到这一点,但我不熟悉 git(每次我使用它时,我都会担心我会搞砸一些东西并毁掉应用程序)。如果有帮助,我会使用 sourcetree。
解决方案
如果您的更改尚未暂存或提交,并且您的本地master
分支已经是最新的,您可以简单地创建一个新分支。
git checkout -b newbranch
如果您需要先与上游 master 同步,您的提交可能会与上游更改发生冲突。首先,简单地尝试
git pull origin master
(或者upstream
不是origin
你正在使用的那个)。如果您没有收到任何警告,那么您master
现在是最新的。如果您确实收到警告,git
将拒绝拉取,并且您需要做出安排以协调原始/上游与您未提交的更改之间的差异。第一步,存储您的更改,然后继续;
git stash save -m "put a useful comment so you know what this is"
git pull origin master
git checkout -b newbranch
git stash pop
在您继续并提交之前,此时可能会有一些冲突需要解决。
虽然通常只创建一个新的本地分支并提交您拥有的内容会感觉更安全,然后切换回master
并查看需要做什么来解决与上游的任何冲突。
推荐阅读
- google-app-engine - 来自 JSON 的 gcloud auth activate-service-account 设置当前项目
- python - 如何在给定的python文件路径中返回错误行?
- angular - 如何避免在 Angular 中暴露内部组件
- c# - 如何关闭打开的视图,不管它是否是活动视图?(Revit 2017、2018、2019)
- javascript - 如何缩小嵌套属性
- excel - 给定两张数据表,我想在第三张表上显示差异
- laravel-5 - 如何在数组映射函数中使用碳计算年龄?
- javascript - 引导日历:清除日期会禁用日历
- c++ - 以下两个涉及自动返回类型的声明是否相同?如果是这样,为什么?
- python-3.x - Python电子邮件正文阅读获取编码数据