2011-05-13 33 views
3

我想知道是否有任何方法通过Git别名获取上次提交的SHA1。创建获取上次提交的Git别名

我见到目前为止以下,但它抛出一个错误说:

扩张别名“最后提交”失败; “9fa5c2c72e586ce825d54114532400d8cc56106f”不是一个git命令

命令我使用创建last-commit别名:

git config --global alias.last-commit `log -1 --pretty=format:%H` 

我知道,git log -1会给我最后一次提交的信息,但我想最后一个提交SHA1本身,所以我可以使用它与cat

任何帮助表示赞赏

回答

4

你可以这样做:

git rev-parse HEAD 

...或别名:

$ git config --global alias.last-commit "rev-parse HEAD" 
$ git last-commit 
dc1ac14864ecb3dd27f934ba964b030cfedf234a 

manojlds暗指引号是你版本的问题 - 对略有扩大,反引号在其中运行命令,并将该命令的标准输出替换为您正在运行的命令。由于命令log可能不存在,因此您将在标准错误中看到错误,并将别名设置为空字符串。你的例子中的单引号或双引号都可以。

+0

+1,感谢您的回复 – JamesHalsall 2011-05-13 15:11:32

+0

@Jaitsu:如果这解决了你的问题,点击它旁边的复选标记,以便Mark获得奖励。 – Daenyth 2011-05-13 15:13:34

+0

@Daenyth,我会...但这个问题还没有打开太久 – JamesHalsall 2011-05-13 15:16:44

3

只需使用git rev-list -1 HEAD

对于使用git log,使用您的别名:

git config --global alias.last-commit "log -1 --pretty=format:%H" 

注意引号。

+0

+1,谢谢你的回复 – JamesHalsall 2011-05-13 15:11:41