获取远程服务器上两次提交之间的所有提交?
Posted
技术标签:
【中文标题】获取远程服务器上两次提交之间的所有提交?【英文标题】:get all commits between two commits on remote server? 【发布时间】:2020-12-15 08:44:08 【问题描述】:如何获取远程服务器上两次提交之间的所有提交。
看过gerrit rest api但没有找到效果方式,和 不想在本地克隆远程 repo 以获得结果,因为有很多 repo。
【问题讨论】:
【参考方案1】:如果你可以访问 gerrit 服务器,
ssh <username>@<serverip> GIT_DIR=/path/to/the/repository.git git log commit1..commit2
username
是用于登录服务器的本地用户,而不是登录 Gerrit 网站的用户名。对于脚本,推荐使用 Python 的paramiko
。
import os
import paramiko
paramiko.util.log_to_file(os.devnull)
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(
hostname='', # gerrit server ip
username='', # server username
password='',) # password
cmd = 'GIT_DIR=/path/to/the/repository.git git log commit1..commit2'
i, o, e = ssh.exec_command(cmd)
print o.read()
【讨论】:
为了完整起见,除了GIT_DIR=
语法之外,还可以使用-C
/--git-dir
选项(这些之间的差异已回答here)以上是关于获取远程服务器上两次提交之间的所有提交?的主要内容,如果未能解决你的问题,请参考以下文章