Git 脱机时如何快进分支
当我在线时,git fetched,而现在我离线,并且想要快进到我先前获取的状态时,如何快进分支 例如,我处于脱机状态,并执行以下操作: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 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
进行快进。