Keep it simple.

在使用git进行版本控制时,有时会将一些不需要被版本控制的文件,错误地提交到了git仓库中。比如eclipse或其它IDE自动生成的项目配置文件,还有mac系统生成的.DS_Store文件,以及Windows系统生成的thumbs.db文件、desktop.ini文件等等,这些文件都不应该被版本控制。

本文将介绍如何让git忽略跟踪指定文件和文件夹的方法。

最常见的,就是eclipse生成的.project文件、.classpath文件和.settings文件夹被提交到git仓库中了。由于这些文件会随不同的开发环境变化而变化,一旦被版本控制,就容易造成不同开发者间互相干扰,所以要让git忽略跟踪。首先,需要执行如下的git命令:

git rm --cached .project
git rm --cached .classpath
git rm -r --cached .settings/
git commit -m 'Untracking configuration files that generated by eclipse.'
git push

说明:命令git rm --cached file_to_untrack可删除文件。若要删除文件夹,需要添加-r参数,即git rm -r --cached folder_to_untrack

接着执行git commitgit push命令,就完成了将指定文件和文件夹从git仓库中删除的目的。

但是,这些文件依旧会在所有开发者的电脑上被eclipse再次自动生成,还存在着以后被提交上去的可能。另外,直接删除这些文件,会使该项目在eclipse中变得不再可用,这些文件对eclipse来说还非常关键!所以仅仅在git仓库中删除还不行,还需要在.gitignore文件中进行配置。配置如下:

/target/
/.settings/
/.classpath
/.gitignore
/.project

这样配置之后,开发者本地的eclipse项目配置文件将被忽略,无论怎样改变,git都会忽略它们的改变,因此再也不会被错误地提交上去了。

问题解决。

  • zhengqiang
  • 技术
  • 2015-04-22 01:57:15.0
  • 3289