2

git blameどのコミットが変更されたかを確認するために使用できますが、ファイル全体がどこかからコピーされているように見える状況に遭遇しました。

$ git blame a.c
c59f772b (a@google.com 2011-08-25 01:07:44 +0000   1)   #include <stdio.h>
c59f772b (a@google.com 2011-08-25 01:07:44 +0000   2)   
c59f772b (a@google.com 2011-08-25 01:07:44 +0000   3)   int main(int argc, char **argv) {
c59f772b (a@google.com 2011-08-25 01:07:44 +0000   4)       void *handle;
c59f772b (a@google.com 2011-08-25 01:07:44 +0000   5)       double (*cosine)(double);
...

$ git log c59f772b
commit c59f772bc273e65985236ba665f7a88492a33235
Author: a@google.com
Date:   Thu Aug 25 01:07:44 2011 +0000

    Cloning a bunch of stuff from the another repository
    No changes, as is.

このコミットは、コードをコピーすることだけです。誰が実際にこのコードを書いたのかはまだわかりません。

コードの変更履歴などのリストを入手できますか?

4

3 に答える 3

4

gitであるパワーを一瞥します:)

git blame -M -C -C -C -w

からgit help blame

-C

-Mに加えて、同じコミットで変更された他のファイルから移動またはコピーされた行を検出します。これは、プログラムを再編成し、ファイル間でコードを移動するときに役立ちます。このオプションを2回指定すると、コマンドは、ファイルを作成するコミットで他のファイルからのコピーを追加で検索します。このオプションを3回指定すると、コマンドはコミットで他のファイルからのコピーを追加で検索します。

于 2013-02-27T05:51:06.360 に答える
0

別の場所からファイルをコピーしてコミットするだけなので、良い方法はないようです。

これらのクラスを知っている場合は、git commit--authorauthornameを使用できます。

関連するすべてのコミットを印刷するのに役立ちます。

Br、ティム

于 2013-02-27T04:34:51.333 に答える
0

単一のファイルへの変更を表示し、ファイル名の変更を確認する場合は、次の手順を実行します。

git log --stat --follow -- <filename>

その前の時点からファイルを非難するには、もう存在しない可能性のある古いファイル名を指定する必要があります。

git blame <hash_before_move> -- <old_file_name>
于 2013-02-28T07:09:32.133 に答える