草庐IT

format-patch

全部标签

Git 错误 : "fatal: corrupt patch at line 36"

我有一个这样结尾的Java文件:}}而且我前段时间错误地把末尾的换行符擦掉了,但是直到今天我在提交时收到Git-GUI的错误消息时才好fatal:corruptpatchatline36我尝试添加缺少的换行符,但Git似乎无法正确处理它:在添加换行符之前:}}\Nonewlineatendoffile添加换行后:}-}\Nonewlineatendoffile+}它仍然给我那个错误。我尝试还原更改并仅添加换行符而不对文件进行其他更改,但这也无济于事。编辑:添加两个甚至三个换行符也无济于事。EDIT2:只有在最后一个block中提交行时才会发生此错误。 最佳答

git - git patch 分支的子范围的最佳方法是什么?

在Subversion中,使用“svnmerge-ra:bmybranch”很容易merge分支中的一系列变更集/差异。但是在git中,我发现只能从一个分支中挑选一个提交来将该补丁应用到我当前的工作分支。所以我想知道是否有一种快速的方法可以将错误修复分支中两个标记之间的所有提交一次性应用到我当前的主分支? 最佳答案 执行您正在寻找的操作的最简单方法是使用gitrebase。这是一个食谱。假设标签A是您要选择的补丁系列所基于的提交,而标签B是该系列中最后一个补丁的提交。另外,假设br是当前分支的名称,也是应该应用新补丁系列的分支。#C

windows - 不能将 git add 与 --patch 选项一起使用

我最近将Git更新到版本2.7.2.windows.1(我正在运行Windows764位)。更新后一直无法运行gitadd与-p某个目录(或其子目录)中名称为_的文件的选项(下划线)。gitstatus正确报告我的文件有更改:PSC:\Users\Carl\www\dl>gitstatusOnbranchdevelopYourbranchisup-to-datewith'origin/develop'.Changesnotstagedforcommit:(use"gitadd..."toupdatewhatwillbecommitted)(use"gitcheckout--..."to

git - 获取错误消息 '' 致命 : sha1 information is lacking or useless"when apply a patch using "git am -3"

我正在尝试使用gitam-3“补丁路径”将一系列补丁从一个git存储库应用到另一个git存储库。我按顺序应用它们,从补丁1-4开始,效果很好。但是当我来到第5个补丁时,我收到错误提示“fatal:sha1informationislackedoruseless”。我转到应用补丁的git存储库,我确实看到了文件“dev/afile”。所以我想知道为什么git会提示“缺少或无用的sha1信息(dev/afile.c)”,我该如何解决我的问题?$gitam-3~/Tmp/mypatches/0005-fifth.patchApplying:rpmsg:Allowdevicestousecus

git - 你如何将 git add patch -p mode 与 diff 的 ignore-all-space 结合起来

如何使用补丁模式执行gitadd但忽略空格更改。该用例适用于重新格式化文件并对其进行更改的情况。我想先单独提交真正的代码更改(如gitdiff-wpath所示),然后将重新格式化作为单独的提交提交。 最佳答案 这是对relatedquestion的改编.gitdiff-w--no-color|gitapply--cached--ignore-whitespace它的好处是您无需使用stash、临时文件或对您的工作文件夹执行reset--hard。附录上面的解决方案只改变了除了空白编辑之外的阶段。这没有解决补丁问题,尽管在这种情况下使

powershell - Windows 中的 Git Shell : patch's default character encoding is UCS-2 Little Endian - how to change this to ANSI or UTF-8 without BOM?

在Windows中使用GitShell创建diff补丁(使用GitHubforWindows时),补丁的字符编码将为UCS-2Little根据Notepad++的Endian(参见下面的屏幕截图)。我怎样才能改变这种行为,并强制git使用没有BOM字符编码的ANSI或UTF-8创建补丁?因为无法应用UCS-2LittleEndian编码的补丁而导致问题,我必须手动将其转换为ANSI。如果我不这样做,我会收到“fatal:unrecognizedinput”错误。从那时起,我也意识到我必须在Notepad++中手动将EOL从Windows格式(\r\n)转换为UNIX(\n)(编辑>EO

git - key_load_public : invalid format

我使用PuTTYkey生成器生成带有密码的4096位RSA-2key。我保存了.ppk和一个openSSL格式的公钥。putty格式公钥不起作用。无论如何,我的错误如下:$ssh-Tgit@github.comkey_load_public:invalidformatEnterpassphraseforkey'/c/Users/Dan/.ssh/id_rsa':HiDan!You'vesuccessfullyauthenticated,butGitHubdoesnotprovideshellaccess.有什么问题?我使用Pageant加载key,并使用GitBash尝试ssh连接。我

git - clang-format 可以告诉我是否需要更改格式吗?

有没有一种方法可以在报告文件是否符合指定格式的模式下运行clang-format?一种试运行模式,它报告是否需要更改,但不进行更改。理想情况下,如果文件需要更改,我希望clang-format只返回一个非零退出代码。或者,更理想的是,一个非零退出代码和一个需要在标准输出上更改的文件列表。我试图让问题保持通用,以便更多人可以回答,但我想做的是编写一个git预提交Hook,它将拒绝任何与预期的.clang不匹配的提交-格式。在索引中的文件列表上运行clang-format很容易。但是很难知道clang-format是否真的改变了什么。我有一个基于-output-replacements-x

git - 'git format-patch and ' git diff' 有什么区别?

我没有看到“gitformat-patch”和“gitdiff”的输出之间有什么区别,有什么区别吗?我不能使用“gitdiff”生成补丁然后使用gitapply应用它吗?我的问题是我在索引中添加了更改,但显然gitformat-patch只接受提交,所以如果我可以使用diff的输出,那么我可以使用此命令为索引:gitdiff--cached>index.patch 最佳答案 使用gitformat-patch创建的补丁也将包含一些关于提交的元信息(提交者、日期、提交消息……),并将包含二进制数据的差异。一切都将格式化为邮件,以便轻松

git - 'git add --patch' 来包含新文件?

当我运行gitadd-p时,git是否可以选择新创建的文件作为hunks来选择?因此,如果我创建一个名为foo.java的新文件,然后运行​​gitadd-p,git不会让我选择要添加到索引中的文件内容。 最佳答案 当我在新文件(未跟踪文件)上尝试gitadd-psomeNewFile.txt时,git只会输出Nochanges.并停止。我必须告诉git我打算先跟踪新文件。gitadd-NsomeNewFile.txtgitadd-p但是,由于该文件未被跟踪,它会显示为一个无法拆分的巨大块(因为它是全新的!)。所以,然后我需要将大块