为何GitHub创建.gitignore文件夹?是平台bug还是功能设计?
结论
这不是GitHub的bug,属于网页端新建文件的既定功能设计,和操作时的文件名填写疏漏共同导致的结果。
两种操作路径的逻辑差异
- 创建仓库时选择.gitignore模板:GitHub后台会直接在仓库根目录生成名为
.gitignore的文件,填充对应模板内容后提交,因此路径为reponame/.gitignore,符合预期。 - 空仓库创建后再在网页端添加.gitignore:此时走的是「新建文件」流程,GitHub网页端的新建文件功能支持在文件名栏输入带路径的文件名,系统会自动创建路径中不存在的文件夹。你操作时应该是在文件名输入栏最终填写的内容为
.gitignore/.gitignore,系统就会先创建.gitignore文件夹,再在文件夹内生成对应文件,最终路径就是你遇到的reponame/.gitignore/.gitignore。
修正方案
你可以直接通过网页端操作:把.gitignore文件夹内的.gitignore文件内容复制,在仓库根目录新建名为.gitignore的文件粘贴内容后提交,再删除多余的.gitignore文件夹即可。
如果用命令行操作,可以执行以下命令:
git mv .gitignore/.gitignore . git rm -r .gitignore git commit -m "Move .gitignore to root directory" git push
补充说明
Git的规则是:存放在仓库根目录的.gitignore文件会对整个仓库生效,存放在子文件夹内的.gitignore仅对当前子文件夹生效,因此你当前嵌套位置的.gitignore无法作用于整个仓库,需要移动到根目录才能正常使用。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

