タグ付けされた質問 「git-merge」

git-mergeは、現在チェックアウトされているブランチにコミットを組み込むことにより、別のブランチからの変更を統合するgitコマンドです。

15
開発ブランチをマスターとマージする
つまり、GitHubリポジトリに2つのブランチがmasterありdevelopmentます。示されているように、開発ブランチですべての開発を行っています。 git branch development git add * git commit -m "My initial commit message" git push -u origin development 次に、developmentブランチのすべての変更をにマージしたいと思いmasterます。私の現在のアプローチは: git checkout master git merge development git push -u origin master 私が従う手順が正しいかどうか教えてください。
764 git  git-merge 


17
Gitで競合するファイルを一覧表示する最も簡単な方法は何ですか?
競合しているものの単純なリストが必要ですするファイルのです。 より簡単なものはありますか: git ls-files -u | cut -f 2 | sort -u または: git ls-files -u | awk '{print $4}' | sort | uniq 私はそれのaliasために便利なものを設定することができたと思いますが、プロがそれをどのように行うのかと思っていました。シェルループを作成するために使用します。たとえば、競合を自動解決するために使用しmergetool.cmdます。

13
Gitでマスターからブランチに変更を取得する
私のリポジトリには、というブランチがあります aq私が作業しているあります。 その後、で新しい作業とバグをコミットしましたmaster。 これらのコミットをaqブランチに入れるための最良の方法は何ですか?から別の新しいブランチを作成し、masterそれをaq?

2
デフォルトでgitが早送りマージを実行するのはなぜですか?
水銀から来て、私は機能を整理するために枝を使います。もちろん、このワークフローも私の歴史の中で見たいです。 私はgitを使用して新しいプロジェクトを開始し、最初の機能を完成させました。機能をマージするとき、gitが早送りを使用していることに気付きました。つまり、可能であれば変更をマスターブランチに直接適用し、ブランチを忘れます。 ですから、将来を考えると、このプロジェクトに取り組んでいるのは私だけです。gitのデフォルトのアプローチ(早送りマージ)を使用すると、私の履歴の結果、1つの巨大なマスターブランチができます。私がすべての機能に個別のブランチを使用したことは誰にもわかりません。結局、その巨大なマスターブランチしか持たないからです。それは専門家ではないように見えませんか? この推論では、私は早送りマージを望んでおらず、それがデフォルトである理由を理解できません。何がそんなにいいの?

8
一連のコミットを選択して別のブランチにマージする方法は?
次のリポジトリレイアウトがあります。 マスターブランチ(本番) 統合 ワーキング 私が達成したいのは、作業中のブランチからさまざまなコミットを選択し、それを統合ブランチにマージすることです。私はgitにかなり慣れていないので、リポジトリをめちゃくちゃにせずに、これを正確に行う方法(マージではなく、1つの操作でコミット範囲を簡単に選択する方法)を理解できません。これについてのポインタや考えはありますか?ありがとう!

15
チェックアウトを使用せずにGitブランチをマージ、更新、プルする
私は、AとBの2つのブランチを持つプロジェクトで作業します。通常はブランチAで作業し、ブランチBからのものをマージします。マージでは、通常、次のようにします。 git merge origin/branchB ただし、最初にブランチAとマージせずにブランチをチェックアウトすることがあるため、ブランチBのローカルコピーも保持したいと考えています。これを行うには、次のようにします。 git checkout branchB git pull git checkout branchA 上記を1つのコマンドで実行する方法はありますか?ブランチを前後に切り替える必要はありませんか?git update-refそのために使用する必要がありますか?どうやって?

11
特に更新されたアップストリームをトピックブランチにマージする場合は特に、このマージが必要な理由を説明するコミットメッセージを入力してください
私はGitを使用しています。私はリモートリポジトリからプルし、エラーメッセージが表示されました。 特に更新されたアップストリームをトピックブランチにマージする場合は特に、このマージが必要な理由を説明するコミットメッセージを入力してください。 メッセージを入力して押しますEnterが、何も起こりません。 メッセージの入力が完了したことをGit /ターミナルに伝えるにはどうすればよいですか? OS Xでターミナルを使用しています。


15
既存のGitリポジトリを別のGitリポジトリにインポートする方法は?
XXXというフォルダーにGitリポジトリーがあり、YYYという2番目のGitリポジトリーがあります。 私は、インポートしたいXXXのにリポジトリをYYYの名前のサブディレクトリとしてリポジトリZZZと、すべての追加XXXへの変更履歴をYYY。 以前のフォルダ構造: ├── XXX │ ├── .git │ └── (project files) └── YYY ├── .git └── (project files) 後のフォルダー構造: YYY ├── .git <-- This now contains the change history from XXX ├── ZZZ <-- This was originally XXX │ └── (project files) └── (project files) これは可能ですか、それともサブモジュールを使用する必要がありますか?
476 git  merge  git-merge 

