php - Git ignore 怎麼只不追蹤本機文件,也不刪除遠端的文件?
大家讲道理
大家讲道理 2017-05-25 15:08:28
0
2
1221

通常的git ignore都是自己本地的檔案不再追踪,並且push之後會刪除遠端的這個檔案。

我的需求是,本地文件不再追踪,也不刪除遠端的文件,否則遠端倉庫的程式碼就壞了,想想看,db.config文件從倉庫中被刪除是多麼可怕的事實。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(2)
世界只因有你

首先本地不追踪和遠端倉庫不刪除這兩者不能同時獲得,因為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文件不需要改動提交的,除非是真的是整個專案需要修改才要提交

覺得麻煩或設定檔多的話,可以寫個腳本,用一些sed的指令就可以達到一鍵修改所有設定的效果,我一般都是這麼做的,腳本裡面把開debug、調php.ini裡面掃描php檔案變化的間隔時間等工作做了

过去多啦不再A梦

你的需求可以做到,但這不是問題。問題在於設定檔的管理。

我通常是這麼做:不同環境不同的配置文件,config.xxx。不同的環境透過環境變數或命令列參數或軟連結(到同一個名字,例如 config,這個檔案不會放到倉庫裡)來區分,載入對應的設定檔。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!