关于git:强制我的本地主人成为原点/主人

Force my local master to be origin/master

我让Master和Origin/Master站在一边,不再对该分支的变化感兴趣。

我按照这些指示让我当地的主人指向正确的地方使当前Git分支成为主分支

1
2
3
4
 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的状态

1
2
3
4
5
6
7
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)来反映我的master呢?任何源站/主站上的孤儿都可以被安全地丢弃。


使origin/mastermaster相同:

1
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完全相同:

1
2
git checkout master
git reset --hard origin/master