4
異なるgitマージ戦略をいつ使用しますか?
git-mergeのmanページから、いくつかのマージ戦略を使用できます。 resolve -3ウェイマージアルゴリズムを使用して解決できるのは、2つのヘッド(つまり、現在のブランチとプルした別のブランチ)だけです。それは交差交差のあいまいさを注意深く検出することを試み、一般に安全かつ高速であると考えられています。 再帰的 -これは、3方向マージアルゴリズムを使用して2つのヘッドのみを解決できます。3ウェイマージに使用できる共通の祖先が複数ある場合は、共通の祖先のマージされたツリーを作成し、それを3ウェイマージの参照ツリーとして使用します。これにより、Linux 2.6カーネル開発履歴から取得された実際のマージコミットに対して行われたテストで、マージのミスを引き起こさずにマージの競合が減少すると報告されています。さらに、名前の変更を伴うマージを検出して処理できます。これは、1つのブランチをプルまたはマージするときのデフォルトのマージ戦略です。 タコ -これは2頭以上のケースを解決しますが、手動での解決が必要な複雑なマージを拒否します。これは主に、トピックのブランチヘッドをまとめるために使用することを目的としています。これは、複数のブランチをプルまたはマージするときのデフォルトのマージ戦略です。 私たち -これは任意の数のヘッドを解決しますが、マージの結果は常に現在のブランチヘッドになります。これは、サイドブランチの古い開発履歴に取って代わるために使用されることを意図しています。 サブツリー -これは修正された再帰戦略です。ツリーAとBをマージするとき、BがAのサブツリーに対応する場合、Bは、同じレベルでツリーを読み取るのではなく、最初にAのツリー構造に一致するように調整されます。この調整は、共通の祖先ツリーに対しても行われます。 デフォルトとは異なるものをいつ指定する必要がありますか?それぞれに最適なシナリオは何ですか?
430 git  merge  git-merge 

11
gitでマージをプレビューするにはどうすればよいですか?
gitブランチ(メインラインなど)があり、別の開発ブランチにマージしたい。それとも私ですか? このブランチを本当にマージするかどうかを決定するために、マージが何を行うかをプレビューしたいのですが。できれば、適用されているコミットのリストを見ることができます。 これまでのところ、私が思いつくことができる最高のものはmerge --no-ff --no-commit、そしてそれからdiff HEADです。
397 git  git-merge 

3
特定のコミットまでマージする
git newbranchのmasterブランチから名前を付けた新しいブランチを作成しました。今、私はいくつかの作業を行ったので、にマージnewbranchしたいと思いmasterます。ただし、私はいくつかの追加の変更を行ったので、最後の4番目のコミットまでnewbranchマージnewbranchしたいと思いmasterます。 私は使用しましたcherry-pickが、正しいオプションを使用するためのメッセージが表示されます: git checkout master git cherry-pick ^^^^HEAD newbranch merge代わりにgitを使用できますか? git merge newbranch <commitid>

15
次の追跡されていない作業ツリーファイルはマージによって上書きされますが、私は気にしません
私のブランチでは、.gitignoreにいくつかのファイルがありました 別のブランチでは、これらのファイルは違います。 私は別のブランチを私のものにマージしたいのですが、それらのファイルが無視されなくなったかどうかは気にしません。 残念ながら私はこれを手に入れました: 次の追跡されていない作業ツリーファイルは、マージによって上書きされます これらのファイルを自分で見つけたり、移動したり、削除したりせずに、プルコマンドを変更してこれらのファイルを上書きするにはどうすればよいですか?

10
マージの競合を解決した後、どうやってマージを終了しますか?
Git Community Book の基本的なブランチとマージのセクションを読みました。 したがって、私はそれに従って、1つのブランチを作成しますexperimental。 その後私は: 試験的なブランチに切り替えます(git checkout試験的) たくさんの変更を加える コミット(git commit -a) マスターブランチに切り替える(git checkout master) 変更を加えてコミットします 実験に切り替えます(git checkout experimental) マージマスターを試験運用版に変更(git merge master) いくつかの競合がありますが、解決した後、「git add myfile」を実行しました そして今、私は立ち往生しています、私はマスターに戻ることができません 私がする時 $ git checkout master error: Entry 'res/layout/my_item.xml' would be overwritten by merge. Cannot merge. そして私はしました: $ git rebase --abort 進行中のリベースはありませんか? そして私はしました: $ git …
282 git  git-merge 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.