2014-11-04 65 views
1

正如我們所知,Git有一個強大的選項「-f」和「git push」命令,可以改變遠程代碼庫的歷史記錄和承諾的變化。Git:如何跟蹤強制推送遠程代碼庫的人?

作爲一個純粹的Git命令行用戶,有沒有一種方法可以跟蹤誰做了這種事情來通知他/她不要再做一次?也許他/她正在使用一些GUI工具,並不知道他/她在做什麼。

順便說一句,提交歷史永遠是我們可以用來檢查發生了什麼的根。但是git-force-push只是改變了它,使得(聽起來像)所有線索都丟失了。

+0

如果您的中央回購站位於您維護的服務器上,則可以通過網絡日誌來識別它。 – 2014-11-04 02:49:57

+0

謝謝!它在服務器上。但在深入研究Web日誌檢查之前,從Git本身來說有沒有更方便的方法。 – 2014-11-04 03:01:44

回答

1

Git本身不會跟蹤該信息。如果你控制服務器,你可以設置一個pre- or post-receive hook來記錄誰推送什麼和什麼時間。

對於過去的場合,如果您使用HTTPS或SSH協議推送代碼,那麼您的web/ssh服務器日誌可能會用於識別過去的參與者。

+0

謝謝!所以沒有辦法從純粹的Git命令行來追蹤它? – 2014-11-04 03:00:13

+0

git無處不在。它無法與每個安裝的識別實踐進行交互。例如,當您設置回購時,您可以決定只允許ssh或本地用戶寫入訪問權限,然後您可以準確記錄是誰做了什麼。這是設置回購協議的常用方式,並不難,而且git的明確構建是爲了支持這一點。導入它是爲了「從純粹的Git」工作,它只是複製現有的工具和他們的文檔以及他們所有的代碼以及任何當前的錯誤,但是沒有人知道如何去做這些事情。沒有廣泛認爲是一個好的舉措。 – jthill 2014-11-04 05:44:24

+0

感謝您的評論! – 2014-11-05 22:25:43