如何在git存储库中获取特定文件的更改历史记录
我想做一些类似的事情:如何在git存储库中获取特定文件的更改历史记录,git,diff,history,Git,Diff,History,我想做一些类似的事情: git history my_file 可能输出 尝试: 最接近您想要的是: -p:如:生成补丁中所述 -U0:使用0行上下文而不是通常的三行上下文生成差异 --pretty=格式:%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
git history my_file
可能输出
尝试:
最接近您想要的是:
:如:生成补丁中所述-p
:使用0行上下文而不是通常的三行上下文生成差异李>-U0
:在补丁输出之前加上作者日期ISO 8601格式--pretty=格式:%ai
/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);
+
如果您将文件传递给Git安装附带的gitk,还将提供一个文件历史的良好UI视图 在Windows上
gitk.cmd <file>
gitk.cmd
感谢您提供的额外参数:)它只是osx上的gitk path/to/file。我也认为linux上也是如此。我必须升级git才能获得gitk命令。
git log -p -U0 --pretty=format:%ai -- filename
/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);
+
gitk.cmd <file>