2016-02-08 16 views
5

最近、私は広大で恐ろしい知的財産権の世界を模索していました。あなたの機器であなたの時間に何か(ソフトウェア)を作成すると、あなたへ。私は、これに多くの除外項目があり、その件に関して実際に有益で有益な投稿がいくつかあることを知っています。しかし、今私はほとんどが、この契約違反者が有罪判決を受ける可能性があることに興味があるだけです。gitコミットのコンピュータを特定する

私の質問は、コミットされたコンピュータに特定のgit commitをリンクすることは可能ですか?どうやって?

+0

私は特定のコンピュータにリンクしているかどうかはわかりませんが、あなたは間違いなく 'git blame'を使って変更の著者を見つけることができます。 https://git-scm.com/docs/git-blame – TW80000

+2

コミットに_computer_ではなく_user_があります。 – matt

+3

覚えておきたいこと:ここに2台のデスクトップコンピュータを搭載したラップトップと、数台のコンピュータと多くの仮想マシンを搭載した大型のVMwareシステムを備えたラボにVPNを接続しているノートパソコンに入力しています。あるマシン(またはVM)でコミットを作成し、別のマシンに移動することがあります。私が使用している*マシン*は重要ですか? (弁護士や裁判所からの答えは*はい*!)しかし、git自体から知る方法はありません。 – torek

答えて

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自体は、コミットが作成されたコンピュータに関する固有の識別情報を記録しません。

すべてのコミットがすぐに1つの中央リポジトリにプッシュされるSubversionのようなシステムは、パブリックIPに簡単にリンクされますが、依然として個々のコンピュータやユーザーにはリンクされません。

関連する問題