Normalerweise verfolgt Git Ignore seine eigenen lokalen Dateien nicht mehr und die Remote-Datei wird nach dem Push gel?scht.
Meine Anforderung ist, dass lokale Dateien nicht mehr verfolgt werden und Remote-Dateien nicht gel?scht werden. Andernfalls wird der Code im Remote-Warehouse besch?digt. Denken Sie darüber nach, es ist schrecklich, dass die Datei db.config aus dem gel?scht wird Lager.
光陰似箭催人老,日月如移越少年。
首先本地不追蹤和遠端倉庫不刪除這兩者不能同時獲得,因為git
在每次提交時都是以快照的形式,而不是說提交了幾個文件,所以說如果本地不追蹤了,那么提交時肯定會默認刪掉這個文件。
解決方案:這種問題很常見,跟node_modules
要不要提交遠端倉庫等相似,你提到了一句話---“遠端倉庫的代碼就壞了”,我需要糾正一下,并不是說git
上面遠端倉庫的代碼拿下來都是可以直接run
的,百分之九十都是要改一些東西,配一些環(huán)境才可以work
的,就比如我剛剛說的node_modules
問題,沒人會上傳這么大的文件,只會上傳一個 package.json
文件,本地需要根據(jù)這個配置文件去配置本地信息。
你這個db.config
文件也是一樣的,你遠端倉庫上可以存一個db.config.default
或者db.config.sample
這樣的文件,這里記錄的是db.config
文件的所有默認配置,但是每個人本地開發(fā)環(huán)境需要將db.config.default
或者db.config.sample
復(fù)制一份,重命名為db.config
,然后將配置改為自己需要的,很有可能每個開發(fā)人員的本地配置都不一樣,這時候把db.config
加入.gitignore
,一般來說.default
或者.sample
文件不需要改動提交的,除非是真的是整個項目需要修改才要提交
覺得麻煩或者配置文件多的話,可以寫個腳本,用一些
sed
的命令就可以達到一鍵修改所有配置的效果,我一般都是這么做的,腳本里面把開debug、調(diào)php.ini里面掃描php文件變化的間隔時間等工作做了
你的需求可以做到,但是這不是問題。問題在于配置文件的管理。
我通常是這么做:不同環(huán)境不同的配置文件,config.xxx。不同的環(huán)境通過環(huán)境變量或者命令行參數(shù)或者軟鏈接(到同一個名字,比如 config,這個文件不放到倉庫里)來區(qū)分,加載相應(yīng)的配置文件。