7

masterGitリポジトリで、しばらくの間ブランチに取り組んだとしましょう。その後、私たちのほとんどはブランチに取り組み始めましたがcoolfeature、数人の開発者は続けましたmaster

さて、取り組んだ開発者はmaster興味を失い、私たちがフォークしてから何を開発したかはそれほど重要ではありません。ただし、メインの開発ブランチをmaster再度呼び出す必要があります。概念的には、基本的にツリーは次のようになります。

*--master--X      ----master
 \               /
  --coolfeature--

これを達成するための最も簡単な方法は何ですか?私たちは本当にcoolfeatureをマージしようとは思わず、Xとマークされたコミットが完全に無意味であることを嬉しく思います。

4

2 に答える 2

3

新しいマスターブランチで強制プッシュを実行します。

git push -f origin master

他の人がコードをフェッチし、リセットを実行します

git fetch origin master
git reset --hard origin/master
于 2012-09-05T06:18:51.117 に答える
2

私がこれを行い、強制的なプッシュを回避する方法:

  1. 気にしないコミットXのタグを作成します。(理由はすぐにわかります。
  2. git revertcoolfeatureから分岐したため、マスターブランチですべてのコミットのいずれかを実行します。これにより、リポジトリはフォークしたときの状態に戻りますが、履歴は書き換えられないため、メモを取得しなくても誰のリポジトリも壊れることはありません。
  3. coolfeatureをマスターにマージします。

Xのタグ付けに関するポイントは、すべての変更を行う前にポイントをマークすることです。タグは安価であり、ある時点で、コミットを取り消してそのような変更を加えた時点を知りたいと思うかもしれません。

于 2012-09-05T09:08:02.197 に答える