[解決済み] ブランチをマスターと同期・更新させる方法は?
質問
現在、gitに頭を悩ませています。以下のような場合、最適な解決策が思いつきません。
という2つのブランチがあります。 マスター という名前の モバイルデバイスサポート . mobiledevicesupport を継続的なブランチとして維持し、mobiledevicesupport が安定した時点で master ブランチにマージ/同期させたいと考えています。これは mobiledevicesupport の変更を master にマージするだけでなく、master の変更をすべて mobiledevicesupport に取り込み、そのブランチで作業を続け、機能を改善したり修正したりできるようにするものです。これは中央のリポジトリと複数の開発者のもとで動作する必要があります。
他の人が使っている似たようなワークフローの例や、このアイデアが愚かで他の選択肢を検討すべきかを教えてください。今のところ、ワークフローは健全に見えますが、どうすればこの方法でgitを動作させることができるのかわかりません。
ありがとうございます、すべてのヘルプは非常に感謝しています。
更新1: master を mobiledevicesupport に、mobiledevice support を master にマージした場合、両方のブランチ間でコミットが複製されますか? それとも git は賢いので、私が A ブランチから B ブランチに最新の変更を取り込み、B ブランチにマージコミット C を追加し、B ブランチから A ブランチに最新の変更を取り込み、A ブランチにマージコミット D を追加したと判断してくれるのでしょうか?
画像を貼ろうと思ったのですが、評判が悪いので、以下のイラストでお願いします。2つのブランチが継続的に稼働し、頻繁に両方向にマージが行われる。重要なのは、gitがコミットをどのように扱うか、マージ時にどちらかのブランチをもう一方のブランチからのコミットでいっぱいにするのか、それともそのままなのか、ということです。以前rebaseを使ったことがありますが、ブランチを終了させてすべてのコミットをmasterに入れるようです。これまで助けていただきありがとうございました。
master
A--B--C-----H--I--J--M--N
\ / \
mobile \ / \
D--E--F--G--------K--L
解決方法は?
はい、そうしてください
git checkout master
git pull
git checkout mobiledevicesupport
git merge master
mobiledevicesupport を master と同期させるため。
で、mobiledevicesupport を master に入れる準備ができたら、まず上記のように master でマージして、それから......。
git checkout master
git merge mobiledevicesupport
git push origin master
で終わりです。
ここで前提として、mobilexxx はトピックブランチで、まだメインブランチに移行する準備が整っていない作業を行っています。ですから、mobiledevicesupportが良い状態になったときにだけmasterにマージしてください。
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] git rebase の取り消し
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git で現在のブランチ名を取得するには?
-
[解決済み] Gitブランチをmasterにマージする最も良い(そして最も安全な)方法は何ですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】fatal: 有効なオブジェクト名ではない: 'master'
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み】「オリジン/マスターへのプッシュが拒否されました」というエラーが常に発生するのはなぜですか?
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
gitアップロードの共通エラー処理
-
[解決済み】gitの「not something we can merge」エラーの解決方法
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] GitHubです。パーミッションが拒否されました (公開鍵)。
-
[解決済み] git merge` で `--no-ff` フラグはどのような効果がありますか?