我正在尝试访问远程存储库上的分支提交历史记录。我看了一下文档,但没有找到任何关于如何使用本地git客户端访问远程回购的提交历史的实质性信息。
当前回答
一个快速的方法是使用——bare关键字进行克隆,然后检查日志:
git clone --bare git@giturl tmpdir
cd tmpdir
git log branch
其他回答
我正在寻找包含特定提交的远程分支
下面是一个快速脚本,您可以使用它作为示例
spark
✦ ❯ cat run.sh
for b in $(git branch -r)
do
hasKryoCommit=$(git log "$b" | grep 3e033035a3c0b7d46c2ae18d0d322d4af3808711)
if test -n "$hasKryoCommit"
then
echo "$b"
fi
done
spark
✦ ❯ bash run.sh
origin/HEAD
fatal: unrecognized argument: ->
origin/master
origin/branch-2.4
origin/branch-3.0
origin/branch-3.1
origin/branch-3.2
origin/master
我不相信这是可能的。我相信你必须在本地克隆远程repo,并在它上执行git取回,然后才能对它发布git日志。
一个快速的方法是使用——bare关键字进行克隆,然后检查日志:
git clone --bare git@giturl tmpdir
cd tmpdir
git log branch
Git不是像SVN那样的集中式SCM,所以你有两个选择:
使用目标平台的web界面(如GitHub REST API或GitLab REST API) 下载存储库并在本地显示日志
对于许多不同的平台(GitHub, GitLab, BitBucket, SourceForge, Launchpad, Gogs,…)实现它可能很烦人,但获取数据非常慢(我们谈论的是秒)-没有解决方案是完美的。
一个抓取临时目录的例子:
git clone https://github.com/rust-lang/rust.git -b master --depth 3 --bare --filter=blob:none -q .
git log -n 3 --no-decorate --format=oneline
另外:
git init --bare -q
git remote add -t master origin https://github.com/rust-lang/rust.git
git fetch --depth 3 --filter=blob:none -q
git log -n 3 --no-decorate --format=oneline origin/master
这两种方法都对性能进行了优化,将一个分支的提交限制在一个没有文件内容的最小本地副本中,并且防止控制台输出。尽管打开连接并在获取过程中计算增量需要一些时间。
GitHub的一个例子:
GET https://api.github.com/repos/rust-lang/rust/commits?sha=master&per_page=3
一个GitLab的例子:
GET https://gitlab.com/api/v4/projects/inkscape%2Finkscape/repository/commits?ref_name=master&per_page=3
两者都非常快,但有不同的界面(就像每个平台一样)。
声明:选择Rust和Inkscape是因为它们的尺寸和安全性,没有广告
您可以很容易地获得远程服务器的日志。 方法如下:
(1)如果通过ssh使用git -那么只需使用你的git登录名和密码登录到远程服务器-并chdir你的存储库所在的远程文件夹-然后在远程服务器上的存储库中运行"git log"命令。
(2)如果通过Unix的标准登录协议使用git,那么只需telnet到远程服务器并在那里执行git日志。
希望这能有所帮助。
推荐文章
- 如何点Go模块的依赖在Go。Mod到回购中的最新提交?
- 为什么调用git分支——unset-upstream来修复?
- Windows git“警告:LF将被CRLF取代”,这是警告尾巴向后吗?
- git中的哈希冲突
- git可以自动在空格和制表符之间切换吗?
- Git暂存文件列表
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时