我如何使用Git GUI签署文件?

Dar*_*age 20 git git-gui

我在.git文件夹的文件夹中创建了一个.gitignore文件,但在重新扫描存储库时,我仍然会收到我试图忽略的文件.

这是文件的内容.

# Ignored files
*.suo 
*.user 
bin 
obj 
*.pdb 
*.cache 
*_svn 
*.svn 
*.suo 
*.user 
*.build-res 
TestResults 
_ReSharper*
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?假设位于何处?

Von*_*onC 13

您需要确保您仍然看到的文件当前未提交或暂存.

如果删除它们(git rmgit rm --cached),然后将它们添加为私有文件,则将忽略它们.


AzP*_*AzP 6

你的档案看起来不错.只要确保你在每行的开头都没有任何空格,我花了4个小时才找到为什么我的.gitignore工作不正常; 原因当然是cut'n'paste问题,我在文件的开头有一个垂直的空格行.

git commit -a在确保您的.gitignore文件真正清除您不想要的所有内容之前,您应该小心.用或者标记每个文件(或使用通配符)git add *.cpp *.h- 或者 - 比如我更喜欢 - 在你进步时开发你的.gitignore,并git status在提交之前一直检查.

如果你想仔细检查你的.gitignore是否真的有用,试试吧

git ls-files --others -i --exclude-standard
Run Code Online (Sandbox Code Playgroud)

这应该列出您当前忽略的所有文件.

要清理你已经添加的文件(可能正在使用git add .,我们在开头犯了一个错误=])你可以这样做@VonC说:要么运行

git rm <filename>
Run Code Online (Sandbox Code Playgroud)

要么

git rm --cached <filename>
Run Code Online (Sandbox Code Playgroud)

清除所有无意添加的文件的另一个选择是彻底清理存储库,然后重新添加所有文件.如果要清除暂存区域中的所有内容,可以运行

git --rm cached .
Run Code Online (Sandbox Code Playgroud)

但请记住不要运行git add .直到你确定git status只列出你真正想要的文件库.

git的另一个非常有用的功能是它在使用通配符时不需要文件路径.如果你列出你忽略的文件,看看您要删除所有*.suo*.log文件,只需要运行

git rm --cached *.suo *.log
Run Code Online (Sandbox Code Playgroud)

并且git负责查找存储库中与该签名匹配的所有文件,无论它们位于树中的哪个位置.