我在git中有一个项目。我检查了一个早先的提交,现在我在一个未命名的分支上。我想在这里保存工作并回到最新的分支,但仍然可以回来。我该怎么做,是藏匿的吗?流行?
这是发生了什么。我意识到几个月前我需要回到现状。所以我跑了
$ git log
并找到提交号,E.G。
commit 1910e8fdf0b37cd5c7a693572bf89767a2615c7d
Author: user account <user@xxx.xxx.xxx>
Date: Fri Jun 15 15:00:43 2012 -0700
--> WORKING VERSION <--
此时我通过输入以下内容切换到该提交:
$ git checkout 1910e8fdf0b37cd5c7a693572bf89767a2615c7d
我做了一些改变。现在我需要跳回到最新版本,但我想保留我在早期版本中所做的更改。我不想合并他们;他们应该是一个单独的分支。但我不在分支机构。当我输入“git branch”时,我得到了这个:
$ git branch
* (no branch)
bias_turn_on_experiment
hst_persist
master
“git status”告诉我这个:
$ git status
# Not currently on any branch.
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: sn102
# modified: timIRmisc.asm
# modified: timing.def
#
那么如何保存事物的状态,回到master,然后回到当前状态,而不影响任何其他分支?它是git stash吗?但那我又在哪里重新播放?或者也许是git stash分支?我不确定。感谢。
答案 0 :(得分:2)
我会用git branch <NAME>
创建一个分支,然后将提交存入其中。然后您可以稍后再检查分支并在那里弹出存储以继续工作。
编辑 user3392484解决方案就可以了。为了保持功能清洁的历史,我更喜欢我的方法。
答案 1 :(得分:1)
创建一个分支来保存您的更改:
git branch foo 1910e8f
git checkout foo
git add ...
git commit
如果你不想创建一个分支(请问为什么不这样做),然后在分离状态和标记中提交:
git add ...
git commit
git tag foo