从master分支中删除所有内容

时间:2019-05-30 08:54:46

标签: git gitlab

我有两个分支-开发和掌握。 我一直在dev分支上工作,而master完全是不必要的代码,与dev分支完全不同。

如何将所有内容从开发者转移到开发者手中,使旧的开发者一无所有?

3 个答案:

答案 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

此后devmaster不共享任何历史记录。

答案 2 :(得分:0)

如果未锁定主分支,则可以删除它 然后从开发

中检出master分支
git checkout dev
git branch -D master
git checkout -b master