41

我让 master 和 origin/master 被困在场边,并且不再对该分支上的更改感兴趣。

我按照这些说明让我的本地 master 指向正确的地方 使当前的 git 分支成为 master 分支

 git checkout better_branch
 git merge --strategy=ours master    # keep the content of this branch, but record a merge
 git checkout master
 git merge better_branch             # fast-forward master up to the merge

除了 git status 之外,它工作得很好

C:\data\localprojects\Beko2011Azure [master]> git status

# On branch master
# Your branch and 'origin/master' have diverged,
# and have 395 and 2 different commits each, respectively.
#
nothing to commit, working directory clean

那么我现在如何说服origin/master(github)反映我的主人。任何在 origin/master 上孤立的东西都可以安全地丢弃。

4

2 回答 2

91

origin/master以下内容相同master

git push -f origin master:master

参数讨论:

  • -f旗。通常,在允许推送到分支之前会应用一些检查。该-f标志关闭所有检查。

  • origin是要推送的遥控器的名称(您可以在一个 repo 中有多个遥控器)

  • master:master意思是:将我的本地分支推master送到远程分支master。一般形式是localbranch:remotebranch。当您想删除远程分支时,知道这一点特别方便:在这种情况下,您将一个空的本地分支推送到远程,从而将其删除:git push origin :remote_branch_to_be_deleted

可以找到更详细的参数描述man git-push


相反的方向:如果您想丢弃所有更改master并希望它与以下内容完全相同origin/master

git checkout master
git reset --hard origin/master
于 2013-04-19T11:48:01.923 回答
0

如果git checkout -B master origin/master不适合您(当您这样做时,git pull您的本地master仍然停留在较旧的origin/master分支上),您可以尝试以下操作:

git remote prune origin

git pull

它应该重置您的本地master以跟踪最新的origin/master.

于 2020-09-09T04:42:30.083 回答