有没有办法将提交推送到远程git仓库,而不首先制作该仓库的本地克隆?
我有一个有效的远程仓库URL,我知道文件的路径,我想要做的就是将文件的更新版本推送到主服务器上.理想情况下,我希望这可以使用任何有效的远程repo URL,但如果它只适用于基于https的git URL,它仍然会有用.
我猜这是不可能的,因为根据答案如何在远程仓库中"git show",即使在一般情况下没有克隆也无法检索单个文件?.但是我希望有一种解决方法可以使用一些较低级别的git命令.
kos*_*tix 13
不可能.但是,由于预期提交只需要将一个提交作为其父级,因此可以使用所谓的"浅层克隆"并仅获取所需分支的提示.这将仅从遥控器带来最少量的对象.查找--depth命令行选项git clone.
是的,您可以使用标记推送新版本
按照这个步骤
在您的新项目根目录中
git initgit remote add origin git@github.com:yourusername/yourpojectgit tag -a v2.0 -m 'version 2.0'git add .git commit -m "New Version 2.0 :rocket:"git push -u origin v2.0现在您的新项目有了一个名为 v2.0 的新分支,并且您的主分支保持不变。之后,如果您不想,您可以在您的 github 项目设置中更改您的默认分支。
好吧,如果您使用 GitHub,那么您可以使用 GitHub API
https://developer.github.com/v3/repos/contents/#create-or-update-a-file轻松完成此操作
基本上你会这样做:
创建 OAuth 应用程序并获取访问令牌
https://developer.github.com/apps/building-oauth-apps/
向 GitHub API 发出请求:
使用您的访问令牌 (OAuth 2.0) 设置授权标头
PUT https://api.github.com/repos/:owner/:repo/contents/:path
和 JSON 正文,如下所示:
{
"message": "my test commit through API",
"content": "QmFzZTY0IGVuY29kZWQgY29udGVudCBoZXJl",
"sha": "cd220ncv229f2e4a95bce426ff48b1ae6b885b3a42"
}
Run Code Online (Sandbox Code Playgroud)
其中:
message - 您的提交消息
内容- 以 Base64 格式编码的更新内容
sha - 用于更新文件的 sha,您可以通过 API 请求
GET获取它https://api.github.com/repos/:owner/:repo/contents/ :小路
:owner - 存储库所有者
:repo - 存储库名称
:path - 存储库中文件的路径
示例请求: https:
//api.github.com/repos/nodejs/node/contents/README.md
| 归档时间: |
|
| 查看次数: |
8302 次 |
| 最近记录: |