有没有一种方法可以检索Eclipse执行的Git命令?

16

我是一名常规的git用户,并正在Eclipse中构建一些快捷方式以激活某些EGit功能。

我对EGit正在做什么(特别是“同步工作区”操作)有些警惕,我想知道是否可以让EGit显示它正在使用哪些git命令

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


我也在想同样的事情? - etxalpo
4个回答

10

EGit不使用git可执行文件,它借助JGit重现可执行文件的功能。

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

EGit和JGit也是如此。


例如:

使用git可执行文件的提交:

git commit -m "My commit message"

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


据我所知,EGit的UI操作与常规git命令的含义之间没有明确的映射关系。

不过,人们可以查看(EGit, JGit, git)的代码,了解底层发生的情况。


编辑:JGit 中的一个 pgm 包提供了 反向映射:"使用 JGit 实现的命令行界面 Git 命令(pgm 代表程序)"


编辑:针对Eclipse未合并的补丁,存在记录Egit底层操作的日志功能:https://git.eclipse.org/r/#/c/103342/


由于我已经回答了自己的问题,@Franz-Ebner,请告诉我是否满足您设置的悬赏。 - BenoitParis

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

2

1
值得注意的是,EGit实际上并不运行常规的“git”命令,而是有自己的实现。EGit将来发出的任何日志都是对常规“git”相应命令的近似。 - Mikko Rantalainen
虽然我已经找到了想要的答案,但我愿意奖励任何进一步的研究。因此,如果您能更清晰地描述并可能提供一个示例,赏金就是您的! - Franz Ebner

0

使用git reflog命令查看Git的历史命令记录如何?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接