さて、私は明らかに、この権利を得るために私が何をしなければならないかを理解するのに少し問題があります。ローカルブランチをリベースした後にリモートマスターに変更を加える
私はスカッシュしたい遠隔マスターに多くのコミットをプッシュしました。これを行うために、git rebase -i HEAD~20
セッションを開始し、squash
をスカッシュにするために使用しました。いくつかは1つにコミットされます。
私が解決できたいくつかの競合の後、私はローカルブランチの「短縮版」が残っていましたが、この時点で私はリモートブランチにこれを取得する方法がわかりません。
私がgit status
を実行すると、ローカルブランチとマスターブランチが1と11のコミットが異なることがわかります。
この時点でgit pull
を実行すると、rebase
アクションが元に戻ってきて、私が始めたところに戻ります。
a b
o-->o-->o-->o-->o-->o
\ /
o-->o-->o
a b
o-->o
だけローカルへ:
だから基本的に私のようなものから行ってきました。私はローカルをプッシュすると、リモートでコミットを押しつぶすことはできますか?
stash - > squash? – kaitoy
@kaitoy whops、申し訳ありません。 D – displayname
通常、通常のgitワークフローでは、リモートで履歴を書き換えることはできません(ここで行っていることは、履歴を書き換えて、マスターブランチから11個のコミットを取り除くことです)。 リモートブランチを扱っている唯一の人は、そのための権限があれば、 'git push -f'を実行できます。ただし、同じリモートブランチに基づいて作業している他のユーザーがいる場合は、これを実行しないでください。 – Alderath