2013-08-03 90 views
1

我有一個像這樣的目錄結構:〜/ main/sub。在主文件夾中,我有一個git存儲庫。它忽略子目錄(主目錄中有更多內容)。我需要這兩個分開的源,所以我在子目錄中添加了一個新的git回購。但我需要同時承諾和推動他們。所以,我將以下代碼添加到主目錄庫中的commit-msg鉤子。Git commit每當我嘗試使用鉤子時崩潰

echo "Commiting Content" 

now=$(date +"%c") 
cd sub 
git add --all . 
git commit -a -m "$now Update" 

echo "Commiting Content complete!" 

但每次我運行一個提交時間,這段代碼將執行,但它會崩潰。 index.lock文件將保留在sub目錄的.git文件夾中。它甚至不會將文件添加到提交。當我轉到子文件夾並使用git status它會告訴我還有未跟蹤的文件!

然後我把代碼放在一個單獨的bash腳本中,放在同一個hooks文件夾中。在終端執行它,它的工作!爲什麼這個工作和鉤子文件失敗?

回答

0

鉤子運行在你的git倉庫的根目錄下。如果main是根目錄,則只需要執行cd sub而不是cd main/sub

你使用git submodules?它可能適用於你的情況;它不會同時提交兩次回購,但如果是main的子模塊,則可以先提交sub,然後將此提交作爲更改添加到main並提交。通過這種方式,其他人可以檢出main,並將最新的sub版本修改爲主要版本。

+0

對不起對不起...我只做CD子...其實它在主/迪爾/子 – THpubs

+0

崩潰是否給出任何輸出? – flyx

+0

不會。當我提交給main時,它執行上面的命令並顯示sub也被提交。但不是。 index.lock文件就在那裏。 – THpubs

相關問題