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

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


30
まだプッシュされていないGitマージを元に戻します
StackаэтотвопросестьответынаStack Overflowнарусском:Какотменитьпоследнийpush? 私のマスターブランチでは、git merge some-other-branchローカルで行いましたが、変更をオリジンマスターにプッシュしませんでした。マージするつもりはなかったので、元に戻したい。git statusマージ後を実行すると、次のメッセージが表示されました。 # On branch master # Your branch is ahead of 'origin/master' by 4 commits. 私が見つけたいくつかの指示に基づいて、私は走ってみました git revert HEAD -m 1 しかし、今私はこのメッセージを受け取りますgit status: # On branch master # Your branch is ahead of 'origin/master' by 5 commits. 私は自分のブランチが何回もコミットされることを望まない。どうすればその時点に戻ることができますか?
3944 git  undo  git-merge 

13
私はマージの衝突に遭遇しました。どうすればマージを中止できますか?
私は使用git pullしてマージの競合がありました: unmerged: _widget.html.erb You are in the middle of a conflicted merge. 私はファイルの他のバージョンが良いこと、そして私のものは悪いことを知っているので、私の変更はすべて放棄されるべきです。これどうやってするの?

13
Gitブランチをマスターにマージする最良の(そして最も安全な)方法は何ですか?
から新しいブランチmasterが作成され、それをと呼びますtest。 master他のブランチにコミットするか作成して、後でにマージする開発者が何人かいますmaster。 たとえば、作業にtest数日かかっており、test内部のコミットで継続的に更新したいとしますmaster。 私はするだろうgit pull origin masterからtest。 質問1:これは正しいアプローチですか?他の開発者も、私が作業していたのと同じファイルで簡単に作業できたでしょう。 これで私の作業testは完了し、それをにマージする準備ができましたmaster。ここに私が考えることができる2つの方法があります: A: git checkout test git pull origin master git push origin test git checkout master git pull origin test B: git checkout test git pull origin master git checkout master git merge test --rebase私の理解から、リベースは変更を取得し、そのmaster上に鉱山をスタックするため、他の人が行った変更を上書きする可能性があるため、私は使用していません。 質問2:これら2つの方法のどちらが正しいですか?そこでの違いは何ですか? これらすべての目標は、testブランチで起こっていることを最新の状態に保つことでmasterあり、後でそれらをマージしてmaster、タイムラインをできるだけ線形に保つことを期待できます。


25
Gitの別のブランチから選択的にマージまたは変更を選択する方法は?
私は2つの並行しているが、現在実験的である開発ブランチを持つ新しいプロジェクトでgitを使用しています: master:既存のコードベースのインポートと、私が一般的に確信しているいくつかのモッド exp1:実験ブランチ#1 exp2:実験ブランチ#2 exp1exp22つの非常に異なるアーキテクチャアプローチを表しています。私がさらに進むまで、どれが(もしあれば)機能するかを知る方法がありません。1つのブランチで作業を進めると、他のブランチで役立つ編集が時々あり、それらだけをマージしたいと思います。 ある開発ブランチから別のブランチに選択的な変更をマージし、他のすべてを残しておくための最良の方法は何ですか? 私が検討したアプローチ: git merge --no-commit その後、ブランチ間で共通にしたくない大量の編集を手動でステージング解除します。 共通ファイルを一時ディレクトリにgit checkout手動でコピーした後、他のブランチに移動し、一時ディレクトリから作業ツリーにさらに手動でコピーします。 上記のバリエーション。ここではexpブランチを放棄し、実験のために2つの追加ローカルリポジトリを使用します。これにより、ファイルの手動コピーがはるかに簡単になります。 これらの3つのアプローチはすべて退屈でエラーが発生しやすいようです。より良いアプローチがあることを願っています。git-mergeより選択的になるフィルターパスパラメーターのようなもの。

12
プル中の変更を優先してGitマージの競合を解決する
プルされた変更を優先してgitマージの競合を解決するにはどうすればよいですか? 基本的に、競合のgit mergetoolないすべての変更を保持しながら、すべての競合を通過する必要なく、すべての競合する変更を作業ツリーから削除する必要があります。できれば、後でではなく引っ張っているときにこれを実行します。

11
git merge --squashの使用方法
私はリモートGitサーバーを持っています、これが私が実行したいシナリオです: バグ/機能ごとに異なるGitブランチを作成します 私は非公式のGitメッセージでそのGitブランチでコードをコミットし続けます 最上位のリポジトリでは、公式のGitメッセージで1つのバグに対して1つのコミットを行う必要があります それで、ブランチをリモートブランチにマージして、すべてのチェックインに対してコミットが1つだけになるようにするにはどうすればよいですか?
1209 git  git-merge  git-squash 

11
すでにリベースを開始している場合、2つのコミットを1つにマージするにはどうすればよいですか?
2つのコミットを1つにマージしようとしているので、git readyから「コミットをリベースしてスカッシュ」しました。 私は走った git rebase --interactive HEAD~2 結果のエディターで、に変更pickしsquashてから保存を終了しますが、リベースはエラーで失敗します 以前のコミットがないと「スカッシュ」できません 作業ツリーがこの状態に達したので、回復に問題があります。 コマンドはgit rebase --interactive HEAD~2失敗します: インタラクティブリベースはすでに開始されています そしてgit rebase --continue失敗する 以前のコミットがないと「スカッシュ」できません
1158 git  git-merge 

