问题描述:
当某天因为觉得自己的分支太乱收拾不过来了,可能就会想到删掉重建一个相同的分支一了百了,然而问题才刚刚开始。
你也许会发现,当你反复的 merge,pull 主分支之后, 从自己分支上提交到主分支的代码中还是会有一些莫名其妙的代码,也许是几个月前你曾提交过的,但是就是找不到原因,无论你如何的重复
问题分析:
原因就是你曾经删过该分支,导致之前的 A 分支(姑且称为 A`分支)和当前的 A 分支有断层,两者已经不是同一个了,所以向主分支提交代码的时候,会从远程的 origin/A`拉曾经的代码以及 A 分支上最新的代码合入到主分支上,会发现有一大片的 merge 冲突。
问题解决:
1.删除远程 origin/A 分支 git push origin --delete A
2.删除本地 A 分支 :git branch -d A
3.创建本地 B 分支:git checkout -b B
4.创建远程 B 分支:git push origin B:B
5.将本地 B 分支改为 A 分支:git branch -m B A
6.将远程的 B 分支改为 A 分支:git push origin A:A
7.绑定本地 A 分支指向远程 A 分支:git branch --set-upstream-to= A origin/A (如果出现问题,执行 git remote update origin --prune 进行刷新)
8.此时可以执行 git status,再根据提示进行命令输入也可。
自此,A 分支又可以为君所用了。
有不理解或着说错的地方欢迎斧正。欢迎加群( python 后端): 902788038, 这里大家都尽量做到问题有始有终,因为来这里的都是想要继续学习,进步的,另外群内也有一些猎头 HR (方向包括游戏,金融等, 常招 C/C++,C#,python, java 等),工作机遇常更,欢迎大家加入。
1
MinonHeart 2019-01-11 18:03:53 +08:00
git branch -d A
git checkout -b A [<start_point>] git push -uf origin A |
2
msg7086 2019-01-12 06:47:41 +08:00
问题的解决方案是搞懂 Git 的机制,然后让每一次操作都完成自己想要的效果。
管理 feature 分支本来就是使用 Git 的一项日常工作。 |