Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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 脱机时如何快进分支_Git_Offline - Fatal编程技术网

Git 脱机时如何快进分支

Git 脱机时如何快进分支,git,offline,Git,Offline,当我在线时,git fetched,而现在我离线,并且想要快进到我先前获取的状态时,如何快进分支 例如,我处于脱机状态,并执行以下操作: $ git checkout develop Switched to branch 'develop' Your branch is behind 'origin/develop' by 37 commits, and can be fast-forwarded. (use "git pull" to update your local branch)

当我在线时,git fetched,而现在我离线,并且想要快进到我先前获取的状态时,如何快进分支

例如,我处于脱机状态,并执行以下操作:

$ git checkout develop
Switched to branch 'develop'
Your branch is behind 'origin/develop' by 37 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
当尝试使用git pull时,我得到:

$ git pull
ssh: Could not resolve hostname <hostname>: Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
$git pull
ssh:无法解析主机名:名称或服务未知
致命:无法从远程存储库读取。
请确保您拥有正确的访问权限
并且存储库存在。

在这种情况下,我需要使用什么命令?

既然
git pull
基本上是
git fetch
+
git merge
而您已经执行了
fetch
并且无法在脱机时再次执行,那么您只需要执行
git merge origin/develop

或者,您可以执行
git reset--hard origin/develope
,即使没有快进,也可以工作

编辑:更多选项。 另一种方法是在切换到git分支之前执行
git分支-f develope origin/develope
——您不能更改当前分支,但您可以将任何分支“更新”到任何状态,只要它不是当前的。对于当前分支,您必须使用
git reset

是一个快捷方式,后面跟着

仅访问远程存储库(如果远程存储库位于其他计算机上,则需要网络连接)。仅使用计算机上已存在的数据进行操作;它根本不关心你的网络连接


因为您已经完成了所有操作,所以只需运行另一半:

作为上述答案的替代:

您可以直接签出您想要的分支机构:

git checkout origin/develop
然后删除旧的本地分支:

git branch -D develop
并在新提交时重新创建,如下所示:

git checkout -b develop

关于git reset的警告——硬源代码/开发代码:此命令将丢弃所有修改。只有当你知道你想扔掉所有东西并进行精确的提交时才使用它。
git-pull
/
git-merge
如果有任何本地更改也不起作用。你可以先运行
git-merge--ff-only-origin/master
,看看它是否有效。如果没有,您就没有弄糟任何事情,您仍然可以运行真正的
git merge
,或者
git rebase
,或者首先检查
master
origin/master
之间的差异,或者……顺便说一句:您运行
git merge origin/master
的第一个建议非常好。我刚才是在评论你提到的git reset--hard(硬的)时没有警告,在一般情况下,它会导致修改丢失和悲伤(特别是如果没有快进)。是的,我理解。这正是我通常所做的——放弃我所做的任何更改并切换到最新的分支
git status
查看我是否真的需要什么,然后
git reset
git merge--ff only
进行快进。