git - git checkout <commit hash> 后 merge 分离分支上的更改

标签 git github

我最初在名为“feature”的 git 分支上工作。然后,我提交了我的更改。

然后我注意到有一些新创建的文件不应该在我的提交中。所以我找到了最新提交哈希 1b33aa(我使用git log 命令)。

在那之后,我做了:

git checkout 1b63aa

然后我做了更多更改(虽然我仍在功能分支上......我的错误),然后再次提交。

然后我运行 git branch ,它打印出来:

* (detached from 1b33aa)
  feature

现在如何 merge 我刚刚对 feature 分支所做的更改?

最佳答案

你现在在一个独立的分支上。您似乎想用这个替换您的 feature 分支。一种安全的方法是将 feature 重命名为其他名称,然后将当前分支转换为名为 feature 的正确分支:

git branch -m feature feature-bak
git checkout -b feature

在你的第一步中,我想你想做一个 git reset 而不是 git checkout:

git reset 1b63aa

另一方面,如果你不想替换feature分支,而是将当前分支中的改动 merge 到feature,你可以这样做:

git checkout -b temp
git checkout feature
git merge temp

关于git - git checkout <commit hash> 后 merge 分离分支上的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20687881/

相关文章:

c# - 来自 C# 应用程序的 git

linux - 将 Git 存储库克隆到 LINUX 计算机时使用的 'standard' 目录位置是什么

git - merge 分支后推送时无法解析引用 refs/refs/remotes/origin/branch

git - 为什么 git 不尝试 merge 对重命名文件的更改?

macos - 从终端使用适用于 Mac 的 Github GUI 和 git

git - Git相当于 Mercurial 添加+ Mercurial 差异?

github - 在 GitHub Actions 中,如何在推送时触发,但前提是 PR 处于事件状态?

html - 一个header的字体不会变,其他的会变,怎么办?

git - 撤销 git update-index --assume-unchanged

android - 使用 Maven 从 github 导入 apklib