問題タブ [merge-conflict-resolution]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Gitの競合(名前の変更/名前の変更)
ブランチをマージした後conflict (rename/rename)
、、を使用して大量のファイルを受け取りfile~HEAD
、file~my_test_branch
作成しました。これらを解決する方法は?
ありがとう
git - GIT 破損ファイル (<<<<<<<
VS2012 git-plugin で問題が発生した後、ファイルにこれがあります。
using Microsoft.VisualStudio.TestTools.UnitTesting;
<<<<<<< HEAD
using NHibernate;
=======
>>>
VS2012 git-plugin で問題が発生した後、ファイルにこれがあります。
ファイルをリセットするにはどうすればよいですか?
Chromeはランダムな空白を挿入します
Chrome でスタイルが台無しになるページがあります (Safari などでは問題ありません)。何らかの理由で HTML に奇妙な空白が挿入され、ページの上部や他の場所のレイアウトが台無しになっているようです。PHP ページのソースを表示することを選択した場合、次のように表示されます。
(BODY と DIV の間にスペースがないように PHP を変更しました)。しかし、開発者ツールを開くと、次のように表示されます。
「」を手動で削除すると、レイアウトはうまくいきます。ここで何が起きてるの?私は困惑しています。
編集: http://bit.ly/ZkZxVG
でページを見ることができます編集: すべての拡張機能を無効にしようとしましたが、問題には影響しませんでした。
ヒント: ブートストラップと JQuery を使用しています。彼らはコードをいじることができますか?
VS2012 git-plugin で問題が発生した後、ファイルにこれがあります。
using Microsoft.VisualStudio.TestTools.UnitTesting;
<<<<<<< HEAD
using NHibernate;
=======
>>>
VS2012 git-plugin で問題が発生した後、ファイルにこれがあります。
ファイルをリセットするにはどうすればよいですか?
Chromeはランダムな空白を挿入します
Chrome でスタイルが台無しになるページがあります (Safari などでは問題ありません)。何らかの理由で HTML に奇妙な空白が挿入され、ページの上部や他の場所のレイアウトが台無しになっているようです。PHP ページのソースを表示することを選択した場合、次のように表示されます。
(BODY と DIV の間にスペースがないように PHP を変更しました)。しかし、開発者ツールを開くと、次のように表示されます。
「」を手動で削除すると、レイアウトはうまくいきます。ここで何が起きてるの?私は困惑しています。
編集: http://bit.ly/ZkZxVG
でページを見ることができます編集: すべての拡張機能を無効にしようとしましたが、問題には影響しませんでした。
ヒント: ブートストラップと JQuery を使用しています。彼らはコードをいじることができますか?
git - 競合するgitマージ後のクリーンアップ?
.h
作業中のプロジェクトのヘッダーファイルで小さな競合が発生しました。このプロジェクトはGitで追跡されています。
幸いなことに、競合は非常に簡単に解決できました。使用しました
git mergetool
opendiff
そして、私のMacではFileMergeのように見えるデフォルト()を選択しました。適切な変更を加え、ファイルを保存して閉じました。
次に、Gitは、マージが成功したかどうかを尋ねました。私は「はい」と答えました。
Was the merge successful? [y/n] y
しかし今、私は持っています:
これらの余分なジャンク競合ファイルのうち、FileMergeによって作成されたものと、Gitによって作成されたものはどれですか?
そしてもっと重要なこと:どうすればそれらを削除できますか?
git - git svn:分岐、マージ、リベースでの大規模な競合を回避します
私はgit-svnを使用して2台のマシン(MacとWindows)で作業しています。私のリモートリポジトリはsvnです。私はMacをマスターリポジトリとして使用し、Windowsをスレーブとして使用しています。したがって、すべてのgit-svn操作はMacで実行され、WindowsマシンはMacで「gitpull」または「gitpush」のみを実行します。
次のようなワークフローでは、何百もの競合を解決する必要がある状況に陥ることがよくあります。
- 私は主にMacで作業し、次にWindowsに「gitpull」させてテストを行います。
- 時々、Windowsで少し作業して、機能ブランチにコミットする必要があります。
- 次に、「gitpushorigin」を実行してブランチをMacにプッシュバックします。
- 次に、Macで「gitmergewindows_branch」をマスターブランチに入れます。
- 最後に、「gitsvnrebase」と「gitsvndcommit」を実行します。
ステップ5で、ここに衝突が来ます!そして、私はかつて、「git mergetool」、「git rebase --continue」、「git rebase --skip」、および「git rebase --abort」ワークフローを使用して、すべての競合を3時間かけて調べました。運が良ければ、それらすべてを理解することができます。しかし、場合によっては、それらの数が多すぎて、さらに悪いことに、リベースは履歴をトラバースするときに同じ一連の競合を繰り返し実行します(gitはファイルではなく変更のみを認識します)。最終的に私は混乱し、それらのいくつかを誤って解決し、より大きな悪夢を引き起こします。私が学んだいくつかのスクリプトは、「gitaccept-ours」や「gitaccept-theirs」のようなことをするのに役立ちますが、これは削除されたファイルを含む履歴ではうまく機能せず、繰り返し受け入れる必要があります。
これは、分岐とマージのワークフローを使用することを本当に躊躇し始めるほどの悪夢でした。問題は、なぜこれほど多くの衝突が発生する可能性があるのか正確にはわからないということです。しかし、そのような競合を防ぐか、簡単にバッチ解決するのに役立つ推奨ワークフローまたはプラクティスがあれば、それは素晴らしいことです。
助けてくれてありがとう!
git - Xコミットで先にgitを実行...解決策が見つかりません
これがシーケンスです
この時点でブランチに編集はありません
git pull --rebase
リモートブランチに追跡されているブランチで実行しました- 競合が発生しました
- やった
git reset --hard
- それから
git rebase --abort
そして今、私のブランチはXコミットで進んでいると言われています
私はgit reset --hard
もう一度やり直してから、ブランチgit fetch
をgit fetch origin
もう一度git checkoutしてみましたが、まったく役に立ちませんでした
この問題を解決するにはどうすればよいですか?
windows - Windows Github の基本と競合処理 (VSS など)
Git / GitHub は初めてです (過去に VSS を使用していました)。私のSO投稿に基づいて、私はWindows GitHubを使用しています。コマンドプロンプトベースのGit bashのものと比較して、ユーザーフレンドリーです。特に同期機能、SSHなどの心配はありません...
VSS(少なくとも基本的なチェックイン/アウトとロールバック)の観点からフローを理解しようとしています。私の理解 -
- 最初に、リモート リポジトリをローカルで複製します (おそらく、VSS でプロジェクト全体をチェックアウトするのと同様ですが、Git では別のクローン コピーになります)。
- 後でプルする必要があります(VSSで最新のものを取得するなど)。変更、コミット(ローカルのクローン ブランチですべて実行) - ステージング チェックインと同様
- 最後に、コミット (ステージングされた変更) をリモート リポジトリにプッシュします (VSS の最終チェックインのように)。
ツールは競合を検出/処理できますか? 優れたSO 投稿 を見つけましたが、確認する必要があります。プッシュ中に競合メッセージが表示されると思います。次に、ファイルを手動で変更 (変更をマージ) してから、もう一度プッシュする必要があります (VSS でマージするように)。コマンドラインを使用する必要がありますか、それともツール内から可能ですか?
また、Git bash またはツールから前のバージョンにロールバックするにはどうすればよいですか?
また、いくつかの VS.Net ソース管理プロバイダーと拡張機能を見つけましたが、古い SSH やその他の複雑なものに戻ってしまったものもあります。チームを励ますために、シンプルに保ち、複雑さを最小限に抑えたいと思います..私の言いたいことがわかっているなら。VSS は、使用するのも学ぶのも簡単でした :-)
参照
git - HEAD バージョンの行にコンテンツがない場合に git がマージの競合を表示する理由
git merge master
別のブランチから実行しようとすると、次の競合が発生します。
私は競合を解決する方法を知っていますが、HEAD バージョンには特定の行にコンテンツがないため、そもそもなぜ git がこれを競合として認識するのか興味があります。
マスターから3行を追加してマージするだけのgitの単純なケースではありませんか?
アップデート:
@Marcinは正しいです。答えに基づいて、テストを行いました。たとえば、以下のような git ツリーがあるとします。
temp.txt
の内容commit A
:
temp.txt
の内容commit B
:
temp.txt
inの内容commit C
は空です。
この時点で、次のようにします。
次に、次のものを取得します。
git - Git コミット解除メッセージのみ
私はかなり頻繁にこのシナリオにいますが、何をすべきかわかりません。
- ブランチで何かを変更しました。コミット&プッシュ。
- 私はまだ同じブランチに取り組んでいて、誰かがコミットしてプッシュしました。
- 変更が完了し、git commit -m "Blabla"を実行してプッシュしました。
- リポジトリが先にあり、いくつかの変更が失われる可能性があるため、Git はプッシュを拒否しました
私の考えは次のとおりです。
- pre git commit -m "blabla"に移動します(<-これが私が立ち往生している場所です)
- スタッシュの変更
- リポジトリから最新の変更をプルする
- stash を作業ディレクトリとマージする
- もう一度コミットする
- 押す
そのような「対立」をどのように解決しますか、またはこの状況で行う最善のことは何ですか?
git - git merge squash - 押しつぶしたブランチからの変更だけが必要な場合の競合解決
マスターブランチが許容可能な状態に達したときにgithubにプッシュするgithubブランチがあります(これは一度行っています)。この目的のために私はしました:
私が望むのは、作業ディレクトリをマスターHEADとまったく同じ状態にすることです。
これを行う私の方法は間違っていますか ( --squashing を github ブランチに繰り返しマージします)。
これを達成するための簡単でばかげた方法はありますか(各競合を経ることなく)。
おまけとして、この写真のUse Local VersionとUse Remote Versionの意味を知りたい- msysgit: