2017-04-17 6 views
0

私のgitリポジトリにファイルへのシンボリックリンクを作成しました。
symfile1 - 私はFILE1を変更すると、私は gitのログファイルfile1で変更の履歴を確認することができます> FILE1

私は
symfile1 gitのログを行うとき、私は同じ歴史が表示されない方法はあります実際のファイルの履歴の変更を表示するには、git logをシンボリックリンクに使用しますか?Gitはシンボリックリンクを使って履歴を表示していません

質問は歴史だけに関連しています。私はsymbolik1を使用してfile1の履歴の変更を見ることができますか?

+0

[gitはシンボリックリンクをどのように処理するのですか?](http://stackoverflow.com/questions/954560/how-does-git-handle-symbolic-links) – DevDonkey

+0

[gitの入手方法シンボリックリンクに従う?](http://stackoverflow.com/questions/86402/how-can-i-get-git-to-follow-symlinks) – sschuberth

+0

'symfile1'を調べるだけで、それが*シンボリックリンク、リンクのターゲットがリポジトリにあるかどうかを確認し、リンクのターゲットの履歴を見ます(ターゲットがリポジトリにあると仮定します;そうでない場合、ターゲットファイルの履歴はリポジトリ)。 – torek

答えて

1

いいえシンボリックリンクはまったく変更されていません。同じリンク先を指しています。どちらもgitはそれをする必要はありません、あなたに伝えることができます。 gitがシンボリックリンク上の変更にフラグを立てるのを見ると、リンクが別のファイル名を指している場合のみです。シンボリックリンクは、一般的にファイルの内容ではなく、ファイル名にのみ関係します。

つまり、そうする短いbashスクリプトを作成できます。次に、-scm.com/book/tr/v2/Gのgitエイリアスを作成することができます。スクリプトは標準的なbashの機能を使ってリンクのターゲットを見つけ、必要な適切なgitコマンドを呼び出すことができます。ただ、追加する

+0

シンボリックリンクが指しているファイルの履歴を見たくないgit(任意のオプション)を言う方法はありませんか? – Suren

+0

いいえ、あなたのためにそれを行うシェルスクリプトを書くことができますが、git自体はありません。 – AnoE

+0

返信ありがとう、git logをフックすることは可能ですか? – Suren

1

..

それは任意のファイルと同様にGITは同じシンボリックリンクを扱いますが、それは、それが関連するリンクの内容を保存します。それができないことは、リンクをたどってターゲットを検討することです。実際には、ターゲットに含まれるリンクの値以外のヒントはありません。

チェックアウト時に、GITはそのシンボリックリンクを元のファイルパスで再作成しますが、ターゲットファイルはまったく考慮しません(ただし、バージョンコントロールでもシンボリックリンクとは独立して追跡されます)。

ファイルをデスクトップ上のショートカットと考えてください。それをバージョン管理に入れて、それが指しているものではなく、ショートカットを追跡します。

関連する問題