Git忽略已经提交过一次文件Git忽略文件
1、从未提交过的文件可以用.gitignore
也就是添加之后从来没有提交(commit)过的文件,可以使用.gitignore忽略该文件
该文件只能作用于未跟踪的文件(Untracked Files),也就是那些从来没有被 git 记录过的文件
比如,忽略log/下的日志文件,可以在.gitignore中写
cat .gitignore log/*
2、已经推送(push)过的文件,想从git远程库中删除,并在以后的提交中忽略,但是却还想在本地保留这个文件 (推荐平时用这个方法进行版本控制)
1
|
git rm --cached Xml/config.xml |
后面的 Xml/config.xml 是要从远程库中删除的文件的路径,支持通配符*
比如,不小心提交到git上的一些log日志文件,想从远程库删除,可以用这个命令
备注:使用git rm --cached删除暂存区和版本库的文件,但保留了工作区的文件
此时如果想将全部文件重新更新下追踪情况和.gitignore保持一致,可以按照如下步骤操作(这个操作后本忽略的文件会从远端删除,但保留本地的)
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
3、已经推送(push)过的文件,想在以后的提交时忽略此文件,即使本地已经修改过,而且不删除git远程库中相应文件(这种适合少量文件的控制,不推荐整体这样操作)
git update-index --assume-unchanged Xml/config.xml
后面的 Xml/config.xml 是要忽略的文件的路径。如果要忽略一个目录,打开 git bash,cd到 目标目录下,执行:
git update-index --assume-unchanged $(git ls-files | tr '\n' ' ') #仅限linux git update-index --assume-unchanged . #Windows上点就代表全部
或者指定目录地址
git update-index --assume-unchanged ./thinkphp/
|
#备注:平时用git进行版本控制的话
推荐的流程是
创建至少2个分支管理代码
code分支管理完整的代码
master 分支管理核心代码,远端可去掉被忽略的文件方便和服务端及时同步代码
推荐还是.gitignore控制
部署方案:
方案1、
对本地master 分支全部代码打包后手动传到服务器上,然后服务器上及时拉取更新即可
方案2、
服务器上先拉取远端master分支的代码,然后服务器上master分支再合并远端code分支的代码