2012-09-05 6 views
7

私たちのGitリポジトリでは、しばらくの間、ブランチmasterで作業しました。その後、私たちの多くはcoolfeatureブランチで作業を始めましたが、数人の開発者はmasterに続きました。Gitの不連続性をどのように処理するのですか?

masterで働いていた開発者は、興味を失ってしまいました。私たちがフォークして以来開発してきたことはあまり重要ではありません。しかし、メインの開発ブランチをmasterと呼びたいと思います。概念的には、このようなツリーが基本的には好きです:

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

これを達成する最も簡単な方法は何ですか?私たちは本当にクールフィーチャを試してみたいと思っていません.Xとマークされたコミットが全く無意味であることに満足しています。

+0

効果的にmaこの方法で機能を実装するには、これを可能にするワークフローを使用することが賢明でしょう。機能ごとの支店があなたが目にするべきものです。 Googleの「ブランチ・パー・フィーチャー」のようなワークフローを管理する方法については、詳細な記事を読んでください。 –

答えて

3

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

git push -f origin master 

他の人がコードをフェッチし、

git fetch origin master 
git reset --hard origin/master 
+0

「coolfeature」の名前を「master」に変更する方法は? 'git branch -d master; git branch -m coolfeature master '? –

+1

これは 'push'操作によって「名前変更」されます。起点リポジトリのブランチ" master "が指しているコミットは、' push'が行われたrepoのHEADのものになるように設定されています。 – fork0

2

私はこれを行うと強制的にプッシュをやって回避する方法をリセットを実行します。

  1. コミットX用のタグを作成しますあなたが気にしないこと。
  2. クールフィーチャを分岐してからマスターブランチ上のすべてのコミットのうちgit revertを実行します。これは、リポジトリをフォークしたときの状態に戻しますが、トン彼らはメモを取得していないので、もし誰のリポジトリが壊れます、歴史を書き換える。
  3. マスターにcoolfeatureをマージします。

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

関連する問題