項目開發的時候,有些公共的配置文件修改后不想提交,則時候需要怎么做呢?這根據不同情況使用不同的命令
遠程倉庫沒有,而本地文件有
這種情況,就是遠程倉庫中沒有,是自己在本地配置的文件不想提交,這時候只要在該文件同級目錄下配置.gitignore文件,.gitignore文件中加入配置文件的名字即可,.gitignore文件是git用來設置不需要提交遠程倉庫的文件的配置文件,但前提是遠程倉庫中沒有對應的文件提交過。
遠程倉庫有,本地文件也有但已修改
這種情況,就是從遠程倉庫拉取下來到本地的配置文件被修改了,但修改不想被跟蹤提交,這時候可以使用兩個命令:
- 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跟蹤本地文件修改