Git。如何添加不是那些返回错误的所有文件?
Git. How to add all files that are not those returning error?
使用 linux,我想在下面的脚本中使用 git:
cd /
sudo git init .
sudo git add -A
sudo git commit -m "Genesis."
我想这样做是为了查看在我安装某些软件时文件系统中哪些文件发生了更改,以及出于我的其他目的。
但是当我尝试 sudo git add -A
时,我收到了一些错误消息,例如:
error: readlink("proc/10/exe"): No such file or directory
error: unable to index file proc/10/exe
fatal: adding files failed
但这没关系,可能 /proc 文件对我帮助不大。
所以我会简单地添加所有文件,但忽略我收到错误的文件。
我尝试了 sudo git add -A --ignore-errors
并获得了更大的输出,不幸的是当 运行 git status
没有任何反应。
那么,我怎样才能添加所有不会导致错误的文件来实现我需要的呢?
您可以在您的目录中创建一个 .gitignore 文件并添加您要忽略的文件的名称。
步骤:
1. vi.gitignore
2. 将"proc/10/exe"添加到文件中。
3. 按 ESC 键和 :wq!
4. 现在再次尝试添加。 - 它应该可以工作。
在尝试了几件事后,我似乎找到了答案:
sudo find * -type f | sudo xargs git add
这个操作耗时很长,但奏效了。
事实是我 运行 sudo find {folder here} -type f | sudo xargs git add
/
.
中的每个文件夹
我试图在 vag运行t 虚拟机 (ubuntu/trusty64) 上执行此操作,操作后 .git 文件夹大约有 600MB。
然后我搜索了一个命令来获取所有未跟踪的文件并将它们添加到.gitignore.
所以我用了这个:
sudo git status -s | grep -e "^\?\?" | grep -v ".gitignore" | cut -c 4- >> .gitignore
不幸的是 7 pem "files" 没有放入 .gitignore:
"etc/ssl/certs/AC_Ra35z_Certic31mara_S.A..pem"
"etc/ssl/certs/Certinomis_-_Autorit31_Racine.pem"
"etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sa47lay41c41s41.pem"
"etc/ssl/certs/NetLock_Arany_=Class_Gold=_F51tan32s35tv31ny.pem"
"etc/ssl/certs/T34B40TAK_UEKAE_K36k_Sertifika_Hizmet_Sa47lay41c41s41_-_S34r34m_3.pem"
"etc/ssl/certs/T34RKTRUST_Elektronik_Sertifika_Hizmet_Sa47lay41c41s41_H5.pem"
"etc/ssl/certs/T34RKTRUST_Elektronik_Sertifika_Hizmet_Sa47lay41c41s41_H6.pem"
我尝试手动放置它们,但没有用。但我认为,为了检查目的,这不会有问题。
是否有办法将此文件放入。git忽略我想知道。
感谢您的帮助。
使用 linux,我想在下面的脚本中使用 git:
cd /
sudo git init .
sudo git add -A
sudo git commit -m "Genesis."
我想这样做是为了查看在我安装某些软件时文件系统中哪些文件发生了更改,以及出于我的其他目的。
但是当我尝试 sudo git add -A
时,我收到了一些错误消息,例如:
error: readlink("proc/10/exe"): No such file or directory
error: unable to index file proc/10/exe
fatal: adding files failed
但这没关系,可能 /proc 文件对我帮助不大。
所以我会简单地添加所有文件,但忽略我收到错误的文件。
我尝试了 sudo git add -A --ignore-errors
并获得了更大的输出,不幸的是当 运行 git status
没有任何反应。
那么,我怎样才能添加所有不会导致错误的文件来实现我需要的呢?
您可以在您的目录中创建一个 .gitignore 文件并添加您要忽略的文件的名称。
步骤:
1. vi.gitignore
2. 将"proc/10/exe"添加到文件中。
3. 按 ESC 键和 :wq!
4. 现在再次尝试添加。 - 它应该可以工作。
在尝试了几件事后,我似乎找到了答案:
sudo find * -type f | sudo xargs git add
这个操作耗时很长,但奏效了。
事实是我 运行 sudo find {folder here} -type f | sudo xargs git add
/
.
我试图在 vag运行t 虚拟机 (ubuntu/trusty64) 上执行此操作,操作后 .git 文件夹大约有 600MB。
然后我搜索了一个命令来获取所有未跟踪的文件并将它们添加到.gitignore.
所以我用了这个:
sudo git status -s | grep -e "^\?\?" | grep -v ".gitignore" | cut -c 4- >> .gitignore
不幸的是 7 pem "files" 没有放入 .gitignore:
"etc/ssl/certs/AC_Ra35z_Certic31mara_S.A..pem"
"etc/ssl/certs/Certinomis_-_Autorit31_Racine.pem"
"etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sa47lay41c41s41.pem"
"etc/ssl/certs/NetLock_Arany_=Class_Gold=_F51tan32s35tv31ny.pem"
"etc/ssl/certs/T34B40TAK_UEKAE_K36k_Sertifika_Hizmet_Sa47lay41c41s41_-_S34r34m_3.pem"
"etc/ssl/certs/T34RKTRUST_Elektronik_Sertifika_Hizmet_Sa47lay41c41s41_H5.pem"
"etc/ssl/certs/T34RKTRUST_Elektronik_Sertifika_Hizmet_Sa47lay41c41s41_H6.pem"
我尝试手动放置它们,但没有用。但我认为,为了检查目的,这不会有问题。
是否有办法将此文件放入。git忽略我想知道。
感谢您的帮助。