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

时间:2010-02-23 14:48:25

标签: git git-gui

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

这是文件的内容。

# Ignored files
*.suo 
*.user 
bin 
obj 
*.pdb 
*.cache 
*_svn 
*.svn 
*.suo 
*.user 
*.build-res 
TestResults 
_ReSharper*

我做错了什么?假设文件位于何处?

6 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:6)

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

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

如果您想仔细检查您的.gitignore是否真的有效,try

git ls-files --others -i --exclude-standard

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

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

git rm <filename>

git rm --cached <filename>

清除您无意中添加的所有文件的另一个选择是彻底清理您的存储库,然后重新添加所有内容。如果您想清除暂存区域中的所有内容,you can run

git --rm cached .

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

git的另一个非常有用的功能是它在使用通配符时不需要文件路径。如果您列出了被忽略的文件,并且发现要删除所有*.suo*.log文件,请运行

git rm --cached *.suo *.log

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

答案 2 :(得分:2)

我尝试了多种方法让它工作,最后很简单:

您必须先提交.gitignore!

另外,如果您使用TortoiseGIT - GitEx提交工具,则可以选择编辑被忽略的文件。

答案 3 :(得分:1)

您找对了。 .gitignore应该位于同一个文件夹中,其中.git文件夹位于。里面的文件也看起来正确。但是,我顶部没有评论专栏..

答案 4 :(得分:0)

当我看到这个时,我会认为你忘了提交你的忽略文件。

答案 5 :(得分:0)

没有一个--rm缓存解决方案适合我。该文件需要编码为ASCII / ANSI。我也改变了行结尾,但仅此一点并没有修复它。我找不到有这些说明的网址(抱歉,原创海报!)但这对我有用:

  1. 如果您还没有安装Notepad ++,请安装它。 Textpad应该 也工作,但我使用Notepad ++。
  2. 使用Notepad ++打开.gitignore。
  3. 点击View |显示符号|显示所有字符。您可能会在每行末尾看到CR LF。
  4. 进行搜索并替换(ctrl + h),确保选中Extended(更低的角落)。搜索\ r \ n并替换为\ n。你会看到所有CR LF改为LF。
  5. 现在点击编码|用ANSI编码。
  6. 保存文件并退出。
  7. 从windows或git命令提示符的命令提示符中,无论你喜欢什么,当你执行git status时,它不应该在.gitignore中显示文件。