我有一个本地仓库,我想将其快进到特定的提交(可能不是远程仓库的HEAD)。
所以我这样做:
git fetch master
git checkout sha
然而,这使我处于一个独立的HEAD状态,这是我不想要的。是否存在等同于git checkout -b branch_name sha
的等效项,当branch_name已存在时有效吗?
简而言之,我必须将本地仓库的HEAD更新为远程提交。我已经尝试git pull origin sha
但没有成功。我不能使用git pull origin master
,因为它会快进到远程的HEAD,而我想快进到特定的提交。
答案 0 :(得分:2)
如果要合并到特定提交,请获取所有远程更改并指定此提交的ID:
git fetch origin
git merge <sha1 of commit you want to merge>
您可以指定--ff-only
选项,并在Git无法快进时失败(并创建新的合并提交)。
如果您只想在当前分支的提示上放置一个提交,请使用cherry-pick(但通常不推荐这样做):
git cherry-pick <sha1 of commit you want to merge>
答案 1 :(得分:0)
你可以这样做:
结帐大师
结帐你的sha
然后来自现有sha1的crate分支
git checkout -f masetr
git checkout SHA1
git checkout -b 'BRANCH_NAME'