簡體   English   中英

是否可以跟蹤在遠程但不在本地目錄中創建的文件或將其添加到Git存儲庫中?

[英]Can I track or add to a Git repo a file that's created on a remote but not in local directory?

如果有一個文件直接添加到遙控器中,我也要從本地目錄中推送該文件,那么有一種方法可以將該文件添加到遙控器中,以便我可以拉取或獲取遙控器並獲取該文件或任何其他文件。新文件?

無論如何,這似乎是一種不好的做法,但是,可以說在WordPress安裝期間添加了一個文件,例如WP將自動創建的wp-config,現在它位於服務器上,而不是Git存儲庫中,除非我使用FTP將其移動或scp。 發生這種情況時的最佳做法是什么?

我想您要問的是,是否有辦法讓Git自動提交並推送新更改? 不,但是您可以使用任何喜歡的自動化工具來做到這一點。 但是,自動進行版本控制並不是一個好主意,您可能想要的是備份工具。

您關於WP在安裝過程中可能創建的配置文件的方案是濫用版本控制的一個很好的例子。 該配置文件僅對該特定計算機有用。 其他部署也將生成該文件。 如果他們倆都嘗試推送其版本,則會造成合法的沖突。 取而代之的是,在中央存儲庫中保留相當通用的版本,然后從那里進行部署。

如果要記錄每個部署的更改,請使用增量備份工具。


您可能擁有的每個部署都是一個克隆,但是本地更改是在其自己的本地分支上完成的。 永遠不要推送此本地分支(或者如果是,則僅出於存檔目的)。 如果您進行的更改通常適用於其他部署,例如錯誤修復,請僅將該更改推回。

您可能需要一個分支來進行本地更改,然后使用master推送修訂。 您可以在本地提交任何您想要的內容,包括生成的WP配置,這是對該部署的本地更改。

              [origin/master]
A - B - C - D [master]
             \
              E - F - G [local]

由於要對上游母版進行新更改,因此請獲取它們並在它們之上重新配置本地。

git checkout master
git pull

                      [origin/master]
A - B - C - D - H - I [master]
             \
              E - F - G [local]

git rebase master


                      [origin/master]
A - B - C - D - H - I [master]
                     \
                      E1 - F1 - G1 [local]

如果本地有更改可以提交到上游,例如錯誤修復或對通用模板或圖像的更改,請使用git cherry-pick 將該單個更改復制到master並將其推送。

git checkout master
git cherry-pick F1
git push

                           [origin/master]
A - B - C - D - H - I - F2 [master]
                     \
                      E1 - F1 - G1 [local]

如果您真的想將local服務器推送到中央服務器,請將其推送到為部署命名的分支。 可能是主機名或客戶端。 這僅用於存檔目的。

暫無
暫無

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

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