暂时使用与远程存储库不同的协议

时间:2013-07-04 17:35:08

标签: git version-control git-remote git-fetch git-config

我在笔记本电脑上有一个git存储库,以及GiHub上的远程存储库(运行'git clone'时创建的直接配置)。

我正在使用SSH传输协议。即远程地址是:git@github.com:MyName/MyProg.git

我现在处于端口23被阻止的网络环境中(据我所见,只有端口80和443打开)。我需要获取/合并服务器上可用的最新更改。我有什么选择?如果可能的话,我想避免使用http协议创建一个新的远程分支(这与我已经拥有的远程分支基本相同)。

4 个答案:

答案 0 :(得分:5)

您可以更改原点的网址:

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 -v git@github.com

BTW,ssh端口号是22号,而不是23号。

答案 1 :(得分:3)

您只需直接修改文件或使用.git/configgit config,即可将git remote set-url文件中的网址更改为您想要的网址。

但您不需要创建新的远程分支。你的意思是你不想要另一个远程跟踪分支;以上就可以了。

让另一个遥控指向备用网址就好了。您可以这样添加:

git remote add alternate https://github.com/account/repo.git

它带来的效率不高。所以不要做

git fetch 

您现在将使用

指定哪一个
git fetch origin

git fetch alternate

您可以为遥控器提供您想要的任何名称。

git push相同。如果未指定,可以指定所需的程度并设置默认值。

答案 2 :(得分:0)

为备用协议添加新远程

您可以为存储库提供多个遥控器。您可以使用不同的URI方案添加备用远程,即使它指向同一个底层存储库。例如,要从名为“alternate”的远程控制器拉入主分支:

git remote add alternate https://github.com/MyName/MyProg.git
git checkout master
git pull alternate master

由于底层存储库是相同的,因此这不会对您的历史记录产生任何影响。无论您使用SSH还是HTTPS协议,历史记录都是相同的。

答案 3 :(得分:0)

如果不添加临时遥控器,您可以从临时目标中获取,如下所示

git fetch https://mytoken@github.com/<username>/<repo.git> master:remotes/origin/master

这将从该临时远程网址的主分支更新origin/master refspec。