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

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

6
コミットを押しつぶしているだけなのに、git-rebaseでマージの競合が発生するのはなぜですか?
Gitリポジトリには400以上のコミットがあり、最初の数十は試行錯誤を繰り返しました。これらのコミットをクリーンアップして、多くを1つのコミットにまとめます。当然、git-rebaseを使用する方法のようです。私の問題は、マージの競合が発生し、これらの競合を簡単に解決できないことです。コミットを押しつぶしているだけなので(削除や並べ替えではないため)、なぜ競合が発生するのか理解できません。おそらく、これはgit-rebaseがどのように押しつぶされるかを完全には理解していないことを示しています。 これが私が使用しているスクリプトの修正版です。 repo_squash.sh(これは実際に実行されるスクリプトです): rm -rf repo_squash git clone repo repo_squash cd repo_squash/ GIT_EDITOR=../repo_squash_helper.sh git rebase --strategy theirs -i bd6a09a484b8230d0810e6689cf08a24f26f287a repo_squash_helper.sh(このスクリプトはrepo_squash.shでのみ使用されます): if grep -q "pick " $1 then # cp $1 ../repo_squash_history.txt # emacs -nw $1 sed -f ../repo_squash_list.txt < $1 > $1.tmp mv $1.tmp $1 else if grep -q "initial …

6
リベース後にブランチにプッシュできません
gitを使用し、masterブランチとdeveloperブランチがあります。新しい機能を追加してから、コミットをマスターにリベースし、マスターをCIサーバーにプッシュする必要があります。 問題は、リベース中に競合が発生した場合、リベースが完了した後、リモートブランチをプルするまで、(Github上の)リモート開発者ブランチにプッシュできないことです。これにより、コミットが重複します。競合がない場合、期待どおりに動作します。 質問:リベースと競合の解決後、重複したコミットを作成せずにローカルおよびリモートの開発ブランチを同期するにはどうすればよいですか セットアップ: // master branch is the main branch git checkout master git checkout -b myNewFeature // I will work on this at work and at home git push origin myNewFeature // work work work on myNewFeature // master branch has been updated and will conflict with myNewFeature …

2
「リモートトラッキングブランチ 'origin / develop'を開発にマージするのはなぜですか?」
次のメッセージでコミットしているのは、私の組織内で1人だけです。 リモート追跡ブランチ「origin / develop」を開発にマージします それらを引き起こすために私が何をしているのかわからないが、私はやめたい。 このコミットを作成するためにどのコマンドを発行していますか、またそれを生成しないために使用する必要がある適切なコマンドは何ですか?

5
Visual Studio CodeをGit MergeToolのデフォルトエディターとして使用する方法
私が使用しようとしていた今日git mergetoolのWindowsには、コマンドプロンプトとそれが使用するデフォルト設定されたことに気づいVimの涼しいです、が、私は好むVSコードを。 Gitのマージ競合を処理するためのGUIとして(または差分ツールとしても)Visual Studio Code関数を使用するにはどうすればよいですか?

3
SourceTree / Gitの競合をインタラクティブに(視覚的に)解決する方法
私のgitプロジェクトには(Windows)SourceTreeを使用しています。コマンドプロンプトまたはLinuxターミナルのいずれかで実行できます。 しかし、対話的に視覚的に競合を解決する良い方法があるかどうか疑問に思っています。たとえば、プルが競合を検出した場合、GUIベースの競合ツール(P4Mergeなど)をポップアップします。出来ますか? 私は常に手作業での競合解決を行っていますが、これはとてもつらいことです。 これは、例えばpullSourceTreeからのgit メッセージです。 git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master From W:\repo\ * branch master -> FETCH_HEAD Updating 33c07bf..41e0249 error: Your local changes to the following files would be overwritten by merge: foo.cpp goo.cpp goo.hpp Please, commit your changes or stash them before you can merge. …

3
Gitマージを中止する
VCSとしてGitを使用するプロジェクトに取り組んでいます。xyzマスターのメインラインの枝から枝を切りました。しばらく働いた後、コードをコミットし、ブランチのメインラインをプルしました。 プルは大丈夫でした。次に、コードをマスターとマージしました。マージ後、特定のファイルに問題が発生しました。マージ後にコードをコミットしていません。このマージを中止して、現在作業中のブランチをマージ前の状態にする方法を誰かがガイドしてくれませんか?
119 git  git-merge 

8
Gitのサーバーリポジトリから単一のファイルをプルする方法
サーバーでGitを実行しているサイトで作業しています。デプロイにGitを使用しています(GitHubではありません)。これは、フックメソッドを使用して関与する前に設定されたものであり、この質問を参照して以下のコマンドを入力しましたが、機能しませんでした。 サーバーから単一のファイルをプルするにはどうすればよいですか?たとえば、ローカルファイルindex.phpを更新したい場合はどうすればよいですか。git pull index.php?

