如何在git local和remote repos中提取有关当前提交的列

时间:2018-04-02 20:58:38

标签: bash git

本地git存储库已检出远程git存储库中的代码。通过在本地服务器上键入以下命令,我能够识别本地git存储库的当前分支:

git branch -vv
    * Issue_Example c167ce9 [origin/Issue_Example] who is here right now?  
      master        cf60eb7 [origin/master] Initial Commit  

从上面的结果中可以看出,当前分支使用*符号表示。此外,结果中的每一行都包含以下列(我已将当前分支的值放在下面的每一列旁边,以使其明显清晰):

local branch = "Issue_Example"  
commit hash = c167ce9  
remote branch linked to local branch:  "origin/Issue_Example"  
description of commit:  "who is here right now?  "  

如何过滤git branch -vv命令的结果以仅单独返回每列?例如:


首先需要的命令:

获取当前分支的本地分支名称:

git branch -vv --current-branch-only --local-name-only  

会打印出“Issue_Example”


第二个所需命令:

获取当前分支的提交哈希:

git branch -vv --current-branch-only --commit-hash-only  

会打印出“c167ce9”


第三个所需命令:

获取链接到当前分支的远程分支的名称:

git branch -vv --current-branch-only --name-of-remote-branch-linked-to-local-branch-only  

会打印出“origin / Issue_Example”


第四个所需命令:

获取commit:

的描述
git branch -vv --current-branch-only --description-of-commit-only  

会打印出“谁现在在这里?”

<小时/>
检索上面指定的信息需要什么样的实际语法?这是在CentOS服务器上,所以如果需要编写脚本,我们就会使用bash脚本。

1 个答案:

答案 0 :(得分:1)

当前分支的名称

git rev-parse --abbrev-ref HEAD

当前签出提交(分支)

的哈希值
git rev-parse HEAD          # full hash
git rev-parse --short HEAD  # short hash

当前分支的远程跟踪分支(上游)

git rev-parse --abbrev-ref @{upstream}

提交当前签出提交的消息主题

git log -1 --format="%s"

man git-rev-parseman git-log的更多信息。