如何忽略在GIT

时间:2016-03-16 08:04:31

标签: git

我知道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中添加文件夹,但在其中留下了一个子文件夹。我需要跟踪变化。我不明白别人怎么能考虑复制这个问题。

2 个答案:

答案 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 /)。