問題タブ [git-apply]
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 apply は複数回適用できます
次のパッチがあります
2 回目に git apply を使用すると、パッチの適用に失敗せず、代わりに同じ行に追加されます。これを防ぐ方法はありますか?
また、 git apply -R を使用すると、追加されたインスタンスの 1 つが削除されます。
git - git am: パッチ形式の検出に失敗しました。git apply も失敗します
私は git のパッチ適用を学ぼうとしているので、テスト リポジトリをセットアップし、いくつかのコミットを行いました。
次に、パッチを作成しました。git format-patch -1 HEAD --stdout > changes.patch
次に、新しいブランチをチェックアウトし、 changes.patch: を使用しようとしましたgit am .\changes.patch
。それは私にエラーを与えるPatch format detection failed.
ここで検索したところ、この関連する質問が見つかりました。
だから私は試しgit apply .\changes.patch
ました。それは私に与えますerror: unrecognized input
。
パッチ ファイルは、素人目には問題ないように見えます。
パッチがリポジトリと同じディレクトリにあるのではないかと思ったので、別のディレクトリに移動しました。結果は同じです。
<
また、多くの人がコマンドにa を持っていることに気付いたので、それを試してみました: git am < ..\changes.patch
. どうやらそれは有効な構文ではありません。
これは、Windows で PowerShell を使用して 64 ビットの git を使用しています。
何か案は?
bash - git apply error no such file or directory
A と B の 2 つの別個の git リポジトリがあります。一部のリポジトリ B のファイルは、プロジェクト A のサブフォルダーに既に存在します。私の目標は、リポジトリ B のパッチを作成し、それらをリポジトリ A 内のサブフォルダーに適用して、リポジトリ B の履歴を保存することです。それらをマージしながら。問題は、パッチが新しいファイルを作成できないことです。例えば:
このフォルダー構造を想定: /home/user/B/..bunch のディレクトリおよび /home/user/A/ext/lib/B/..bunch のディレクトリ
cd /ホーム/ユーザー/B
git format-patch "xx..xx" -o /home/user/A/ (パッチファイルの作成)
cd /ホーム/ユーザー/A
git apply -v --directory=ext/lib/B/ 0001-foo-12345.patch
パッチは新しいファイルを作成しないか、B には存在するが A には存在しないフォルダーにアクセスしようとしないため、正常に動作します。
しかし
cd /ホーム/ユーザー/A
git apply -v --directory=ext/lib/B/ 0002-foo2-6789.patch
は機能せず、次のエラーがスローされます: Checking patch ext/lib/B/xyz/test.c... error: ext/lib/B/xyz/test.c: No such file or directory.
これまでに次のコマンドを試しました。
git apply -v --directory=/home/user/A/lib/B/ --include=bb/cc --exclude=cc/ --exclude=bb/ --include=* 0002-foo2-6789.patch
git apply -v --directory=/home/user/A/lib/B/ --include=* --include=bb/cc --exclude=cc/ --exclude=bb/ 0002-foo2-6789.patch
git am --directory=/home/user/A/lib/B/ --include=* --include=bb/cc --exclude=cc/ --exclude=bb/ 0002-foo2-6789.patch