V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
Kcelone
V2EX  ›  git

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

  •  
  •   Kcelone · 2019-01-11 16:38:53 +08:00 · 2084 次点击
    这是一个创建于 2147 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题描述:

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

    2 条回复    2019-01-12 06:47:41 +08:00
    MinonHeart
        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
    msg7086
        2
    msg7086  
       2019-01-12 06:47:41 +08:00
    问题的解决方案是搞懂 Git 的机制,然后让每一次操作都完成自己想要的效果。
    管理 feature 分支本来就是使用 Git 的一项日常工作。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:19 · PVG 15:19 · LAX 23:19 · JFK 02:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.