5

我有一个本地 git repo,我需要更新它。但是,在线回购远远领先于我的本地副本。我的连接速度极慢。当我使用git pull -v --progress时,我开始看到进度,但过了一会儿,我收到了这个错误:

efrror: RPC failed: result = 18, HTTP code = 200 | 5.00 KiB/s
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

这是由于我的连接速度非常慢。我需要知道是否有办法获得,比如在我的本地仓库之前的第一次提交,看看我是否可以一次更新我的本地仓库。

重要提示:我想知道的是,是否有办法在我的本地副本之前提取 # 次提交,而不是特定的提交。

4

1 回答 1

1

如果你想提取分支 $BRANCH 的 $N 提交,你可以这样做(假设你当前在 $BRANCH 中):

git log $BRANCH..origin/$BRANCH --pretty=format:%H | tail -$N | head -1 | git pull origin 

现在,一步一步:

git log $BRANCH..origin/$BRANCH

将列出本地分支和远程分支之间不同的提交列表,该--pretty=format:%H选项将仅显示提交 ID,避免其他信息作为作者、日期或提交消息。

tail -$N | head -1

给定一个列表,tail -N会给你它的最后 N 行,并且head -1会给你第一行。因此,如果我们将它们放在一起,我们将获得列表的最后第 N 行。

| git pull origin 

只会将通过管道传递的提交 ID 拉到您当前的分支中。

于 2015-05-06T15:30:29.513 回答