我知道SO上有十几个帖子。有些可以追溯到' 12。我无法让它发挥作用。在现代世界的场景中。我有一个angularJS项目,其结构类似于
.
├── app
│ ├── app.js
│ ├── assets
│ ├── bower_components
│ ├── controllers
│ ├── index.html
│ ├── services
│ └── views
├── bower.json
├── e2e
│ ├── pages
│ ├── protractor.conf.js
│ └── scenarios
├── karma.conf.js
├── LICENSE
├── package.json
└── README.md
|__ .gitignore
在我的bower_components中,我编辑了一个模块以满足我的需求,我需要提交它以便每个人都能反映出变化。但不是所有的bower_components。
所以我在app / bower_components / chartist中有一个模块,我想提交休息,我想忽略。
从here我试过这个
logs/*
!.gitkeep
node_modules/
!app/bower_components/
app/bower_components/*
!app/bower_components/chartist
tmp
.DS_Store
.idea
app/jspm_packages
它不起作用。在我的git状态中,我将其视为输出
.gitignore~
app/bower_components/
它包括所有bower_components。为什么?如何仅包含chartist文件夹而忽略其余部分? 排除规则太令人困惑。任何人都可以为我简化它吗?
编辑:我的问题是询问如何在.gitignore中添加文件夹,但在其中留下了一个子文件夹。我需要跟踪变化。我不明白别人怎么能考虑复制这个问题。
答案 0 :(得分:1)
Git将继续跟踪回购中的文件,即使它们被忽略。如果在将.dit添加到.gitignore时检入了所有app/bower_components
,git仍会跟踪对repo中已存在的任何文件的更改。如果你在那里创建一个新文件,它将被忽略。
如果您只想跟踪一个文件,请从存储库中删除其余文件。现在您可以gitignore目录,然后git add -f app/bower_components/chartist
。这会将文件添加到repo,覆盖你的gitignore。将跟踪对文件的更改。
或者,将您的gitignore与!app/bower_components/chartist
行一起使用。您不需要强制添加,它可以作为您有意不忽略该文件的文档。
答案 1 :(得分:0)
创建一个.gitignore
文件,为此,您只需创建一个filename.txt
文件并更改扩展名。
然后通过以下命令更改该文件的名称: -
rename filename.txt .gitignore
然后你可以打开文件并写下你不想在存储库中添加的所有文件。
app/bower_components/
模式目录/排除名为dir的目录和(隐式)其下的所有内容。使用dir /,Git永远不会在dir下查看任何内容,因此永远不会将任何“un-exclude”模式应用于dir下的任何内容。
app/bower_components/*
!app/bower_components/chartist
模式目录/ *没有说明dir本身;它只是排除了dir下的所有内容。使用dir / *,Git将处理dir的直接内容,使其他模式有机会“取消排除”某些内容(!dir / sub /)。