吉蒂格诺:我应该做出改变吗?

时间:2017-11-17 09:22:52

标签: git gitignore

这个问题可能看似荒谬,但我有疑问。我不是git专家,但我通过命令行每天使用它5年,所以我已经习惯了。

以下是我无法解决的问题:

  • 我的一位有价值的同事开始了一个WordPress项目。他提交了回购中的每一个文件......糟糕的主意。
  • 我现在来项目,克隆项目(所以我的索引超级干净)。我首先在.gitignore文件中添加几个条目并提交它。在这些规则中,我添加了常规WP配置文件" wp-config.php"它将在每个实例(local / preprod / prod)上更改。容易。
  • 然后我用我的本地配置更改了这个特定的文件:

    me@myproject$ vi wp-config.php 
    me@myproject$ git st
    On branch develop
    Your branch is up-to-date with 'origin/develop'.
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
          modified:   wp-config.php
    
    no changes added to commit (use "git add" and/or "git commit -a")
    

为什么他这样做?为什么他不会忽略我的档案? 经过几次阅读,我看到一些研究员删除了文件,如:

git rm -r --cached wp-config.php

当然我们可以这样做但是我们必须提交文件删除,因为索引将文件发现为已删除(不是物理上的)。 它是忽略git仓库中现有文件的标准方法吗?

感谢您的帮助。

以下是我的.gitignore文件的副本:

# Ignore all logs files.
*.log

# Ignore the instance-based configuration.
wp-config.php

# Ignore cache, backups and uploaded files.
wp-content/advanced-cache.php
wp-content/backup-db/
wp-content/backups/
wp-content/blogs.dir/
wp-content/cache/
wp-content/upgrade/
wp-content/uploads/
wp-content/wp-cache-config.php
wp-content/plugins/hello.php

# Ignore some site-based root files.
/.htaccess
/sitemap.xml
/sitemap.xml.gz

# Ignore editor files.
.idea

# Ignore OS generated files.
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

1 个答案:

答案 0 :(得分:0)

您需要git rm --cached path/to/file并提交。如果您有大量文件,则可以从存储库根目录运行以下命令以从索引中删除被忽略的文件:git rm --cached $(git ls-files -i --exclude-from=.gitignore)

第二个命令检索.gitignore处理的被忽略文件,并将这些路径插入git rm --cached命令。请注意,如果在子目录中嵌套了.gitignore,则指向.gitignore文件,该文件将精确地清理这些单独的目录。

他的文件本身没有被删除的原因是因为.gitignore阻止自动添加与.gitignore文件中的模式匹配的文件。它本身不会删除已在索引中跟踪的文件。