Git checkout 提交并附加到现有分支

标签 git commit head

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

相关文章:

c++ - 使用 setuid 运行 git 'post-receive' hook 失败

git - 不小心从 Git 存储库中删除

git - 在Git中的根提交之前添加提交?

mysql - mysql中的Rollback、commit、begin规则什么时候使用?

opencv - 如何在 Dlib C++ 中获取头部姿势估计的 3D 坐标轴

Git 将更新的开发分支 merge 到本地分支

git - 为什么 git pull 不带回我删除的目录?

git-svn - 将本地 Git 提交合并为 git-svn 的一次提交

html - head 标签在 HTML 代码中的位置重要吗?

php - 在 PHP 中使用 HTTP 的 HEAD 命令最简单的方法是什么?