Git 中使开发分支与主分支相同

本文讨论重置开发分支,使其与主分支相同。 假设您已经克隆了一个 Git 存储库并在主分支之外创建了一个开发分支。

代码一顿乱敲之后,您意识到您的分支很乱,想将其重置回与 master 分支匹配。 你怎么看这个?


使开发分支与主分支相同

我们可以使用两种方法将开发分支重置为 master。 最简单和最干净的是重新创建指针。

要重新创建开发分支的指针,请切换到主分支并运行以下命令。

$ git branch -f development master

这将重置开发分支的提交历史以匹配主分支的提交历史。

另一种方法是使用 git reset 命令。 首先,切换到开发分支并运行下面的命令。

$ git reset --hard master

此命令与 git branch -f 命令具有相同的效果。 但是,这两个命令都会消除开发分支中不存在于主分支中的更改。

如果您不想消除这些更改,则可以创建一个反映 master 分支当前状态的提交。 为此,请按照下列步骤操作:

首先,使用 git checkout development 命令切换到开发分支。 在不创建commit的情况下将master分支合并到develop分支,如下。

$ git merge master --no-commit

此命令将合并更改但在提交部分之前停止合并。 使用下面的命令,您可以从索引中检查 master 分支的更改。

$ git checkout --theirs master .

不要忘记包括 . 在命令的末尾。 剩下的就是提交更改。

$ git commit -m"Resetting development to master"

这将保留 master 分支中不存在的更改并镜像 master 分支的当前状态。

简而言之,您可以通过重新创建指针或借助 git reset --hard 命令将任何分支重置为 master。 这两种方式都会消除主分支中不存在的更改。

如果您想保留这些更改,请使用我们讨论的最后一种方法。