簡體   English   中英

Git:在GitLab / GitHub存儲庫中刪除未跟蹤的文件,而不會影響生產服務器的文件

[英]Git: Remove untracked files in GitLab/GitHub repo without affecting production servers' files

我是Git的新手。 在提出問題之前,請先介紹一下我的工作流程。

我最初將我的整個項目推到了GitLab,將回購克隆到了開發(原始主服務器)和生產(原始生產)服務器上,並且此后設置了一個Webhook來觸發開發服務器上的git pull origin master請求當我推送到master分支時。

對結果感到滿意后,我將“ master”分支與“ production”分支合並,該分支還為生產服務器附加了一個webhook( git pull origin production )。

由於我的項目主要是(90%)模板文件,因此我想從GitLab服務器存儲庫中刪除一些文件(這些文件將永遠不會更改,例如配置文件,系統文件),而又不影響(刪除)開發服務器和生產服務器上的文件。

我已經在本地副本上設置了.gitignore文件以取消跟蹤這些文件。

但是,如何在不刪除開發和生產服務器上的這些文件的情況下,“清理” GitLab服務器上的存儲庫?

我發現了這一點: 在Git Repos中取消跟蹤文件而不刪除它們 這似乎完全符合我的情況,但沒有幫助。

在遵循上述發布過程之后,當我嘗試推送到GitLab時,我收到以下消息:

error: failed to push some refs to 'http://git.mygitlab.com/myproject.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

另外,如果有人對我是否正確處理我的工作流程有任何建議,也將不勝感激。

但是,如何在不刪除開發和生產服務器上的這些文件的情況下,“清理” GitLab服務器上的存儲庫?

最好,如果您有權訪問部署服務器,請執行以下操作:

  • git rm --cached這些文件git rm --cached在prod中(在production分支中)並將其推送到GitLab
  • git rm --cached這些文件git rm --cached在dev上(在dev分支中)並將其推送到GitLab
  • 拉到本地,添加您的.gitignore文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM