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分支的代码

 

THE END