当不在一个仓库中时,我如何在终端或使用shell脚本中获取'git log'命令。

7 浏览
0 Comments

当不在一个仓库中时,我如何在终端或使用shell脚本中获取'git log'命令。

我有一个Teamcity构建代理,需要从仓库中提取git log。问题是,当我的shell脚本运行时,它不在git仓库中,所以git log不能直接使用。

有人知道如何实现这一点吗?

我已经搜索了文档,但似乎找不到任何方法。

到目前为止的问题解决

  1. 当Teamcity从Github上克隆一个项目到代理时,它实际上并没有克隆整个项目。因此工作目录不是一个仓库。
  2. 当运行我的shell脚本时,我没有SSH访问github,这是我所需要的。

提前感谢。

解决方案

请参阅下面的已接受答案。

0
0 Comments

问题的原因是需要在不在代码仓库中时,通过终端或者使用shell脚本获取git log信息。解决方法是先在TC Agent上注册SSH凭证以访问Github,然后使用git clone命令将代码仓库克隆到指定目录/var/tmp/projectname_tmp,接着使用cd命令进入该目录,最后使用git log命令将日志信息输出到output.file文件中。如果需要按照特定日期提取日志,可以使用git log --since='2016-11-01 03:00'命令将日志信息输出到output.log文件中。

0
0 Comments

问题的原因是在不在一个代码库中时,无法在终端或使用Shell脚本中使用"git log"命令。解决方法是使用git命令的-C选项,它允许指定git目录。具体解决方法是使用以下命令:git -C 'git-working-dir' log。但是,这只适用于本地目录,如果想要从github.com获取git目录,需要克隆该目录并使用git://协议。只有在想要推送更新时才需要SSH访问权限。因此,可以使用克隆目录的方法作为解决方法,但需要设置SSH访问权限。

0
0 Comments

问题出现的原因是用户想要在不在一个仓库中的情况下,在终端或使用一个shell脚本中获取'git log'。解决方法是使用TeamCity的API来查询构建触发的文件和提交信息。以下是两个Powershell函数的示例代码。

第一个函数是TeamCityGetChangeLog,需要服务器URL、用户名、密码和构建ID作为参数。该函数通过查询TeamCity API获取构建的变更日志。

第二个函数是TeamCityGetCommitMessage,也需要变更集ID作为参数。该函数获取提交信息和更改的文件列表。

最后,有一位用户感谢作者提供的代码资源,虽然它不是他问题的实际答案(只适用于Windows Powershell),但对其他人来说是一个不错的资源。

0