项目开发的时候,有些公共的配置文件修改后不想提交,则时候需要怎么做呢?这根据不同情况使用不同的命令
远程仓库没有,而本地文件有
远程仓库中没有对应的文件提交过。
远程仓库有,本地文件也有但已修改
这种情况,就是从远程仓库拉取下来到本地的配置文件被修改了,但修改不想被跟踪提交,这时候可以使用两个命令:
- 1、git update-index --assume-unchanged ${文件路径}让git不再跟踪${文件路径}的更新了;当项目开发完成后又想将该配置文件的修改更新提交至远程仓库,就解除不跟踪设置,使用命令:git update-index --no-assume-unchanged ${文件路径},即可使git再次跟踪${文件路径}。如下:
git update-index --assume-unchanged "/root/tem/java/web/application-dev.yml" //git关闭跟踪文件修改提交
git update-index --no-assume-unchanged "/root/tem/java/web/application-dev.yml"//git打开跟踪文件修改提交
同理,设置符合特定命名的文件、特殊后缀的文件、特定目录下的所有文件都是命令:git update-index --assume-unchanged
git update-index --assume-unchanged "/app/*.xml";//关闭跟踪app目录下后缀为.xml的文件
git update-index --assume-unchanged "/app/";//打开跟踪app目录下的所有文件
assume-unchanged:我的理解是关闭本地文件与远程仓库跟踪,不再影响或被影响远程仓库,因此一旦使用assume-unchanged,文件将不再从远程仓库pull更新,也不再push推送远程仓库了。
- 2、所有如果即想要远程仓库对应文件的更新,又不想要将自己本地的修改提交,这可以使用命令:git update-index --skip-worktree。skip-worktree:不会关闭本地文件对远程仓库的跟踪,只是告诉Git不要跟踪对本地文件的更改,pull时会拉取最新的更新,但要更新则需要no-skip-worktree再pull拉取合并最新更新。
git update-index --skip-worktree "/app/tep/ap.txt"//关闭GIT跟踪本地文件修改
git update-index --no-skip-worktree "/app/tep/ap.txt"//打开GIT跟踪本地文件修改