背景是以前搭建了一個vue的專題類開發項目。功能主要是支持單頁面的專題類開發,並能夠經過文件夾名字進行分項目打包再經過Docker部署。出發點是在多人開發不一樣專題活動的時候避免衝突,然而在經歷了一次3人開發過程當中仍是出現了衝突,衝突主要出如今打包後的dist目錄。所以下降合併test/online分支出現充突的機率成爲該工程的痛點。vue
在多人協同開發中,每每有一些個性化配置文件是不須要合併到online分支的,好比記錄咱們的配置之類的文件,那麼在咱們修改後在online合併dev分支時這些文件可能會被覆蓋或是衝突,咱們可能須要手動去再次維護這些文件。
所幸git
爲咱們提供了這種場景的功能——合併策略(文檔直通車)。nginx
如下爲官方文檔關於合併策略概念的摘抄:
經過 Git 屬性,你還能對項目中的特定文件指定不一樣的合併策略。 一個很是有用的選項就是,告訴 Git 當特定文件發生衝突時不要嘗試合併它們,而是直接使用你這邊的內容。
官方文檔有些地方寫的比較模糊,這裏把總體流程經過步驟方式所有列舉出來,照抄便可:git
步驟一:定義一個虛擬的合併策略,全局配置不依賴任何項目任何分支code
git config --global merge.ours.driver true
PS:能夠經過git config -l
查看是否啓用以及其餘配置。ip
步驟二:在你項目中的online/master/生產等主幹分支的根目錄(與.gitignore
同級)添加一個配置文件.gitattributes
開發
步驟三:在.gitattributes
中添加你要忽略合併的文件(夾)文檔
dist merge=ours vue.config.js merge=ours nginx_activity.config merge=ours Dockerfile merge=ours
Tips: 上文中的dist
是個目錄,在配置文件中無需補充匹配的後綴/**/*
等部署
步驟四:切換其餘分支,修改一下涉及到忽略的文件。切回主幹分支,merge
驗證。get