Github for Windows忽略.gitignore文件在Visual Studio中的作用。

3
我正在使用Github for Windows作为GUI来管理我的Git存储库,用于Visual Studio C#/MVC项目。(主分支托管在bitbucket.org上,因为现在需要保密,但这不是问题的根源。)
在前面十几次提交中,我将bin、obj和Debug等文件夹推送到主分支。然而,随着其他人开始有东西要推送,这自然会引起问题……
所以,我在Windows资源管理器中浏览了一遍我的存储库,并删除了所有这些临时文件/目录,然后提交/推送更改到主分支。然后,我删除了我的机器上的存储库,并下载了一个全新的副本。没有不必要的东西,万事大吉。
接下来,我从Github建议的忽略文件中下载了VisualStudio.gitignore,并将其放在我的存储库的根目录下。(希望这能贯穿整个项目?)
然而,当我启动Github for Windows并提交本地更改时,它仍然会找到所有/bin、/obj等文件夹。因此,我打开了一个shell并执行了'git diff',发现唯一不同的文件是“ProjectOrganics.v11.suo”(我相信在.gitignore文件中没有被明确忽略)…
我在想是否存在Github for Windows的工具问题,它不考虑.gitignore文件?或者主分支仍然跟踪这些目录,尽管它们已经从最新提交到主分支的版本中删除了?(我甚至从主分支上删除并重新构建了整个存储库…)
我还尝试使用'git rm --cached'手动删除这些目录,但是它找不到它们。我还没有能够找出' dir '的git等效命令,所以我不确定我是否在使用无效的文件路径,或者实际上不存在…
    ./projectname/               (repository root)
        .git/
        VisualStudio.gitignore   (the .gitignore)
        ProjectName/             (Solution)
            ProjectName.Doman/   (class library)
            ProjectName.Web/     (mvc project)
            ProjectName.sln
            ProjectName.suo
            ...etc

我希望它忽略 .Domain 和 .Web 文件夹中的 bin/obj 文件夹。VisualStudio.gitignore 是从 github 网站上粘贴过来的完全一样的副本。

1
“.gitignore” 在 Windows/VS 上对我来说完全正常。你是如何创建/编辑 “.gitignore” 的? - admdrew
1
请展示一下您的目录结构(代码文件夹的组织结构),.gitignore 文件的片段,以及 Git 存储库本身相对于它们的位置。也就是 .git 目录在哪里。 - mockinterface
@mockinterface 已经编辑了原始问题,并附上了我的目录图。 - Logan Black
@admdrew - 你说得对。我使用的文件名是VisualStudio.gitignore,但实际上应该只是.gitignore。我从Github下载了常见的VisualStudio忽略规则文件,所以我没有考虑到它会导致问题。 - Logan Black
1个回答

5
好的,问题出在文件名上。我从GitHub上下载了一个名为VisualStudio.gitignore的文件,并将其粘贴到我的目录中,认为它会起作用。
然而,正确的名称应该只是.gitignore——只有一个文件扩展名,没有名称。不幸的是,如果你尝试这样做,Windows资源管理器就会出错,所以你必须通过命令提示符或Github for Windows本身来创建它。
在Github for Windows图形界面中,右键单击要忽略的文件,选择“忽略文件”,这将创建.gitignore文件。然后,你可以复制/粘贴VisualStudio.gitignore的内容或任何你想使用的规则。

8
在Windows系统中创建一个以句点开头的文件是可行的,但这种方法并不十分直观。你需要在文件名前面和后面都加上一个句点(例如.gitignore.),这样Windows系统才能正确地创建这个文件。 - admdrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接