問題タブ [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.

0 投票する
1 に答える
53 参照

git - 行が削除されていない場合、git apply は複数回適用できます

次のパッチがあります

2 回目に git apply を使用すると、パッチの適用に失敗せず、代わりに同じ行に追加されます。これを防ぐ方法はありますか?

また、 git apply -R を使用すると、追加されたインスタンスの 1 つが削除されます。

0 投票する
2 に答える
1305 参照

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 を使用しています。

何か案は?

0 投票する
1 に答える
5259 参照

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