搜尋

首頁  >  問答  >  主體

php - Git ignore 怎麼只不追蹤本機文件,也不刪除遠端的文件?

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

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

大家讲道理大家讲道理2781 天前1269

全部回覆(2)我來回復

  • 世界只因有你

    世界只因有你2017-05-25 15:10:28

    首先本地不追踪和遠端倉庫不刪除這兩者不能同時獲得,因為git在每次提交時都是以快照的形式,而不是說提交了幾個文件,所以說如果本地不追踪了,那麼提交時一定會預設刪掉這個檔案。

    解決方案:這種問題很常見,跟node_modules要不要提交遠端倉庫等相似,你提到了一句話---“遠端倉庫的代碼就壞了”,我需要糾正一下,並不是說node_modules要不要提交远端仓库等相似,你提到了一句话---“远端仓库的代码就坏了”,我需要纠正一下,并不是说git上面远端仓库的代码拿下来都是可以直接run的,百分之九十都是要改一些东西,配一些环境才可以work的,就比如我刚刚说的node_modules问题,没人会上传这么大的文件,只会上传一个 package.json上面遠端倉庫的代碼拿下來都是可以直接run的,百分之九十都是要改一些東西,配一些環境才可以work< /code>的,就例如我剛剛說的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檔案變化的間隔時間等工作做了

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-25 15:10:28

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

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

    回覆
    0
  • 取消回覆