签出提交并附加到现有分支

时间:2013-08-13 08:32:14

标签: git commit head

我有一个本地仓库,我想将其快进到特定的提交(可能不是远程仓库的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,而我想快进到特定的提交。

2 个答案:

答案 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'