在远程运行git命令?

 Oo输不掉的气质 发布于 2023-01-01 23:43

我已经看到了:

如何在远程存储库上运行GIT命令 - "SSH进入服务器"或" git fetch; gitk --all"

在远程工作树上运行git命令(GIT_WORK_TREE =/path) - 答案是关于git push --tags

如何在远程仓库上"git show"? - "使用git fetch获取远程历史记录,然后从本地对象存储库中抓取该文件."

如何远程运行git命令?- " ssh username@host "cd my/repo/path && git show""

如何在git上手动运行hook post-receive?"一个钩子是一个可执行的shell脚本.你可以从命令行执行它,如果你需要手动运行它,虽然如果你的repo有多个头(也就是你使用分支),构造预期的stdin输入有点单调乏味)".

检测对远程分支的更改 - "不要手动监视git内部工作中的文件.使用git为您检查一些东西.在这种情况下,git rev-parse --verify origin/master将显示本地原始/主副本git ls-remote origin master的SHA ,并获取SHA来自遥远的地方."

在远程存储库上提交历史记录 - " git log remotename/branchname- 您无法直接连接到服务器以检查其中的日志,您所做的是下载服务器的状态,git fetch然后在本地查看远程分支的日志."

由此判断,对于我想要做的事情,我必须登录ssh并在远程服务器上运行脚本; 但我希望有更多的git集成解决方案,所以让我解释一下我想做什么.

我有一个远程仓库,它是git-svn; 然后我有一个本地git-only repo,它是遥控器的克隆.因此,本地有一个对远程URL的引用remote.origin.url(见过git config --list).

我想要做的是git svn log,在遥控器上运行相当于(可能有一些后处理),但是从本地机器/ repo 启动调用- 并再次在本地机器/ repo上获得结果.当然,git-svn甚至可能没有安装在本地机器上,这意味着只有遥控器才能理解这样的命令.

我会准备好远程代码回购钩-但据我所看到的,挂钩只能在指定的事件(即运行pull,update...) -你真的不能随意叫他们:我记得,有一次我开发post-update脚本; 并且为了调试它,我不得不将它设置为总是返回一个错误,然后我"推"一个"假"提交,这将运行脚本,并在收到错误后,回滚repo - 当然,这不是我想象的远程脚本应该运行的方式.

另一件可能的事情是为本地仓库编写一个别名,然后调用SSH remote.origin.url- 也许这会使git svn log远程运行更容易一些?

最后,这是我的问题-做什么选择我要运行一个相对的自定义git命令(如git svn log,或git别名远程定义)上的远程回购,利用尽可能最大程度地在当地的回购已经获得的数据(即是的,我想避免编写一个bash脚本,使用重复的硬编码路径/ URL,它将调用ssh并执行遥控器上的任何必要操作) - 可能类似于远程post-update git钩子将其stdout返回给本地调用者,前缀为"远程:"?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有