我正在处理将被集成到原始仓库中的错误,并且很多文件在文件末尾没有换行符。
有没有办法让Git忽略这一点并允许我在没有出现的情况下进行提交?
我知道使用git diff你可以--ignore-space-at-eof
来隐藏它,但是当我执行git add
时如何才能实现这一点?
需要提交和推送文件而不向文件添加换行符,也不要让提交在最后显示需要换行符。
我知道文件中没有添加换行符,但我需要一种方法来禁止“文件末尾没有换行符”的警告信息
答案 0 :(得分:2)
需要提交和推送文件而不向文件添加换行符,也不要让提交在最后添加换行符。
“文件末尾没有换行符”消息只是一个警告。此消息不会阻止提交。
确实,下面的代码就是这样做的。创建的文件没有换行符(-n
选项会处理此问题)。该文件暂存然后提交。然后,相同的文件被更改,仍然没有添加换行符,并且进行了新的提交。
$ cd /d/temp
$ mkdir test && cd test
$ git init .
Initialized empty Git repository in d:/temp/test/.git/
$ echo -n test > file.txt # Create a file without a trailing newline
$ git add .
$ git commit -m "Initial commit"
[master (root-commit) b99fc8b] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 file.txt
$ echo -n ing... >> file.txt # Append some text to the same file (still without a newline)
$ git add .
$ git commit -m "Fixing bug without adding a trailing newline"
[master f0be668] Fixing bug without adding a trailing newline
1 file changed, 1 insertion(+), 1 deletion(-)
查看最新提交将显示该流程中未添加换行符
$ git show HEAD
commit f0be6684dafa85384984e7a725c2fa854183d1d0
Author: nulltoken <who@where.com>
Date: Sat Oct 5 12:32:08 2013 +0200
Fixing bug without adding a trailing newline
diff --git a/file.txt b/file.txt
index 30d74d2..2ae6cf4 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1 @@
-test
\ No newline at end of file
+testing...
\ No newline at end of file
因此Git 不会自动为您添加换行符。但是,如果您发现这种情况,则在保存文件之前,您的IDE或文本编辑器很可能会为您执行此操作。在这种情况下,浏览选项并进行适当的更改。