web-dev-qa-db-ja.com

ローカルマスターを強制的にOrigin / masterにする

マスターとOrigin /マスターを傍観者に捕らえて、そのブランチの変更に興味を持ちません。

これらの指示に従って、ローカルマスターが正しい場所を指すようにしました 現在のgitブランチをマスターブランチにします

 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で孤立したものはすべて安全に破棄できます。

30
Andiih

Origin/mastermasterと同じにするには:

git Push -f Origin master:master

パラメーターに関する議論:

  • -fforceフラグです。通常、ブランチへのプッシュが許可される前に、いくつかのチェックが適用されます。 -fフラグはすべてのチェックをオフにします。

  • Originは、プッシュするリモートの名前です(1つのリポジトリに複数のリモートがある場合があります)

  • 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
68
eckes