簡體   English   中英

在Git中處理每個分支中需要不同的文件

[英]Handling Files in Git that need to different in every branch

我問自己如何處理以下情況。

我在兩個不同的生產系統上有兩個不同的分支,在git文件夾中需要使用config xml文件,並且我需要將其更改為其他文件夾。 現在,我們總是從開發分支合並到兩個分支。

現在,恐怕有人會將錯誤的配置文件合並到生產分支之一中。

我該如何處理這種情況? 我不想.gitignore文件並手動處理它們...

問候

讓我們將分支稱為dev,prod1和prod2。

只要您只合並dev-> prod1和dev-> prod2,您就不會有問題,並且prod1或prod2中對$ file.xml的本地更改將保持良好且彼此獨立。

如果有人合並了prod1-> dev或prod2-> dev,您將在某個時候遇到問題。 prod1-> prod2和prod2-> prod1同樣。

我通常在小型團隊中工作,只是告訴人們不要以錯誤的方式進行合並,僅此而已。 如果您在某些需要自動化這些事情的企業公司工作,您可能會想出一些強制執行此操作的方法,但就我個人而言,我認為這太過分了。

我通常將依賴於特定環境的配置文件保存在單獨的“ contrib”文件夾中。 因此,我可以將它們置於版本控制下,但必須將它們復制到預期位置(手動)。 我通常將“設置”腳本添加到contrib文件夾中:

./
  contrib/
          prod1/
                application.config
                prepare.sh
          prod2/
                application.config
                prepare.bat
          team1/
                application.config
                prepare.bat
          team2/
                application.config
                prepare.sh

該示例假定生產系統使用不同的操作系統,並且需要不同的“准備”腳本(以復制配置文件並執行其他操作),並且具有不同開發環境的團隊在同一個項目上工作。

您可以添加一個update的,你不希望從其他分支泄漏到變化回購鈎prod1prod2 update掛鈎中,您可以檢查哪些路徑受推送影響,如果您不想觸摸這些路徑,則可以拒絕它。

該解決方案實際上將阻止對那些xml文件的任何修改,我猜這並不是您想要的(如果文件確實在版本控制下,則您希望能夠創建它們的新版本)。 為了克服此限制,您可以向一個用戶授予將更改推送到這些文件的權限。

Git Book包含一個示例 ,該示例說明如何在Git存儲庫上創建update掛鈎,包括如何獲取用戶名(用於SSH和其他類型的訪問)。 查看鏈接以獲取有關如何實際編寫該鈎子的更多信息。 請記住,鈎子只是可執行文件(或腳本),因此您實際上可以使用您選擇的語言來編寫它們。

暫無
暫無

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

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