我有两个分支-开发和掌握。 我一直在dev分支上工作,而master完全是不必要的代码,与dev分支完全不同。
如何将所有内容从开发者转移到开发者手中,使旧的开发者一无所有?
答案 0 :(得分:2)
您可以删除master分支。然后从dev分支创建一个新的master。
这是实现此目标的方法:
git checkout develop
git branch -D master
git checkout -b master
如果要将新的master分支推送到远程,则可以使用强制推送选项,它将覆盖远程的旧master。
git push origin -f master
答案 1 :(得分:2)
共有三个选项:
首先-如果您想销毁master
的所有历史痕迹,则可以将master
设置为dev
,类似于@Krantisinh和@ashishmohite的答案:< / p>
git branch -f master dev
如果其他人已经建立在master
的旧状态下,他们就会被搞砸。因此,在这样做之前先与他们交谈。
第二个-您想保留母版的历史记录但要交换内容:然后您要像这样进行特殊的合并:
git checkout master
# git merge -s theirs simulation
git merge -s ours dev
git branch temp_THEIRS
git reset --hard dev
git reset --soft temp_THEIRS
git commit --amend
git branch -D temp_THEIRS
这会将dev
合并到master
中,但从dev
中获取所有所有内容-没有冲突-没有问题。这来自https://stackoverflow.com/a/56368650/947357。
第三项(根据评论),如果您想抛弃master
(如“第一”),但又想开始master
而没有任何历史记录:
git checkout --orphan new-master
git commit -m "start from scratch again"
git branch --force -M new-master master
此后dev
和master
不共享任何历史记录。
答案 2 :(得分:0)
如果未锁定主分支,则可以删除它 然后从开发
中检出master分支git checkout dev
git branch -D master
git checkout -b master