問題タブ [git-merge]
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 - すでにリベースを開始している場合、2つのコミットを1つにマージするにはどうすればよいですか?
2つのコミットを1つにマージしようとしているので、gitreadyから「リベースでコミットを押しつぶす」に従いました。
走った
結果のエディターで、に変更pick
しsquash
てから保存-終了しますが、リベースがエラーで失敗します
事前のコミットなしで「スカッシュ」することはできません
作業ツリーがこの状態に達したため、回復に問題があります。
コマンドは次のようgit rebase --interactive HEAD~2
に失敗します:
インタラクティブリベースはすでに開始されています
でgit rebase --continue
失敗します
事前のコミットなしで「スカッシュ」することはできません
git - リモートトラッキングブランチから「gitfetch」と「gitmerge」を実行するにはどうすればよいですか(「gitpull」など)
gitでいくつかのリモート追跡ブランチを設定しましたが、「git fetch」で更新すると、それらをローカルブランチにマージできないようです。
たとえば、「an-other-branch」というリモートブランチがあるとします。私はそれを使用して追跡ブランチとしてローカルに設定しました
ここまでは順調ですね。しかし、そのブランチが更新され(通常、マシンを移動してそのマシンからコミットすることによって)、元のマシンで更新したい場合、フェッチ/マージで問題が発生しています。
これを行うたびに、「すでに最新です」というメッセージが表示され、何もマージされません。
ただし、
常に期待どおりに更新します。
また、gitdiffを実行します
違いがあることを示しているので、構文が間違っていると思います。
私は何が間違っているのですか?
編集[2010-04-09]:私は数回チェックしました、そして私は間違いなく別のブランチにいません。「gitfetch」の後に「gitmerge」(上記のように)を続けると、git pullとまったく同じことを行う必要がありますか?gitステータスなどの結果を示すワークフローを取得します。
git - Mac OS X git クライアント Gity で 2 つのブランチをマージする方法
2 つのブランチを Gity にマージするのに問題があります。別のブランチでチェックアウトしてクリックすると、「マスターにマージ」をクリックしても何も起こらないようです...
何かご意見は?
git - git がデフォルトで早送りマージを実行するのはなぜですか?
Mercurial から来て、ブランチを使用して機能を整理しています。当然、自分の歴史にもこのワークフローを見たいと思っています。
git を使用して新しいプロジェクトを開始し、最初の機能を完成させました。機能をマージするとき、git が早送りを使用していることに気付きました。つまり、可能であれば変更をマスター ブランチに直接適用し、私のブランチは忘れてしまいます。
将来を考えると、このプロジェクトに取り組んでいるのは私だけです。git のデフォルトのアプローチ (早送りマージ) を使用すると、私の履歴は 1 つの巨大なマスター ブランチになります。最終的には巨大な master ブランチしかないので、機能ごとに個別のブランチを使用したことを誰も知りません。それは専門外に見えませんか?
この理由から、私は早送りマージを望んでおらず、それがデフォルトである理由がわかりません。それについて何がそんなに良いのですか?
git - GITには邪悪な双子の問題がありますか?
ClearCaseでは、ディレクトリの2つの異なるバージョンで同じ名前の2つのファイルが見つかった場合、および要素のOIDが異なるが名前が同じである場合に、悪の双子が発生します。
GITでは、SHA1 IDは常に一意であり、同じ名前のファイルは常に異なるSHA1IDを持ちます。
邪悪な双子の概念はありませんが、2人以上の開発者が同じディレクトリに同じファイル名で異なる内容のファイルを作成する可能性があります。マージ中に、両方のファイルが完全に異なる場合、開発者は自分の変更をそのままにして、他の変更を残してコードを失う可能性があります。
ClearCaseと同様の問題がGITにあるかどうか、または各SHA1 IDが一意であるかどうかを誰かに知らせてもらえますか?GITに悪の双子の問題はありません。
git - バイナリファイルをマージするのではなく、選択するようにgitに指示します
バイナリ ファイル、swfs、jar、および flv がローカルで変更され、変更を取り込もうとすると、git はそれらをマージしようとし、競合を報告します。
次に、一時的なブランチに分岐し、ローカルで変更されたバイナリ ファイルをコミットし、再帰的な戦略を使用してプル後にそれらをマージします。 - 働き過ぎ。
バイナリファイルをマージしようとせず、これらのバージョンのどれを使用するかを尋ねるのではなく、gitに伝える方法はありますか?
git - Git: 実際のマージ コミットを準備した後、単純なコミットを作成する方法は?
を呼び出した後git merge --no-commit <commit>
、コミットを実行すると、2 つ (またはそれ以上) の親を持つマージ コミットが行われます。代わりに単純なコミットを作成するために呼び出すコマンドは何ですか(--squash
オプションを使用してマージ コマンドを再実行する必要はありません)。
git - Git で競合するファイルを一覧表示する最も簡単な方法は何ですか?
競合するファイルの単純なリストが必要です。
以下よりも簡単なものはありますか?
また:
そのためのハンディをセットアップできるとalias
思いますが、プロがどのように行うのか疑問に思っていました. たとえば、競合を自動解決するなどのシェルループを作成するために使用しmergetool.cmd
ます。
git - git rename/delete 混乱
特定の git 動作について 1 つの混乱があります。
手順と状況は次のとおりです (コマンドのリストも後で示します)。
- master と XBranch の 2 つのブランチがあります。
- どちらにも src/a.txt ファイルがあります。そのコンテンツは「古いコンテンツ」です
- XBranch で、src/a.txt の名前を src/b.txt に変更
mv
しgit rm
ますgit add
。 マスターで、ファイルの名前を a.txt に変更します。コミット中に私はやっ
git rm src/a.txt
たが忘れていたgit add src/b.txt
マスターでは:git rm src/a.txt
そしてgit commit
マスターで、ファイル b.txt の内容を「
New Content
- マスターで私はそうし
git add src/b.txt
、git commit
- マスターで私は:
git merge XBranch
ファイル src/b.txt が競合していますが、これは完全に理解できます。しかし、内容は「Old Content
」です。なんで?
なぜそれは次のようなものではありません:
コマンドのリスト:
git - マージ時にフォルダーを無視するように git ドライバーをセットアップする方法
私はすでに広範な検索を行い、多くの SO の質問と解決策を読み、さまざまな方法で試しましたが、やりたいことができませんでした。これはかなり単純です。
すべてのメイン コードが存在するマスター ブランチと、デザイン チームが Rails アプリケーションのレイアウトを構築するデザイン ブランチがあります。彼らは、画像のソースもバージョン管理下に置くために、「photoshop」というフォルダーを public フォルダーに追加しました。しかし、マージ時にこのフォルダーを master ブランチにコピーしたくありません。
どうやら、これを行う方法は、マージ ドライバーを使用することです。そこで、「無視」ドライバーを作成しました。
$PATH に ignore.sh ファイルを作成しました。
.gitattributes ファイルを public/ 内に作成しました。これは、photoshop フォルダー全体を無視する必要があり、public/ の下に表示されるためです。
ご覧のとおり、フォルダー全体を無視するためにいくつかの異なるパターンを試しましたが、うまくいきません。これは、master ブランチにフォルダーがないため、競合がなく、git が無視ドライバーを使用していないためだと思います。マスターに public/photoshop フォルダーを作成せずにこれを実現する方法はありますか?
ありがとう!