我们可以在没有使用Git进行拉取/签出/获取的情况下跟踪远程引用吗?

问题描述 投票:1回答:2

我正在使用]创建一个新的git存储库

git init

我添加了远程存储库

git remote add origin https://<URL>.git

我希望我的本地主服务器引用源/主服务器的HEAD。

由于多种原因,我不想运行pull / fetch / checkout,包括事实,它很大,我打算做的只是添加文件,而不修改任何现有文件。

git remote show origin

显示用于抓取和推送的远程URL和

  HEAD branch: master
  Remote branch:
    master new (next fetch will store in remotes/origin)

我试图

git branch --set-upstream-to master origin/master

但结果是

fatal: branch 'origin/master' does not exist

所以,没有办法使我的本地主HEAD ref成为远程主HEAD,而又不导致整个分支都被下载吗?

我尝试从原始服务器/主机获取单个文件,但出错了

git checkout origin/master -- README.md

给出错误

fatal: invalid reference: origin/master

git pull origin master -- README.md

结果]

fatal: Couldn't find remote ref README.md

git branch -u origin/master
fatal: branch 'master' does not exist

git branch -u origin/master master
fatal: branch 'master' does not exist

git branch --set-upstream-to=origin/master
fatal: branch 'master' does not exist

以任何方式获取本地主服务器引用远程主服务器HEAD的方式,然后仅提取/签出/获取需要的文件,或者仅添加并推送文件?

我正在使用git init创建一个新的git存储库,我添加了远程存储库git remote add origin https:// <..git master ...>

git git-remote
2个回答
1
投票
要使用--set-upstream-to,必须存在远程跟踪分支。通常,创建此类远程跟踪分支的方式是通过获取远程或将该分支推送到该远程。可以使用git update-ref手动创建远程跟踪分支,但这在这里可能没有用。 Git阻止您指定不存在的引用以防止键入错误。

[请注意,如果您只是想向远程添加文件,而没有远程的任何历史记录,则您的分支将形成一个独立的根,将很难合并到项目的其余部分中。人们通常不会欣赏您创建这样的分支,并且在某些情况下它们的行为可能会很奇怪。

[如果您的目标是限制必须下载的数据量,则最好进行浅访或浅克隆,这将下载有限的历史记录,但仍会创建相关的远程跟踪分支(允许您使用[ C0]),并以惯常方式处理远程项目。例如,您可以使用git branch --set-upstream-to执行此操作。


0
投票
根据我本人对某些RnD上方bk2204的评论,我发现至少有2种非常有效的技术可以实现上述目标,这是为了减少从远程克隆时获取的存储库的大小,因为我们可能不想工作在大多数文件上,其中一些可能非常大。

在我的特定情况下,我有一个140 MB的存储库。这不是很大,但是其中的139MB是对现有Web服务器文件(包括jar和jpg)的一次提交。这些都没有打算长时间编辑。

© www.soinside.com 2019 - 2024. All rights reserved.