血泪史:
今天写项目需求,一半都写完了,发现自己的分支还在master上,那么已经写了代码后发现搞错分支了应该怎么办?
未提交的情况下
git add . (暂存在此分支上的改动)
git stash (把暂存的改动提交到git的暂存栈)
git checkout 本该提交代码的分支 (要是拉取新分支:git checkout -b 本该提交代码的分支)
git stash pop (将暂存栈中的代码放出来)
这样你的改动就跑到本该提交代码的分支上啦~
已提交的情况下
git checkout 不该提交代码提交了代码的分支
git reset HEAD~1 (最近一次提交放回暂存区, 并取消此次提交)
git stash (把暂存的文件提交到git的暂存栈)
git checkout 该提交代码的分支
git stash pop (将暂存栈中的代码放出来)
等代码提交到了正确的分支后,再次切到刚刚错的分支:
git push origin 错误的分支 -f (把不该上去的文件回退掉)
通过此番血泪史,以后进行代码改动的时候,一定要看清分支!!!