我想将当前目录中的所有文件添加到git:
git add .
error: open(".mysql_history"): Permission denied
fatal: unable to index file .mysql_history
没关系。该文件恰好位于此目录中并由root拥有。我想添加所有其他文件。有没有办法做到这一点,而无需手动手动添加每个文件?
我知道我可以添加要排除或.gitignore的文件,但是我想让它根据权限忽略一些东西(这样的其他文件很可能会在目录中结束,并添加它们一直到.gitignore是痛苦的。)
答案 0 :(得分:39)
使用git add --ignore-errors .
这仍然会给不可读的文件带来错误,但不是致命的文件。其他文件将被添加。
答案 1 :(得分:4)
如果您将该文件添加到.gitignore文件中会有帮助吗?因此,所有其他文件都将被版本化并且该文件将被忽略(除非您需要它)。
答案 2 :(得分:4)
sudo chown $(whoami): .git/objects/ -R; git add --ignore-errors .
为我修好了。上半场固定所有权,(有人以root身份登记,顽皮),后半部分犯了非致命错误。下半部分本身帮助我追踪root所拥有的目录。
答案 3 :(得分:3)
只需排除该文件即可。您可以将.mysql_history
添加到.gitignore
文件,也可以将其添加到.git/info/exclude
。
向.gitignore
添加条目将使用repo传播设置(因为.gitignore
与repo一起存储);将其添加到.git/info/exclude
会使其“个性化”,因为此文件不与repo一起传播。无论哪种方式,.mysql_history
和朋友都会忽略git-add
。
您可以在此man page上阅读有关使用Git忽略文件的更多信息。
答案 4 :(得分:3)
正如@ Dhanuka777在注释中指出的那样,如果您使用的是Visual Studio或Unity,则必须在git add之前关闭所有Visual Studio和Unity实例。
答案 5 :(得分:1)
我正在使用@matli的解决方案,但有时仍然遇到麻烦。 我最终使用
git add --ignore-errors --force .
答案 6 :(得分:1)
关闭您的IDE或使用您要上传的相关文件的任何内容解决了我的问题
答案 7 :(得分:0)
重新启动系统(Windows)解决了我的问题。
答案 8 :(得分:0)
关闭所有为我工作的Visual Studio实例
答案 9 :(得分:0)
请指定要添加的文件名; 例如:
git add index.html
我希望这对您也有帮助
答案 10 :(得分:0)
检查是否有一些与在后台运行的文件相关的任务/过程。
我意识到试图清空我的Temp文件夹。当无法删除文件时,Windows会通知您与之相关的过程。杀死该进程解决了我的问题。
这就是通常完成IDE或重新启动系统的原因。
答案 11 :(得分:0)
chmod 755 file.xxx
对我有用。