Git 结帐 - 切换回 HEAD
Git checkout - switching back to HEAD
我一直在做我的项目,而在某个时候我发现有一件事停止了工作。当我的代码正常工作时,我需要查看它的状态,所以我决定使用 git checkout(因为我想检查一些东西)。所以我已经完成了
git checkout SHA
几次回到我无法到达 HEAD 的点时,输出如下:
git checkout SHA-HEAD
error: Your local changes to the following files would be overwritten by checkout:
[list of files]
Please, commit your changes or stash them before you can switch branches.
Aborting
我很确定我没有改变任何东西。命令
git checkout master
给出相同的输出。
有办法回到 HEAD 吗?
"jumping over" 历史提交的安全方式是什么?
您可以 stash
(将更改保存在临时框中),然后返回 master
分支 HEAD。
$ git add .
$ git stash
$ git checkout master
来回跳过提交:
转到特定的 commit-sha
。
$ git checkout <commit-sha>
如果你在这里有未提交的更改,你可以签出到一个新的分支 |添加|提交 |将当前分支推送到远程。
# checkout a new branch, add, commit, push
$ git checkout -b <branch-name>
$ git add .
$ git commit -m 'Commit message'
$ git push origin HEAD # push the current branch to remote
$ git checkout master # back to master branch now
如果您在特定提交中有更改并且不想保留更改,您可以执行 stash
或 reset
然后检出到 master
(或者,任何其他分支)。
# stash
$ git add -A
$ git stash
$ git checkout master
# reset
$ git reset --hard HEAD
$ git checkout master
检查特定提交后,如果没有未提交的更改,则返回 master
或 other
分支。
$ git status # see the changes
$ git checkout master
# or, shortcut
$ git checkout - # back to the previous state
我一直在做我的项目,而在某个时候我发现有一件事停止了工作。当我的代码正常工作时,我需要查看它的状态,所以我决定使用 git checkout(因为我想检查一些东西)。所以我已经完成了
git checkout SHA
几次回到我无法到达 HEAD 的点时,输出如下:
git checkout SHA-HEAD
error: Your local changes to the following files would be overwritten by checkout:
[list of files]
Please, commit your changes or stash them before you can switch branches.
Aborting
我很确定我没有改变任何东西。命令
git checkout master
给出相同的输出。
有办法回到 HEAD 吗?
"jumping over" 历史提交的安全方式是什么?
您可以 stash
(将更改保存在临时框中),然后返回 master
分支 HEAD。
$ git add .
$ git stash
$ git checkout master
来回跳过提交:
转到特定的
commit-sha
。$ git checkout <commit-sha>
如果你在这里有未提交的更改,你可以签出到一个新的分支 |添加|提交 |将当前分支推送到远程。
# checkout a new branch, add, commit, push $ git checkout -b <branch-name> $ git add . $ git commit -m 'Commit message' $ git push origin HEAD # push the current branch to remote $ git checkout master # back to master branch now
如果您在特定提交中有更改并且不想保留更改,您可以执行
stash
或reset
然后检出到master
(或者,任何其他分支)。# stash $ git add -A $ git stash $ git checkout master # reset $ git reset --hard HEAD $ git checkout master
检查特定提交后,如果没有未提交的更改,则返回
master
或other
分支。$ git status # see the changes $ git checkout master # or, shortcut $ git checkout - # back to the previous state