2011-07-29 17 views
3

ユースケース:同じリポジトリA、B、B2の3つのgitクローン。レポスAとBは正常、B2は裸( - ベア)です。すべてが自分の管理下にあります。つまり、ユーザーは1人だけです。Git rebaseを強制する

私は仕事をしています(いくつかのgitコミット)、そしてgit push B2。

  • オンサイトA、git pull B2。
  • オンサイトでは、git rebase -i xx..HEADを実行すると、コミットやクリーンな履歴が表示されます(素晴らしいコマンド)。
  • Q:結果をサイトBに伝えるにはどうすればよいですか?私にできること

  • Gitのプッシュ--forceのB2

しかし、これはかなり右ではありません。サイトBの作業ディレクトリは、git pull B2の後に奇妙な履歴があります。

私は--forceを使用しないために何らかの方法が必要です。 --hard XX をリセットB2で

(裸のレポ)

  • のgit:私はその後、 B2にxx..HEADを捨てるおそらく、Aから正常にプッシュしたいのですが

    これで十分かわかりません。私はサイトAからの再クローニング(B2の削除、git init --bare、Aからのプッシュ)によってそれを行うことができますが、それは過度のようです。 How to push/pull Git rebase投稿は関連しているようですが、私は「これをしないでください」以外の答えを期待しています。

    ボトムラインでは、B2のコミットを真に完全にスローすると、Aからのリベースされた履歴は新しいコミットとして受け入れられますか?

答えて

0

--forceを使用しないためには何らかの方法が必要です。私はB2にxx..HEADを捨て、あのA.

から通常

を押した後、 B2にxx..HEADを捨てたいのですが、その後、Aから正常にプッシュすることは、かなりの正確な定義であります--force。 Bに引っ張るときに--forceをもう一度使用してください。あなたが引き戻す前にxx以前にコミットするためにBの背部をリベースする限り、大丈夫です。

2
git reset --hard 

スローアウェイは、投げ捨てたい意味でコミットします。

関連する問題