版本控制很重要的一件事是知道誰做了什麼改變。如果事情發生了變化,我不知道爲什麼要做出改變,我會查看歷史並詢問進行改變的人。在我探索git的時候,有一件事讓我對這個功能感到有點緊張,那就是仿冒很容易。什麼阻止我把同事的名字/電子郵件放入git全局配置文件中的user.name和user.email?當使用gitosis/gitolite(它定義了用戶)或github(我假設使用gitosis/gitolite)之類的東西時,是否有任何懷疑是否真正做出了承諾?Git日誌歷史
Git日誌歷史
回答
您可以讓每個人都與GPG簽署提交:see this tutorial。
在教程中,GPG口令在git config中設置,這對我來說似乎是無稽之談,因此您希望在每次提交時都讓鉤子提示用戶。
當然,如果你不是經理,建議每個人都簽署他們的承諾可能是外交上的艱難,所以要謹慎。
編輯:正如布萊恩指出,這隻簽署提交消息,所以它不是很好的解決方案。我保留答案,因爲它可能仍然有助於理解問題。
你鏈接到的帖子完全是簽名提交的錯誤方式。它只簽署提交消息,而不是提交本身,這意味着任何想冒充別人的人都必須重用他們的提交消息。另外,正如你指出的那樣,它建議保持密碼清晰。簽名提交通常比它的價值更加痛苦,特別是一旦你開始處理重新分配,從電子郵件應用補丁等問題。 – 2011-04-22 13:49:02
@BrianCampbell:同意,將編輯我的答案。 – CharlesB 2011-04-22 13:56:26
Gitolite記錄(在.gitolite/logs/gitolite-*
)Gitolite用戶每次推送。確定引入特定提交的推送還有一些工作,但它應該是直接的(單向:在每次推送的末端放置輕量級標籤,然後使用git name-rev
查找提交後的第一個標籤) 。
大多數Gitolite用戶可能只有一個與其關聯的SSH密鑰(keydir/user.pub
),但單用戶可能擁有多個SSH密鑰(keydir/[email protected]*.pub
)。
因此,對於基於SSH的Gitolite,您可以將每個提交映射到一個(或多個)SSH密鑰。
您是否信任SSH密鑰以準確識別某個人是另一個問題(即您是否信任用戶保留其私人SSH密鑰的安全?)。
Gitolite還可以通過「智能HTTP」緩解Git訪問。在這種情況下,Web服務器在REMOTE_USER環境變量中提供Gitolite用戶名(即不使用.ssh/authorized_keys
文件來基於SSH密鑰標識用戶)。身份驗證和身份驗證完全取決於Web服務器本身(通常只是一個用戶名和密碼,但每個用戶的SSL證書可以用來執行更多類似於基於SSH的訪問)。
因此,對於基於HTTP的Gitolite,您可以將每個提交映射到由Web服務器完成的身份驗證。
GitHub上有一些類似的信息,並且可以通過GitHub API的Events部分查詢(以前它只似乎可作爲「新聞源」項目的一部分,你看着庫)。每個PushEvent標識執行推送的GitHub用戶,ref(分支)的名稱已更新,新參考「head」(更新分支的新提示)的名稱(SHA1哈希)以及提交列表。
謝謝克里斯,這幫助我和我的系統管理員。 – Nic 2011-06-15 21:52:40
這不是道德或哲學論壇,afaik; 但是
git允許簽名提交和簽名標記。這應該會幫助你養成你的偏執狂:)
- 1. Apache歷史連接日誌
- 2. 增量查看SVN日誌歷史?
- 3. PHP MYADMIN SQL備份日誌歷史
- 4. 計數工作歷史日誌
- 5. 如何顯示git repo子目錄的git日誌歷史記錄?
- 6. 編輯git歷史
- 7. 壁球git歷史
- 8. 清理git歷史
- 9. 在Git中獲取(可能已刪除)文件的歷史記錄/日誌
- 10. 獲取類似於「git log」命令的CVS日誌/歷史記錄?
- 11. 用git走歷史嗎?
- 12. 用BFG清理git歷史
- 13. 的Git - Github上推歷史
- 14. Git的歷史:去圖
- 15. Git克隆/下載歷史
- 16. git merge操縱歷史
- 17. 在git中添加歷史
- 18. 發佈部分git歷史
- 19. git p4克隆文件歷史包括積分歷史
- 20. 歷史的歷史
- 21. Glassfish4日誌循環 「最大歷史文件」 的問題
- 22. 訪問Microsoft Bot Framework對話歷史/日誌
- 23. 在Rails3中創建日誌和歷史記錄
- 24. SQL從更改日誌恢復歷史數據
- 25. 最大化的JBoss 7.1服務器日誌歷史文件數
- 26. 查看使用過的應用程序的歷史日誌
- 27. 龜svn日誌歷史恢復到修訂
- 28. Git日誌輸出日誌文件
- 29. 從git的日誌
- 30. 查看git日誌
當你不能相信你的同事時,真的很難過...... – 2011-04-22 13:13:02
我不是說我會認爲我的同事會不會有人不幸有人不會誠實(即使是你認爲的) – ryanzec 2011-04-22 13:21:36