【问题标题】:Is there a way of pushing to a forked repo without cloning all its content to local computer?有没有办法在不将所有内容克隆到本地计算机的情况下推送到分叉回购?
【发布时间】:2016-05-28 11:27:47
【问题描述】:

我被邀请参与一个非常大的 git 项目。我只需要通过合并请求将几个文件推送到其中。

我需要推送的文件将位于项目内的不同文件夹中,但我想将它们完全推送,因为它会关闭一个问题。

我已经分叉了这个 repo,我想知道是否有办法可以通过

推送到这个 repo
$ git checkout -b newbranch
$ git add .
$ git commit -m "hello world - issue #1"
$ git push origin newbranch

不先将其所有内容克隆到我的电脑中?

提前致谢!

【问题讨论】:

  • 我认为您无法避免 some 排序的克隆。如果您的 Git 版本是 1.9+,您可以通过将浅克隆(即使用 clone 指定 --depth 标志)与使用您的更改创建补丁来实现此目的。见stackoverflow.com/questions/11375070/…
  • 感谢您的意见@miqid!但我无法理解你提到的问题......我不是 git 专家,我只是处理基础知识。 ;)

标签: git gitlab


【解决方案1】:

要获取过去的 X 次提交,请使用 git clone --depth=X。这应该会大大减少尺寸。

【讨论】:

  • 请注意,在浅层克隆上推送提交并不完全可靠(或者在某些项目历史情况下,不可能)。
  • 这会克隆所有文件夹吗?我的意思是,我是否可以完整地保存 repo 的结构来正确放置新文件?
  • @VirtuaCreative- 它会克隆所有文件夹,但只会克隆主(即 HEAD)分支。
  • @DavidDeutsch 太棒了!谢谢!我将通过git clone --depth=1 尝试一下并回复您!但是我可以通过git checkout -b newbranch 添加一个新分支,不是吗?
  • @VirtuaCreative - 当然。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
相关资源
最近更新 更多