git卡在分离的头中-无法恢复到分支中的上一个文件



我提交了一个对脚本的更改,该更改完全破坏了脚本。我尝试使用以下命令恢复到以前的git提交:

git checkout 2af6889905af99b78f7401cb17b718ba86240c2a aws_utils.sh

但现在我陷入了一个超然的头脑:

git branch -a
* (HEAD detached at 2af6889)

我正在工作的分支名为:update_aws_delete_user_function。

我目前不在master分支机构工作。

如何将散列2af6889中的函数文件合并回名为origin/update_aws_delete_user_function的主分支?

分离的头表示您不再在分支上,您已经在历史中签出了一个提交(在这种情况下,是head之前的提交,即head^(。

如果您想删除与分离的HEAD关联的更改

你只需要结账你所在的分行,例如

git checkout master

下次更改文件并希望将其恢复到索引中的状态时,不要先删除文件,只需执行即可

git checkout -- path/to/foo

这将把文件foo恢复到索引中的状态。

如果您想保持与分离的HEAD关联的更改

  1. 运行git log -n 1;这将显示分离的HEAD上的最新提交。复制并粘贴提交哈希
  2. 运行git checkout master
  3. 运行git branch tmp <commit-hash>。这将把您的更改保存在一个名为tmp的新分支中
  4. 如果要将所做的更改合并到master中,请从master分支运行git merge tmp。运行git checkout master之后,您应该在master分支上

From:修复Git分离的头?

有更复杂的方法可以做到这一点(例如恢复(,但我要做的是:

  1. 将脚本复制到其他位置(例如Windows中的桌面(
  2. 查看您的update_aws_delete_user_function分支
  3. 将文件放回原位
  4. 提交(-a(
  5. 推动你的分支

最新更新