情景说明: 由于同时做几个不同的task , 以及一些其他原因, 在做一个新的task时, 忘记切换分支, 一直等到做完提交了, 才发现push 的时候不是在远端 new 了一个新的branch(由于我修改的task没有文件交集,亦没有用-f ), 于是, 有了下面的内容.
1. 回滚提交 reset
首先我想到的是 reset 命令将我最近一次提交放回暂存区, 并取消此次提交.
git reset HEAD~1
2. 将被跟踪的内容stash, 新建的文件不用担心, 依旧是未跟踪文件.
git stash
3. 创建并切换到新分支
git checkout -t origin/develop -b issue-999
5. 将stash的内容pop出来
git stash pop
6. 提交和推送了
git add 多个文件名用空字符隔开
git commit -m "提交信息"
git push origin issue-999 [第一次不必强制提交]
7. 但原来的分支998依旧是多了一次提交, 这时候需要切回去, 提交一次
git checkout issue-998
git log [看日志, 由于reset的缘故, 本地的提交已经不见了, 但远端依旧存在]
git push origin issue-998 -f
好了, 998 还是那个998了