Git 对远程存储库临时使用不同的协议
我的笔记本电脑上有一个git存储库,GiHub上有一个远程存储库(运行“git clone”时创建的直接配置) 我正在使用SSH传输协议。i、 e.远程地址为:git@github.com:MyName/MyProg.gitGit 对远程存储库临时使用不同的协议,git,version-control,git-remote,git-fetch,git-config,Git,Version Control,Git Remote,Git Fetch,Git Config,我的笔记本电脑上有一个git存储库,GiHub上有一个远程存储库(运行“git clone”时创建的直接配置) 我正在使用SSH传输协议。i、 e.远程地址为:git@github.com:MyName/MyProg.git 我现在处于一个端口23被阻塞的网络环境中(据我所见,只有端口80和443是打开的)。我需要获取/合并服务器上最近可用的更改。我有什么选择?如果可能的话,我希望避免使用http协议创建一个新的远程分支(它基本上与我已有的远程分支相同)。您只需通过直接编辑文件或使用git co
我现在处于一个端口23被阻塞的网络环境中(据我所见,只有端口80和443是打开的)。我需要获取/合并服务器上最近可用的更改。我有什么选择?如果可能的话,我希望避免使用http协议创建一个新的远程分支(它基本上与我已有的远程分支相同)。您只需通过直接编辑文件或使用
git config
或git remote set url
将.git/config
文件中的url更改为所需的url即可
但您不需要创建新的远程分支。你的意思是你不想要另一个远程跟踪分支;上述方法可以奏效
让另一个远程指向另一个url是很好的。您可以这样添加它:
git remote add alternate https://github.com/account/repo.git
它不会带来低效。因此,与其这样做
git fetch
现在,您将指定哪一个具有
git fetch origin
或
你可以给遥控器取任何你想要的名字
与git push相同。您可以指定所需的程度,如果未指定,则设置默认值。为备用协议添加新的远程设备
一个存储库可以有多个远程设备。您可以添加具有不同URI方案的备用远程存储库,即使它指向相同的基础存储库。例如,要从名为“alternate”的远程分支拉入主分支,请执行以下操作:
git remote add alternate https://github.com/MyName/MyProg.git
git checkout master
git pull alternate master
由于基础存储库是相同的,因此这不会对您的历史记录产生任何影响。无论您使用SSH还是HTTPS协议,历史记录都是相同的。您可以更改源url:
git remote set-url origin https://github.com/MyName/MyProg.git
像往常一样工作。如果端口未被阻止,则将其更改回
第二种方法。您可以通过配置更改ssh使用的端口。github还通过端口443提供ssh连接。为此,您需要创建一个包含以下内容的文件~/.ssh/config
:
Host github.com
Hostname ssh.github.com
Port 443
对于调试,可以使用ssh-vgit@github.com
顺便说一句,ssh端口号是22,而不是23。如果不添加临时远程设备,您可以按如下方式从临时目标获取
git fetch https://mytoken@github.com/<username>/<repo.git> master:remotes/origin/master
git-fetchhttps://mytoken@github.com//master:remotes/origin/master
它将从临时远程url上的主分支更新
origin/master
refspec。我不建议使用pull。它是一个2个命令。先提取,然后根据提取的内容进行合并或重新设置基础或其他操作。只有在您通常单独工作,并且您只是在更新您正在使用的另一台计算机或类似的简单场景时,Pull才可以。我不建议将其作为默认的转到工作流。@AdamDymitruk Pull vs.fetch/merge与OP的问题无关。问题是关于URI方案的,我相信我的答案很好地说明了这个用例,因为您将我的答案合并到了您的答案中。但是,如果您不喜欢使用,请随意使用任何更适合您的合并工作流程。因此,它在评论中。
git fetch https://mytoken@github.com/<username>/<repo.git> master:remotes/origin/master