回答
這樣做很少有很好的理由,但對於空提交,參數是--allow-empty
,而空消息的參數是--allow-empty-message
。您也可以通過輸入git help commit
或訪問the online documentation來閱讀更多內容。
儘管樹對象(具有自己的散列)相同,但提交實際上會有不同的散列,因爲它大概會有不同的時間戳和消息,並且肯定會有不同的父提交。所有這三個因素都集成到git
的對象散列算法中。
有是有幾個原因,你可能需要一個空的承諾(包含一些評論):
- 作爲「聲明承諾」,(通過DavidNeiss)添加旁白或文檔包括關於通過測試或皮棉的事後數據(通過Robert Balicki)。
- 若要測試
git
命令而不生成任意更改(通過Vaelus)。 - 使用
gitolite
(通過Tatsh)重新創建已刪除的裸存儲庫。 - 任意創建一個新的提交,例如重新觸發構建工具(通過mattLummus)或爲了個人日誌記錄或指標(通過BlueJ774)。然而,請仔細考慮一下:根據分支/合併結構,提交可能會持續很長時間,因此「僅提交任何內容」策略可能會無意中污染了您的團隊存儲庫中的臨時工作流程構件,並且難以將代碼修訂與短暫的cruft。
其他策略來添加元數據,以提交樹包括:
- 單獨的分支或輕標籤總是指向一個提交的特定狀態(例如,「最後接受提交」或「目前的分期提交「)。
- Annotated Tags用於記錄時間戳,提交者和消息的方式,指向現有提交而不在提交樹本身中添加條目。
git notes
在現有的不可變提交上關聯可變註釋。
我已經開始關注git流程[分支模型](http://nvie.com/posts/a-successful-git-branching-model/)。當你從'dev'立即創建一個'dev'分支形式'master',然後一個'feat'分支時,'feat'分支看起來來自'master'分支,因爲'dev'沒有明顯的提交「feat」分支來自哪個分支。第一次創建'dev'分支時的空提交有助於建立'dev'分支,因爲它是獨立於'master'的無限持久分支。一般來說這是有用的,當你使用分支機構層,並創建兩個層從一個單一提交 –
另一個原因:如果前推忽略重要的東西從你提交信息的,你不能這樣做'提交--amend'如果遙控器不允許推力。通過這種方式,您可以允許開發人員查看與之前提交一致的重要消息。 –
我想這樣做是因爲我推送了一個提交,但忘了在提交消息中提到了一些內容。我們的提交消息與問題跟蹤和持續集成軟件集成在一起,並且提交消息的內容會影響這些應用程序。有沒有更好的辦法?這在我看來似乎是最好的解決方案。我能想象的唯一事情就是能夠恢復先前的提交。 – sytech
如果我理解你是對的,你想做一個空的提交。在這種情況下,你需要:
git commit --allow-empty
也許是更明智的選擇,你可以創建一個註釋標籤(有消息一個名爲提交)。請參閱git tag -a
選項。
如果您使用像gitversion這樣的系統,那麼做這種提交就很有意義。您可以使用+ semver:主要評論來提交專門用於衝擊主要版本的提交。
空提交與消息
git commit --allow-empty -m "Empty test commit"
空犯用空消息
git commit --allow-empty --allow-empty-message
- 1. Linq2Sql提交更改沒有更新
- 2. Emacs&DSVN:更改默認提交消息
- 3. 更改消息以Umbraco形式提交
- 4. 修改提交消息
- 5. Gerrit的任何補丁集提交消息如何更改
- 6. 意外推送提交:更改git提交消息
- 7. 將消息更改爲已提交的提交
- 8. 如何取消提交Git更改
- 9. 更新已提交補丁集的提交消息
- 10. 有沒有辦法在檢查更改時用git累積提交消息?
- 11. 如何更改svn提交信息
- 12. 如何在Github上更改顯示的提交消息?
- 13. 如何在提交更改後鎖定編輯日誌消息?
- 14. 如何更改hg mq中的提交消息?
- 15. Git更改沒有提交提交和未跟蹤文件
- 16. Git提交一個提交消息,沒有別的?
- 17. Jenkins Blue Ocean編輯提交,消息和更改
- 18. 更改所有推送的提交消息
- 19. 更改Git提交信息
- 20. 如何取消最新提交併保留更改?
- 21. Git:如何取消文件更改(新提交)
- 22. 如何更改所有git消息提交中的特定字符串?
- 23. 如何提交更改到新分支
- 24. UITableView更改'沒有結果'消息
- 25. 規則策略沒有更新消息?
- 26. WifiManager似乎沒有提交更改
- 27. SQLAlchemy沒有對postgres提交更改
- 28. Liquibase沒有提交我的更改
- 29. 合併提交沒有更改ID?
- 30. SVN提交的信息沒有得到更新
更多的紙幣比代碼本身。 –
而不是做你在問什麼,而是使用'git notes'。 – wjl
@iight如果你還沒有推動你的代碼,也可以考慮'git commit --amend'。這將帶您回到提交屏幕,您可以在其中編輯您的消息,並且如果您執行了上傳操作,則可以將額外的文件添加到提交中。請記住,像rebase一樣,這會導致您的原始提交過時,並且可能會導致令人討厭的合併頭痛,因爲任何人將其代碼從舊提交中解脫出來。 –