GIT是个十分受欢迎的版本控制器,尤为适合项目当中有新手的状况,由于除了服务器之外, 每一个人都有项目的完整历史,这就减小了由于项目管理员疏忽再加上新手的误操做致使灾难的发生。git
GIT新手最容易犯的一个错误就是没有添加.gitignore,而把不应上传的东西上传了, 而GIT老手有时会由于在规则里面写了个.*而致使.gitignore没有加入到版本控制当中, 过后才发现,但此时项目中已充斥了“垃圾”。服务器
此时项目管理者才追悔莫及,干净修改.gitignore并提交到版本控制当中。 但大错已铸成,新添的.gitignore不会影响已经加入到项目中的文件,GIT老手此时也可能没有什么好办法, 只能把不应有的东西手动删除掉,再从新提交。但更麻烦的是,这些“垃圾”可能还有用, 如Java项目中依赖的一些*.jar库文件,直接删了会出问题,要在修好项目后从新加回来。 若是只有几个文件还好,若是成百上千,这样操做,一天都不用干别的了。版本控制
但问题总会有聪明办法解决。GIT中用git rm --cached xxx
能够在不动项目当前工做空间的状况下, 将文件从当前(未提交)版本中移除。如此而来简单方法就出来了:code
git rm -r --cached . git add . git commit -m ".gitignore is now working"
在项目根目录执行简单三行命令,就先把全部文件从版本控制中移除,而后再从新加回来。 提交上传后,就发现新的.gitignore就今生效了,不应有的文件再也不被传来传去了。项目管理