我有一个本地存储库,我想将其快进到特定提交(可能不是远程存储库的 HEAD)。
所以我这样做:
git fetch master
git checkout sha
然而,这使我处于分离的 HEAD 状态,这是我不想要的。是否有相当于 git checkout -bbranch_name sha
的方法,当branch_name已经存在时它可以工作?
简而言之,我必须将本地存储库的 HEAD 更新为远程提交。我已经尝试过 git pull origin sha ,但没有成功。我无法使用 git pull origin master ,因为这会快进到远程的 HEAD,而我想快进到特定提交。
最佳答案
如果您想 merge 到特定提交,请获取所有远程更改并指定此提交的 ID:
git fetch origin
git merge <sha1 of commit you want to merge>
您可以指定 --ff-only
选项,并让 Git 在无法快进时失败(并创建新的 merge 提交)。
如果您只想在当前分支的提示之上放置一个提交,请使用cherry-pick(但通常不推荐这样做):
git cherry-pick <sha1 of commit you want to merge>
关于Git checkout 提交并附加到现有分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204240/