我們在組織中使用Git更新所有項目的服務器上的代碼。通常情況下,開發人員會忘記忽略應忽略的文件(如db config或data等),並將它們推送到我們的Git服務器。稍後將與運行代碼的實際服務器同步(藉助鉤子)。在服務器上執行git pull
以獲取最新代碼。防止忽略的文件在抽取期間被移除
現在,如果我將任何特定文件添加到.gitignore
並將其從index
和push
中刪除它使用下面的命令到服務器。
git rm --cached config.php
git add .gitignore
git commit -m "removed config file and ignored it"
git push origin master
這將從Git中刪除文件,但不是從我的本地回購。它也將阻止它被進一步追蹤。
然後,在服務器上執行git pull
這是刪除新忽略的文件導致的問題。簡單pull
命令如下在服務器上執行:
git pull origin master
我不想當從遠程Git倉庫中取出,以從服務器上刪除config.php
文件。
有時我會以相同的方式刪除大量的文件,這些文件應保留在服務器上(代碼運行時)。
什麼是最簡單和可編程的解決方案呢?我開發了一個Node.js程序,它登錄到服務器並以編程方式運行pull
命令。
http://stackoverflow.com/a/31289998/6309可以幫助 – VonC