有沒有一種內置的方式(或簡單的腳本),不會讓我檢查,如果任何子模塊有修改文件?就目前而言,我有無用的提交,因爲我無法返回到子模塊的狀態。Git不應該簽入如果子模塊有修改文件
回答
感謝VonC解釋我需要做什麼。對不起,我不知道Bash,所以這裏是Ruby版本。作品完美(迄今爲止,所有情況下,使用git 1.7.9.4版進行測試):
#!/usr/bin/env ruby
# http://stackoverflow.com/questions/12648585/git-should-not-checkin-if-submodule-has-modified-files
# October 1, 2012
# call this file pre-commit, make it executable and put it in .git/hooks
puts "Git pre-commit hook by Dan Rosenstark (yar)"
gitDiff = `git diff`
gitDiffWithSubmodules = `git diff --ignore-submodules`
if (gitDiff.length == gitDiffWithSubmodules.length)
puts "Submodules are clean, going right ahead!"
else
puts "One or more submodules are dirty, can't commit.'"
exit 1
end
優秀的反饋。 +1 – VonC
看起來像預提交鉤子「script for submodule hygiene」用於:
如果子模塊有未決的更改,則阻止提交。
該腳本在4年前寫的(也是patch/script見),所以也許git的差異現在包括檢測「髒」子模塊簡單的方法。
一如既往地感謝,我會檢查一下。我希望我不必做任何實際的腳本:) –
@Yar腳本需要聲明爲預提交鉤子,這意味着它將在每次提交時運行,但會阻止實際發生的提交,如果它返回錯誤(例如,在這裏,如果子模塊有未提交的更改)。另見https://github.com/chaitanyagupta/gitutils – VonC
是的,這些都很棒,特別是這個https://github.com/chaitanyagupta/gitutils/blob/master/submodule-hooks/pre-commit ...但是這行'git diff --cached --name-only | grep -F mySubmodule不起作用 –
- 1. Git子模塊修改後,git拉,我應該推?
- 2. git filter-tree和修改子模塊
- 3. Git Restkit子模塊.xcodeproj始終修改
- 4. git子模塊修改後的文件狀態
- 5. 修改子模塊
- 6. git子模塊沒有拉取子模塊中的文件
- 7. Sourcetree Git - 簽出文件禁用修改
- 8. 如果我合併子模塊,Git標籤被移除了嗎?
- 9. 如何將跟蹤的文件夾更改爲git子模塊
- 10. 創建git子模塊以替換複製和修改的文件
- 11. git子模塊:哪個存儲庫應該被用作'子模塊'?
- 12. 如何提交應該只讀的GIT子模塊的hg repo?
- 13. git子模塊應該如何設置laravel 4 composer包?
- 14. Git子模塊vs忽略文件
- 15. Git的子模塊與配置文件
- 16. Git - 子模塊到單個文件
- 17. 如何修復Git子模塊導致404找不到..?
- 18. 修改第三方代碼時Git子模塊工作流程
- 19. 使用子模塊創建git標籤
- 20. 修改Magento2模塊的css文件
- 21. 如何一個git子模塊的文件夾`.git`發送到父版本庫git的`/模塊/`文件夾?
- 22. 添加git子模塊時不需要的子文件夾
- 23. 應用該修改多個文件
- 24. 我應該修改哪個XML文件&&
- 25. 如何git標記所有子模塊?
- 26. 如果子模塊未初始化,如何解決git子模塊衝突
- 27. 重用Git子模塊的子模塊
- 28. 如何`git clone`不包括子模塊?
- 29. 子模塊的文件未簽出
- 30. 爲什麼添加現有的回購作爲子模塊修改.git/config?
當然,+1爲你的好問題;)(http://meta.stackexchange.com/questions/139/爲什麼要我應該提問/ 149#comment427433_149) – VonC