8
Gitマスターを機能ブランチにマージ
Gitに次のような状況があるとします。 作成されたリポジトリ: mkdir GitTest2 cd GitTest2 git init マスターでいくつかの変更が行われ、コミットされます。 echo "On Master" > file git commit -a -m "Initial commit" Feature1はマスターから分岐し、いくつかの作業が行われます。 git branch feature1 git checkout feature1 echo "Feature1" > featureFile git commit -a -m "Commit for feature1" 一方、マスターコードにバグが発見され、ホットフィックスブランチが確立されます。 git checkout master git branch hotfix1 git checkout hotfix1 バグはhotfixブランチで修正され、マスターにマージされます(おそらくプルリクエスト/コードレビューの後)。 echo …

10
git pullを元に戻す、リポジトリを古い状態にする方法
ソース/リポジトリがgit pullを実行する前の古い状態になるように、git pullを元に戻すまたは元に戻す方法はありますか?したくないいくつかのファイルをマージしたので、これを行いたいが、他の残りのファイルのみをマージした。それで、それらのファイルを取り戻したいのですが、それは可能ですか? 編集:私は説明のためにgitマージを元に戻したいです。いくつかの答えを見た後、私はこれをしました git reflog bb3139b... HEAD@{0}: pull : Fast forward 01b34fa... HEAD@{1}: clone: from ...name... 今、私は何をすべきですか?やってgit reset --hard OKですか?もうねじ込みたくないので、詳細な手順を尋ねますか?

11
Gitワークフローとリベースとマージの質問
私はもう1人の開発者とプロジェクトで数か月Gitを使用しています。私はSVNで数年の経験があるので、私は関係に多くの荷物を持っていると思います。 Gitはブランチやマージに最適であると聞いたことがありますが、今のところ見られません。もちろん、分岐は非常に単純ですが、私がマージしようとすると、すべてが地獄に行きます。今はSVNに慣れていますが、サブバージョン管理システムを別のシステムと交換したようです。 私のパートナーは、私の問題は意気揚々とマージしたいという私の欲求から生じていると私に言います、そして私は多くの状況でマージの代わりにリベースを使用すべきであると言います。たとえば、以下は彼が定めたワークフローです。 clone the remote repository git checkout -b my_new_feature ..work and commit some stuff git rebase master ..work and commit some stuff git rebase master ..finish the feature git checkout master git merge my_new_feature 基本的に、機能ブランチを作成し、常にマスターからブランチにリベースし、ブランチからマスターにマージします。ブランチは常にローカルに留まることに注意してください。 これが私が始めたワークフローです clone remote repository create my_new_feature branch on remote repository git checkout -b …

18
「彼らの」バージョンの「git merge -s ours」はありますか?
を使用してトピックブランチ「B」を「A」にマージするとgit merge、いくつかの競合が発生します。「B」のバージョンを使用すると、すべての競合を解決できることを知っています。 私は承知していgit merge -s oursます。しかし、私が欲しいのはのようなものですgit merge -s theirs。 なぜそれが存在しないのですか?既存のgitコマンドとマージして競合した後、どうすれば同じ結果を得ることができますか?(git checkoutBからのすべてのマージされていないファイル) 更新:ブランチA(ツリーのBバージョンへのマージコミットポイント)から何かを単に破棄する「解決策」は、私が探しているものではありません。
876 git  git-merge 

29
.gitignoreおよび「次の追跡されていない作業ツリーファイルは、チェックアウトによって上書きされます」
そこで、.gitignoreファイルにフォルダーを追加しました。 私がやるとgit statusそれは私に伝えます # On branch latest nothing to commit (working directory clean) しかし、ブランチを変更しようとすると、次のようになります。 My-MacBook-Pro:webapp marcamillion$ git checkout develop error: The following untracked working tree files would be overwritten by checkout: public/system/images/9/thumb/red-stripe.jpg public/system/images/9/original/red-stripe.jpg public/system/images/8/thumb/red-stripe-red.jpg public/system/images/8/original/red-stripe-red.jpg public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg public/system/images/7/thumb/red-stripe-dark.jpg public/system/images/7/original/red-stripe-dark.jpg public/system/images/7/original/DSC07833.JPG public/system/images/6/thumb/red-stripe-bw.jpg public/system/images/6/original/website-logo.png public/system/images/6/original/red-stripe-bw.jpg public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg public/system/images/5/original/logocompv-colored-squares-100px.png public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg public/system/images/4/thumb/DSC_0001.JPG public/system/images/4/original/logo.png public/system/images/4/original/DSC_0001.JPG public/system/images/4/original/2-up.jpg public/system/images/3/thumb/logo2.gif …
828 git  git-merge  gitignore 

5
競合のあるgitマージを元に戻す方法
私はブランチにいmybranch1ます。mybranch2から分岐されmybranch1、で変更が行われましたmybranch2。 次に、を実行しmybranch1ている間に、git merge --no-commit mybranch2 マージ中に競合があったことを示しています。 今、私はすべて(mergeコマンド)を破棄したいので、mybranch1以前の状態に戻ります。どうすればいいのかわかりません。

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