Я хотел бы сделать что-то как:
git history my_file
2010-05-16
+ add this line
+ more code here
2010-05-15
+ delete code below
- bad code
- more bad codd
2010-05-12
+ changes made here
Хорошее представление истории файла в пользовательском интерфейсе также предоставляется, если вы передаете файл в gitk, который поставляется с вашей установкой Git.
В Windows ...
gitk.cmd <file>
Ближе всего к тому, что вы хотите, было бы из git log
:
git log -p -U0 --pretty=format:%ai -- filename
-p
: как Чарльз Бейли упоминает в его ответ : Создать патч -U0
: Генерировать различия с 0 строками контекста вместо обычных трех. - pretty = format:% ai
: перед выводом патча ставить дату автора в формате ISO 8601. Пример:
/c/Prog/Git/git2/git (master)
$ git log -p -U0 --pretty=format:%ai -- wt-status.c
2010-03-24 16:25:43 -0700
2010-03-13 23:00:27 +0100
diff --git a/wt-status.c b/wt-status.c
index e0e915e..5848f1c 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -306,0 +307,2 @@ static void wt_status_collect_changes_worktree(struct wt_status *s)
+ if (!s->show_untracked_files)
+ DIFF_OPT_SET(&rev.diffopt, IGNORE_UNTRACKED_IN_SUBMODULES);
2010-03-08 22:58:09 -0800
diff --git a/wt-status.c b/wt-status.c
index 5807fc3..dcaec7f 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -292,0 +293 @@ static void wt_status_collect_changes_index(struct wt_status *s)
+ struct setup_revision_opt opt;
@@ -295,2 +296,4 @@ static void wt_status_collect_changes_index(struct wt_status *s)
- setup_revisions(0, NULL, &rev,
- s->is_initial ? EMPTY_TREE_SHA1_HEX : s->reference);
+ memset(&opt, 0, sizeof(opt));
+ opt.def = s->is_initial ? EMPTY_TREE_SHA1_HEX : s->reference;
+ setup_revisions(0, NULL, &rev, &opt);
+