我的一个“遗留”系统使用 svn(例如 svn co https://github.com/user/repo/trunk)从 GitHub 签出代码。
是否有 GitHub API(或命令)可以用来将 svn 分支/修订版映射回 Git sha?
我知道 git-svn 和 find-rev,但据我所知,您首先执行“git svn clone ...”,然后执行“git svn find-rev ...”。我不想检查整个回购只是为了查找修订。
我的一个“遗留”系统使用 svn(例如 svn co https://github.com/user/repo/trunk)从 GitHub 签出代码。
是否有 GitHub API(或命令)可以用来将 svn 分支/修订版映射回 Git sha?
我知道 git-svn 和 find-rev,但据我所知,您首先执行“git svn clone ...”,然后执行“git svn find-rev ...”。我不想检查整个回购只是为了查找修订。
我在这里找到了答案,
https://help.github.com/articles/support-for-subversion-clients#other-tricks
总之,你可以这样做,
$ svn propget git-commit --revprop -r 1000 https://github.com/rails/rails/trunk
480150e5fb73f1a6a23bb08fdf9a537ccbd6f60d
正如 zerkms 已经评论的那样,您可以为此使用“git ls-remote”:
git ls-remote <remote>
这将列出指定遥控器的所有分支。如果你在 git repo 中调用,你可以给命令一个配置的远程(例如origin
),或者你可以给它一个远程的 uri(例如 'ssh://user@host:port/path/to/repo ')。
如果你只想要一个特定的分支(或标签),你可以给它额外的参数:
git ls-remote <remote> master
这只给你远程分支'master'的sha。
另外,请查看手册以git ls-remote
获取更多信息:
man git-ls-remote