2016-02-08 21 views
5

最近我一直在探索知識產權法的巨大和可怕的世界,人們似乎認爲如果你在你的時間創造一些東西(軟件),用你的設備,它通常屬於給你。我知道有很多這方面的例外情況,以及關於這個問題的一些非常好的和內容豐富的帖子。但是現在我大多隻是對意味着某人違反此協議可能被證明有罪而感到好奇。確定哪臺計算機git commit來自

我的問題是,是否有可能將特定的git提交鏈接到它所提交的計算機?怎麼樣?

+0

我不確定鏈接到特定的計算機,但你一定可以使用'git blame'找到更改的作者。 https://git-scm.com/docs/git-blame – TW80000

+2

該提交有一個_user_,而不是_computer_。 – matt

回答

6

當您通過HTTP,HTTPS或SSH推送到Git存儲庫時,遠程服務器通常會創建連接發生時間和源IP地址的日誌。但是,大多數公司使用NAT,導致網絡上的多臺計算機共享相同的公共IP地址。

一些例子日誌:

# SSH 
Feb 8 01:08:37 git-server sshd[12619]: Accepted publickey for git from 192.168.1.100 port 63012 ssh2: RSA SHA256:XxXxxXxxXXXxXX 
Feb 8 01:08:37 git-server sshd[12619]: pam_unix(sshd:session): session opened for user git by (uid=0) 

# Apache HTTP(s) 
192.168.1.100 - - [8/Feb/2016:22:03:18 +0000] "GET /repos/info/refs HTTP/1.1" 200 153 

此外,Git是分散的,所以,實際上推提交不一定提交者的計算機。

提交通常與某種名稱或用戶名以及電子郵件地址綁定;然而,這可以在提交時進行更改,而無需創建之前以及現在是什麼的記錄。

$ git config user.name "John Doe" 
$ git config user.email [email protected] 
$ git commit 
$ git config user.name "Jane Otheruser" 
$ git config user.email [email protected] 

因此,簡而言之,有啓發式功能,可以指向誰撰寫了提交和來自何處,但它絕對不是絕對的:

,因爲這是這麼簡單。 Git本身不記錄有關創建提交的計算機的唯一標識信息。

像Subversion這樣的版本控制系統,其中所有提交立即被推送到一箇中央存儲庫,更容易鏈接到一個公共IP,但仍然沒有鏈接到個人計算機或用戶。

相關問題