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