将当前Git分支重置为主分支

7

我有develop和master两个分支,我的develop分支现在很混乱,我想重置它并将其作为我的master的副本。我不确定将master合并到develop是否会使它们完全相同。尝试合并后,我遇到了许多冲突,我使用以下方法解决了这些冲突:

git merge origin/master
git checkout 

这是否足够让develop分支成为master的完全副本?

如果你的dev分支很“混乱”,而且你想要“重置”它,为什么还要将其合并回master分支呢? - Thomas Stringer
3个回答

10

从字面上看,你在自己的问题中已经有了答案:

git checkout dev
git reset --hard master

git reset有三种可能性:

  • soft:将分支移动到您决定的点,但不会触及索引区和工作目录。
  • mixed:(默认)与soft相同,还会更改暂存区。不会更改您的工作目录。
  • hard:与mixed相同,还会更改工作目录。

为了更好地理解:git reset


我不知道这是 Git 的新功能还是 VS Code 的问题,但我执行了 git checkout master(实际上是 main 分支,但同样的操作),然后文件回到了之前的状态。 - PhantomSpooks

4

仅合并不足以解决问题,因为在合并后,develop分支中将包含来自develop和master分支的更改。

如果您想要摆脱当前的develop分支并创建一个新的分支,请执行以下操作:

# Check out the master branch
git checkout master

# Delete the current develop branch
git branch -D develop

# Create a new develop branch
git checkout -b develop

只有在你确信不关心当前的 develop 分支时才可以这样做!

如果你有远程的 develop 分支副本,在推送新分支时需要小心:

  • 要么先删除远程分支(在推送新分支之前): git push origin :develop,或者
  • 使用 --force 选项推送

这两种方法都会改变以前拉取过当前 develop 分支的其他人的历史记录。


0

这并不是被要求的,我希望它不会超出范围。几年后,人们也应该检查一些辅助工具,而不仅仅是git命令。

如果已安装lazygit,请在git存储库文件夹中的命令行中键入lazygit。通过按下空格键来检出您想要重置的非主分支,当非主分支在“本地分支”中标记时。 使用箭头键向下滚动并标记“master”分支。按x键打开菜单,然后在标记为g的位置上按空格键(或者如果您已经熟记此操作,则无需打开菜单,直接按g即可)。

enter image description here

选择重置模式。任何模式都可以通过reflog恢复。

enter image description here

使用箭头键向下移动两个选项,并选择--hard


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接