2012-04-14 18 views
0

我得到的是一個本地存儲庫和兩個遠程存儲庫(一個bare被稱爲裸和非裸被稱爲dev)。Git:簡單的部署,我怎樣才能避免'拉不可能,因爲你有未合併的文件'

我想要實現的是一個簡單的部署,以便當我推送到裸存儲庫時,dev存儲庫將引發更改。

我使用的是後收到鉤在裸倉庫簡單地做: -

cd (path-to-dev-repo) 
unset GIT_DIR 
git reset --hard HEAD # This is my failed attempt at stopping the merge conflicts 
git pull origin master 

當我修改我的本地庫,並將其推到裸當開發改掉把它給我喜歡的東西: -

CONFLICT (add/add): Merge conflict in application/01_sql_schema.sql 

但是我所做的唯一的文件更改對本地文件 - 我不明白爲什麼改變不能合併時自動他們僅僅在一個地方改變。

任何幫助,非常感謝。

編輯:替代可能的解決方案

它會更好有2個裸存儲庫,並從鉤檢出發展一到所需的文件夾?

+0

你有沒有試過在你的鉤子頂部取消設置GIT_DIR? – 2012-04-14 12:10:57

+0

@DietrichEpp道歉 - '未設置GIT_DIR'在'git reset --h ...'上方的鉤子中 - 我編輯了這個問題。 – rgvcorley 2012-04-14 12:13:06

回答

1

你爲什麼要使用回購所部署的版本?

只需使用GIT_DIR=path/to/app git checkout -f即可將裸露回購的文件簽出到應用程序位置,並避免出現類似問題。

+0

因爲我沒有git的經驗:)這似乎是一個更好的解決方案。據推測,我也可以結帳一個特定的分支,所以例如在裸回購中有一個分支用於分段和製作,並將所有這些分支結帳到我們的鉤子到他們各自的位置。因此,發佈修復意味着編輯生產分支並推送到裸倉庫 - 這是一種明智的方式嗎? (我本質上是獨自開發,還有其他幾個人偶爾進行控制) – rgvcorley 2012-04-15 09:51:56

+0

@rgvcorley是的,聽起來不錯 – manojlds 2012-04-15 10:13:52

0

嘗試積攢的變化,然後再把他們大跌眼鏡:

cd (path-to-dev-repo) 
unset GIT_DIR 
git stash 
git pull origin master 
git stash pop 
+1

'藏匿流行'是它自己的合併,因此可能會發生同樣的問題。 – GoZoner 2012-04-14 12:46:55

+0

不幸的是我也遇到了同樣的問題。 – rgvcorley 2012-04-14 13:19:04

相關問題