2016-10-06 7 views
0

は、ここで、このページで受け入れ答えを試してみました:How to merge the current branch into another branchマスターブランチの現在の状態を別のブランチにコピーする方法は?

しかし、問題はマスターが必要な変更を持っていない、ある、と私はブランチを作成した:私がしようとするとgit checkout -b mybranch

git push self mybranch:master

それは私にすべてが最新であると伝えます。しかし、私はそれを知っています。私は、ブランチを別のブランチにコピーして、マスターブランチの現在の状態を保持したいだけです。そして、それは再び触れることはありません。

私は将来、マスターブランチから分岐します。この他のブランチは決して実際には触れられません。しかし、必要に応じて、そのブランチに切り替えていつでも戻すことができるようにアーカイブする必要があります。

新しいリポジトリを作成せずにマスターブランチをコピーするにはどうすればいいですか?

答えて

1

answer by Zoli Szaboに記載されているように、tagsを使用して、決して動かすべきではない履歴のイベントをマークする必要があります。タグを作成するには、そのタグの名前と、そのタグが指すコミットを入力します。コミットハッシュの代わりにブランチ名を指定すると、タグはこのブランチの現在のチップコミットを指し示します。

git tag mytag branch 
git tag mytag 123ab45ef 

しかし、あなたはあなたのブランチがマスターの現在の状態を反映したい場合は、オプションの一握りを持っている、あなたの質問に答えるために:ブランチを更新

  • フォース:git branch -f mybranch master、その後、ブランチをプッシュ
  • リモートリポジトリのブランチに必要な状態を押します:git push origin master:mybranch(強制更新が必要な場合は-f)。他の人に問題を引き起こす可能性があるので注意してください。ours戦略(-s ours)でブランチをマージして、望ましい状態で新しいコミットを作成してください。次に、リモートリポジトリにプッシュします。

ローカルリポジトリを更新したい場合は、ブランチをマージするか(正確に質問が分かっていれば早送りする必要があります)、ローカルプッシュを行います。

  • マージ:git checkout master; git merge mybranch
  • ローカルプッシュ:git push . mybranch:master

プッシュ早送りマージの逆の一種である(標的と宛先ブランチを切り替えます)。

あなたの選択:

+0

'git branch -f original:master'これは私に有効なブランチではない' original:master'ですが、元のブランチが存在します。 'git branch -a'はそこにオリジナルを表示します。 –

+0

@SolomonClosson:申し訳ありませんが、コロンはそこにあるはずではありませんでした。それはスペース文字だったはずです。 – knittl

+0

ありがとう、私はちょうどタグを使いました、うまくいけば私が欲しいことをするでしょう。 –

1

歴史の中で、特定のポイントをマークするためには、tags、ない「捨てられた」の枝を使用する必要があります。

+0

が合意しました。タグは、コミット・チェーンがアクティブな開発ではないことを表現します。 – Gregg

0

異なるコミットを指す2つのマスターブランチを持つことはできません。ブランチはコミット1つのみを指します。現時点でマスターブランチの保存場所を保存するには、その上にタグを作成するか、新しいブランチを作成します。あるブランチをMYSUBDIR/masterという名前で、別のブランチをMYOTHERSUB/masterという名前で保存することができます。

リモートmytranchと同じtipのリモート 'self'にブランチ 'MySave/master'を作成します。

もちろん、適切なアクセス許可があることを前提としています。

git fetch self self/MySave/master 

たアップデート「自己:最新のこれを行う取得するには、

git log --oneline --decorate -9 mybranch self/MySave/master 

「自己/ MySave /マスターのリモート追跡コピーである:あなたが両方のブランチの状態を見ることができます/ MySave/master '(ただし、あなたのローカルmybranchではなく、そのプル用)

関連する問題