git 删除远程某分支之后又创建了一个相同的分支

2019-01-11 16:38:53 +08:00
 Kcelone

问题描述:

当某天因为觉得自己的分支太乱收拾不过来了,可能就会想到删掉重建一个相同的分支一了百了,然而问题才刚刚开始。
你也许会发现,当你反复的 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 等),工作机遇常更,欢迎大家加入。

2078 次点击
所在节点    git
2 条回复
MinonHeart
2019-01-11 18:03:53 +08:00
git branch -d A
git checkout -b A [<start_point>]
git push -uf origin A
msg7086
2019-01-12 06:47:41 +08:00
问题的解决方案是搞懂 Git 的机制,然后让每一次操作都完成自己想要的效果。
管理 feature 分支本来就是使用 Git 的一项日常工作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/526116

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX