Git获取信息

[toc]

一、获取commit信息:

1、获取指定分支最后一次提交的信息

Git获取信息
# 获取指定分支最后一次提交的作者
git show --format=%aN -b origin/dev_all -s

2、获取指定分支最后一次提交的信息–本地

我想可以获取到远程origin/shop_report分支的最后一次提交作者,但是我又不想说必须得去拉取到本地,请问我该怎么处理

如果您不想将 origin/shop_report 分支拉取到本地仓库中,您可以尝试使用以下命令来获取该分支的最后一次提交的作者名字:

git ls-remote --heads origin dev_all | cut -f 1 | xargs -I {} git show --format=%aN {} -s | head -n 1

该命令将会首先使用 git ls-remote 命令获取 origin/shop_report 分支的引用头(ref),然后使用 cut 命令提取该引用头的哈希值。接着,使用 xargs 命令将该哈希值作为参数传递给 git show 命令,并使用 --format=%aN 参数指定输出作者名字。最后,使用 head 命令提取第一行输出,即为该分支的最后一次提交的作者名字。

请注意,这种方式虽然可以不将 origin/shop_report 分支拉取到本地仓库中,但是每次执行该命令都会从远程仓库中获取该分支的引用头和最后一次提交的作者信息,因此速度可能较慢,特别是在网络条件不好的情况下。如果您需要频繁地获取 origin/shop_report 分支的最后一次提交的作者信息,建议还是将该分支拉取到本地仓库中。

1、git 查看远程分支

要查看远程分支,可以使用以下命令:

git branch -r

该命令会列出所有远程分支的列表,以remotes/为前缀。如果你想查看特定的远程分支,可以使用以下命令:

git branch -r | grep <remote-branch-name>

其中,<remote-branch-name>是指你要查看的远程分支名称,这个命令会查询匹配远程分支名称的所有分支,然后在终端输出它们的名称。

2、远程删掉了,但本地执行git branch -r 还是显示出来

2.1、git remote prune origin

如果你在远程删除了一个分支,但是本地执行git branch -r命令仍然显示该分支名,这可能是因为本地的远程分支列表缓存了该分支名。为了解决这个问题,你可以执行以下命令来更新本地的远程分支列表:

git remote prune origin

该命令会从远程 Git 仓库中删除已经不存在的分支,并更新你本地的远程分支列表。执行完这个命令后,再次执行git branch -r,就应该不会再看到已经被删除的分支名了。

2.2、git remote prune origin 执行出错了

如果git remote prune origin命令执行出错了,很可能是由于你的本地缓存信息有问题,请执行以下操作修复问题:

  1. 首先,运行以下命令来更新远程分支缓存:
# 这个命令会强制更新缓存,在更新过程中删除远程不存在的分支,然后更新你本地的远程分支列表
git remote update origin --prune

如果上述命令没有解决问题,你需要手动清除本地缓存。

# 这个命令会从远程 Git 仓库中下载所有最新的分支,同时删除远程不存在的分支,然后更新本地分支列表。
git fetch --all --prune

# 如果上述命令仍然无法解决问题,你可以尝试处理该git工程下的 .git/refs/remotes 文件夹
# 尝试方式1:手动删除指定分支

# 尝试方式2:删除所有本地缓存目录并重新克隆仓库。
rm -rf .git/refs/remotes
git clone <repository-url>

End