Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git在单个TCP连接中拉/推_Git_Ssh_Tcp_Alias - Fatal编程技术网

git在单个TCP连接中拉/推

git在单个TCP连接中拉/推,git,ssh,tcp,alias,Git,Ssh,Tcp,Alias,我有一个奇怪的网络连接,有时不可靠。有时,每当我需要一个新的TCP连接时,我必须手动按下一个按钮,这可能需要一分钟的时间来重置 我偶尔使用这个连接来推/拉git更改 大多数情况下,这种方法都很有效。我只是通过连接git推送,我的更改在一个连接中完成 但是,如果遥控器上有我没有意识到的挂起的更改,我的git push将被拒绝,我将不得不经历一次git pull,然后是另一次git push,将我的一个连接变成三个。我每次都可以做一个git拉来确保,但这通常意味着在不需要连接的地方需要额外的连接 V

我有一个奇怪的网络连接,有时不可靠。有时,每当我需要一个新的TCP连接时,我必须手动按下一个按钮,这可能需要一分钟的时间来重置

我偶尔使用这个连接来推/拉git更改

大多数情况下,这种方法都很有效。我只是通过连接
git推送
,我的更改在一个连接中完成

但是,如果遥控器上有我没有意识到的挂起的更改,我的
git push
将被拒绝,我将不得不经历一次
git pull
,然后是另一次
git push
,将我的一个连接变成三个。我每次都可以做一个git拉来确保,但这通常意味着在不需要连接的地方需要额外的连接

VisualStudio有一个术语,用于先拉后推:“同步”。我知道这不是一个真正的git术语,但我想知道是否有一种方法可以设置别名,以便在单个TCP连接中完成拉和推。这会让我的生活更轻松


我知道我可以使用SOCKS保持连接打开,但每一层网络都很昂贵,因为这不是最快的连接开始。Git本身没有办法做到这一点:它使用libcurl打开http或https连接,并运行
ssh
打开ssh连接。对于
git://
协议,它有自己的代码,使用操作系统的套接字层,并生成一个新的套接字。虽然libcurl可以进行持久连接,但它是在每次调用的基础上进行的,并且每个Git命令都会启动一个新的调用


尽管如此,代理/隧道还是可以做到这一点。由您决定额外的开销是否值得。

Git本身没有办法做到这一点:它使用libcurl打开http或https连接,并运行
ssh
打开ssh连接。对于
git://
协议,它有自己的代码,使用操作系统的套接字层,并生成一个新的套接字。虽然libcurl可以进行持久连接,但它是在每次调用的基础上进行的,并且每个Git命令都会启动一个新的调用


尽管如此,代理/隧道还是可以做到这一点。由您决定额外的开销是否值得。

如果可以使用ssh URL,请尝试。我一直在使用它,不是因为我的网络不可靠,而是为了通过避免重新连接到相同的主机来加速git的运行。@phd哇,听起来很棒。如果你写一个关于这一点的答案,我可能会接受。如果你可以使用ssh URL,那么在很多问答中都会讨论这个问题。我一直在使用它,不是因为我的网络不可靠,而是为了通过避免重新连接到相同的主机来加速git的运行。@phd哇,听起来很棒。如果你写一个关于这个问题的答案,我可能会接受。这在很多问答中都有讨论:,