21

だから私は自分のgit devブランチにdiffファイルを適用しようとしていました。私が適用したかった差分は、こちらです: https://github.com/mbabker/joomla-cms/compare/JHtml_move.patch

使ったgit apply PATH_TO_PATCH.patch

今それを適用しようとすると、

fatal: git apply: bad git-diff - expected /dev/null on line 47

事は47行目の読み取りです--- /dev/null

別のフォーラムで、パーツの後に末尾の空白があると誰かが言っているのを見ましたが、そう/dev/nullではありません。

その助けがあれば、9、10、11、12、および13行目の末尾の空白のエラーもスローされます-末尾の空白ではないにもかかわらず。

いずれにせよ、差分はgitによって生成されています-私はそれをコピーしてメモ帳に貼り付けています。

私も使用してみましcurl https://github.com/mbabker/joomla-cms/compare/JHtml_move.patch | git amたが、場所を指定せずにエラーが発生します。

curl の試行からのエラー メッセージ

行が実際に存在するときに致命的なエラーが発生する理由についてのアイデアはありますか????


@IvanZuzak への更新を追加しようとしましたが、git am --ignore-space-change --ignore-whitespace PATH_TO_PATCH.patch最初に(これがダウンロードされたパッチであるため)電子メールが無効であるというエラー(htmlコードに変換されていた)を受け取ったので、それを修正しようとしましたが、スローし続けました時々アップします。それからそれは言っprevious rebase directory PATH_TO_GITHUB_BRANCH/.git/rebase-apply still exists but mbox given.た。そこで、ブランチ .git フォルダー内の rebase-apply フォルダーを削除することを提案するthisを見つけました。それで私はそれをしました、そして私は再び無効な電子メールエラーを受け取りました(HTML形式から両方を変更したにもかかわらず)

4

6 に答える 6

44

私も同じ問題を抱えていました:

fatal: git apply: bad git-diff - expected /dev/null on line 47

しかし、47 行目は--- /dev/null. 私が見つけた問題は、行末が UNIX 形式ではなく Windows 形式であるということでした。Notepad ++で行末をUNIX形式に変換すると、問題が解決しました。

于 2013-09-12T19:38:37.087 に答える
4

同じ問題がありました。Git Bash を開いて (Cygwin も動作します)、次のことを行いました。

dos2unix.exe <patch-file>

その後、パッチを完全に適用することができました。

于 2014-11-04T19:43:28.910 に答える
0

同じ問題がありました。

fatal: git apply: bad git-diff - expected /dev/null on line 96

または、すべての行末を Unix 形式に変換すると、次のようになります。

error: patch failed: <file>:81
error: <file>: patch does not apply
...

git apply --ignore-whitespace <patch>.patchUnix の行末で動作しました。

于 2015-05-20T11:34:07.930 に答える