5
リモートトラッキングブランチから「git fetch」および「git merge」する方法(「git pull」など)
gitでいくつかのリモートトラッキングブランチを設定しましたが、 'git fetch'でそれらを更新すると、ローカルブランチにマージすることができないようです。 たとえば、「another-other-branch」というリモートブランチがあるとします。私はそれを使用して追跡ブランチとしてローカルに設定しました git branch --track an-other-branch origin/an-other-branch ここまでは順調ですね。しかし、そのブランチが更新され(通常、私はマシンを移動し、そのマシンからコミットする)、元のマシンでそれを更新したい場合、フェッチ/マージで問題が発生しています。 git fetch origin an-other-branch git merge origin/an-other-branch これを行うと、「最新のメッセージ」が表示され、何もマージされません。 ただし、 git pull origin an-other-branch 常にあなたが期待するようにそれを更新します。 また、git diffを実行する git diff origin/an-other-branch 違いがあることを示しているので、構文が間違っていると思います。 何が悪いのですか? 編集[2010-04-09]:何度か確認しましたが、間違いなく別のブランチにはいません。'git fetch'の後に 'git merge'(上記のように)を実行すると、git pullとまったく同じことを行う必要がありますか?gitステータスなどの結果を示すワークフローを取得します。

5
Gitは私のファイルに左のヘッドマークをマージします
コマンドラインでGitを使用してファイルをマージしようとしましたが、マージが中止されたことを示すエラーメッセージが表示されました。 それで終わりだと思ったのですが、ファイルにgitmarksがあることに気づきました。そのようです: start = expression validchar = [0-9a-zA-Z_?!+\-=@#$%^&*/.] integer = <<<<<<< HEAD digits:[0-9]+ { return digits.join(""); } ======= sign:"-"* digits:[0-9]+ { return sign + digits.join(""); } >>>>>>> gh-pages ファイルは私ではなく編集されており、次の行が挿入されています: 小なり記号(<<<<<<< HEAD)の後のHEAD 変更されたコードの行 等号の文字列(=======) 新しいバージョンのコード 大なり記号で始まる別の行とブランチの名前(>>>>>>> gh-pages) さらに悪いのは、ファイルの内容が整理されていないことです。これらのファイルを通常の状態に戻す方法、およびghブランチで行った変更がマスターブランチにマージされた方法を誰かが知っていますか?

3
特定のファイルで競合するマージに対して常にローカルバージョンを選択するようにgitに指示するにはどうすればよいですか?
私がgitリポジトリを介して誰かと共同作業をしていて、外部の変更を受け入れたくない特定のファイルがあるとします。 git pullするたびにマージの競合について不平を言わないようにローカルリポジトリを設定する方法はありますか?このファイルをマージするときは、常にローカルバージョンを選択したいと思います。
100 git  git-merge 

4
git履歴からマージコミットを削除
私のGit履歴は次のようになります。 紫色のコミットを1つにまとめたいのですが。コミットログで二度とそれらを見たくありません。 私はを試みましたが、青いブランチ(画像を参照)にあるにgit rebase -i 1もかかわらず1、紫色のブランチですべてのコミットが表示されます。 紫色のブランチを(コミットログから)完全に削除するにはどうすればよいですか?

7
Meldをgit mergetoolとして設定する方法
私は設定しました: git config --global merge.tool meld git config --global mergetool.meld.path c:/Progra~2/meld/bin/ "git mergetool"には次のように書かれています: Hit return to start merge resolution tool (meld): The merge tool meld is not available as 'c:/Progra~2/meld/bin/' 私も試しました: / c / Progra〜2 / meld / bin / 「/ c /プログラムファイル(x86)/ meld / bin /」 「c:/プログラムファイル(x86)/ meld / …
95 git-merge  meld 

3
Gitでのマージ試行の取り消し
ベンダーディレクトリ(#2)が含まれている作業ディレクトリ(#1)があります。composerなしで手動でプルしたい依存関係が1つあります(npm / gemのphpバージョン)。#2でライブラリを更新することにしたとき、私は#1で作業していて、変更を保存またはコミットしていませんでした。vendor / mynameに移動し、git pullレポジトリを作成しました。 残念ながら、ベンダーフォルダーに新しいディレクトリを作成する代わりに、プルして#1にマージし始めました。 今私が持っています: 私の変更を含む#1フォルダー 間違ったリポジトリからの不要なファイルを含む#1フォルダ #1 composer.json、Readme.md ...(一般ファイル)などの競合のマージ フォルダ#1に加えた変更を失うことなく、この最後のgit pullを「元に戻したい」と思います。これどうやってするの?

2
gitステータス「Unmergedpaths:」を解決する方法は?
ブランチdogをにマージしましたanimal。コミットしようとすると、次のようになります。 Unmerged paths: (use "git reset HEAD <file>..." to unstage) (use "git add <file>..." to mark resolution both deleted: ../public/images/originals/dog.ai added by them: ../public/images/original_files/dog.ai ブランチごとに異なるディレクトリ名とファイル名がありました。animalブランチは、私が欲しいの変更があります。 ヘッドをリセットしようとすると動作しません。そして、他のgitアクション(削除、チェックアウトなど)を実行しようとすると、path not foundエラーが発生します。 これを解決するには、どのコマンドを実行する必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.