84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
通常的git ignore都是自己本地的檔案不再追踪,並且push之後會刪除遠端的這個檔案。
我的需求是,本地文件不再追踪,也不刪除遠端的文件,否則遠端倉庫的程式碼就壞了,想想看,db.config文件從倉庫中被刪除是多麼可怕的事實。
光阴似箭催人老,日月如移越少年。
首先本地不追踪和遠端倉庫不刪除這兩者不能同時獲得,因為git在每次提交時都是以快照的形式,而不是說提交了幾個文件,所以說如果本地不追踪了,那麼提交時一定會預設刪掉這個檔案。
git
解決方案:這種問題很常見,跟node_modules要不要提交遠端倉庫等相似,你提到了一句話---“遠端倉庫的代碼就壞了”,我需要糾正一下,並不是說node_modules要不要提交远端仓库等相似,你提到了一句话---“远端仓库的代码就坏了”,我需要纠正一下,并不是说git上面远端仓库的代码拿下来都是可以直接run的,百分之九十都是要改一些东西,配一些环境才可以work的,就比如我刚刚说的node_modules问题,没人会上传这么大的文件,只会上传一个 package.json上面遠端倉庫的代碼拿下來都是可以直接run的,百分之九十都是要改一些東西,配一些環境才可以work的,就例如我剛剛說的node_modules問題,沒人會上傳這麼大的文件,只會上傳一個package.json文件,本地需要根據這個設定檔去設定本地資訊。
node_modules
run
work
package.json
work的,就例如我剛剛說的node_modules問題,沒人會上傳這麼大的文件,只會上傳一個package.json文件,本地需要根據這個設定檔去設定本地資訊。
你這個db.config文件也是一样的,你远端仓库上可以存一个db.config.default或者db.config.sample这样的文件,这里记录的是db.config文件的所有默认配置,但是每个人本地开发环境需要将db.config.default或者db.config.sample复制一份,重命名为db.config,然后将配置改为自己需要的,很有可能每个开发人员的本地配置都不一样,这时候把db.config加入.gitignore,一般来说.default或者.sample文件不需要改動提交的,除非是真的是整個專案需要修改才要提交
db.config
db.config.default
db.config.sample
.gitignore
.default
.sample
覺得麻煩或設定檔多的話,可以寫個腳本,用一些sed的指令就可以達到一鍵修改所有設定的效果,我一般都是這麼做的,腳本裡面把開debug、調php.ini裡面掃描php檔案變化的間隔時間等工作做了
sed
你的需求可以做到,但這不是問題。問題在於設定檔的管理。
我通常是這麼做:不同環境不同的配置文件,config.xxx。不同的環境透過環境變數或命令列參數或軟連結(到同一個名字,例如 config,這個檔案不會放到倉庫裡)來區分,載入對應的設定檔。
首先本地不追踪和遠端倉庫不刪除這兩者不能同時獲得,因為
git
在每次提交時都是以快照的形式,而不是說提交了幾個文件,所以說如果本地不追踪了,那麼提交時一定會預設刪掉這個檔案。解決方案:這種問題很常見,跟
node_modules
要不要提交遠端倉庫等相似,你提到了一句話---“遠端倉庫的代碼就壞了”,我需要糾正一下,並不是說node_modules
要不要提交远端仓库等相似,你提到了一句话---“远端仓库的代码就坏了”,我需要纠正一下,并不是说git
上面远端仓库的代码拿下来都是可以直接run
的,百分之九十都是要改一些东西,配一些环境才可以work
的,就比如我刚刚说的node_modules
问题,没人会上传这么大的文件,只会上传一个package.json
上面遠端倉庫的代碼拿下來都是可以直接run
的,百分之九十都是要改一些東西,配一些環境才可以work的,就例如我剛剛說的
node_modules
問題,沒人會上傳這麼大的文件,只會上傳一個package.json
文件,本地需要根據這個設定檔去設定本地資訊。你這個
db.config
文件也是一样的,你远端仓库上可以存一个db.config.default
或者db.config.sample
这样的文件,这里记录的是db.config
文件的所有默认配置,但是每个人本地开发环境需要将db.config.default
或者db.config.sample
复制一份,重命名为db.config
,然后将配置改为自己需要的,很有可能每个开发人员的本地配置都不一样,这时候把db.config
加入.gitignore
,一般来说.default
或者.sample
文件不需要改動提交的,除非是真的是整個專案需要修改才要提交你的需求可以做到,但這不是問題。問題在於設定檔的管理。
我通常是這麼做:不同環境不同的配置文件,config.xxx。不同的環境透過環境變數或命令列參數或軟連結(到同一個名字,例如 config,這個檔案不會放到倉庫裡)來區分,載入對應的設定檔。