问题描述:
当某天因为觉得自己的分支太乱收拾不过来了,可能就会想到删掉重建一个相同的分支一了百了,然而问题才刚刚开始。
你也许会发现,当你反复的 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 等),工作机遇常更,欢迎大家加入。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.