在获取后没有拉动的情况下从远程更新(获取+重置)分支A?

时间:2019-02-26 14:45:54

标签: git git-pull git-reset git-fetch

在我的仓库中,我有一个masterdev分支。

当我对dev进行更改,并且master有新的提交时,我执行git fetch首先检查master分支上是否有新的提交。

如果有一些新的提交,我可以执行git pull origin master:master来拉出master分支而不将其检出,但是这样做有2次访存到存储库中(一次在git fetch期间进行,另一次git pull中一个)。

另一种方法是执行以下操作:

git checkout dev
git fetch (fetched a commit from origin/master)
git stash
git checkout master
git reset --hard origin/master
git checkout dev
git stash pop
(do commit, merge, etc)

我想做这样的事情:

git checkout dev
git fetch (fetched a commit from origin/master)
git (command to update the master branch to the last commit where origin/master is pointing)
(do commit, merge, etc)

我尝试了git reset --hard origin master:master,但它给了我fatal: Path 'master' does not exist in 'origin/master'

那么,用于重新指向/重置HEAD实际未指向的分支的神奇git命令是什么?

1 个答案:

答案 0 :(得分:0)

git checkout dev
git fetch origin master:master

第二条命令从远程origin分支获取新提交 master并将本地master更新到origin/master所在的位置 现在指向。