16

我是一个普通的 git 用户,我正在 eclipse 中构建一些快捷方式来激活一些 EGit 功能。

我对 EGit 在做什么(尤其是synchronize workspace操作)有点警惕,我想知道我是否可以让 EGit 显示它正在使用的git 命令。

您是否知道将其记录到控制台的选项,或者通常如何找出执行了哪些命令?

4

4 回答 4

10

EGit不使用 git 可执行文件。它在JGit的帮助下重现了可执行文件的功能。

Git 可执行文件将项目的版本控制状态存储在 .git 文件夹下的多个文件中(分支、引用、提交对象、标签等)。

EGit 和 JGit 也是如此。


例如:

带有 git 可执行文件的提交:

git commit -m "My commit message"

将通过带有CommitOperation.commit()的EGit 在 Java 中执行,它使用 JGit 的CommitCommand.call(),它构建插入一个提交对象,这些对象通过 files 表示


EGit 的 UI 操作与其作为常规 git 命令的含义之间没有明确的映射,至少据我所知不是。

不过,您可以浏览(EGitJGitgit)的代码并查看幕后发生的事情。


编辑:JGit 中的 pgm 包提供逆映射:“使用 JGit 实现的命令行界面 Git 命令(“pgm”代表程序)”


编辑:存在一个未合并的 Eclipse 补丁,用于记录 Egit 在幕后所做的事情:https ://git.eclipse.org/r/#/c/103342/

于 2014-08-27T13:12:05.420 回答
3

请转到您项目的 .git 文件夹。在我的情况下会有一个日志文件夹(D:\Repo\GIT.git\logs)

eclipse执行的所有git命令都记录在各自的分支文件中。

日志样本是

0000000000000000000000000000000000000000 27f2e02544d389eb2412c1d467cc99f1786cd662 fanishshukla 1409137288 +0530 commit (initial): First Draft for Jboss 27f2e02544d389eb2412c1d467cc99f1786cd662 6d5634200cfdf6adf7c00ae70004326d2741e3a2 fanishshukla 1409557422 +0530 commit: fast response 6d5634200cfdf6adf7c00ae70004326d2741e3a2 32dbcfa55452b1a89861f422cfc7f90d26435d8c fanishshukla 1409557443 +0530 commit: fast response

于 2014-09-01T20:11:53.840 回答
2

我在这里找到的:

关于此要求有一个错误:

错误 349551 - 将 EGit 活动记录到控制台
https://bugs.eclipse.org/bugs/show_bug.cgi?id=349551

于 2014-08-26T10:38:07.617 回答
0

如何git reflog查看git的命令历史

于 2018-09-05T05:47:09.620 回答