首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git“重设”操纵台到头部,而不触及分期区域。

git“重设”操纵台到头部,而不触及分期区域。
EN

Stack Overflow用户
提问于 2016-09-09 07:20:41
回答 5查看 368关注 0票数 6

使用与git-reset手册页面相同的表表示形式,git存储库中有以下状态:

代码语言:javascript
复制
working index HEAD
------------------
 B       B     A

什么命令会把各州变成那些州?

代码语言:javascript
复制
working index HEAD
------------------
 A       B     A

换句话说,我希望将工作目录状态“重置”为HEAD状态,但不要触及暂存区域状态。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-09-09 07:59:40

这样做的一种方法是在执行git checkout之前和之后手动备份和恢复索引。

代码语言:javascript
复制
cp .git/index .git/index.bak
git checkout HEAD -- .
mv .git/index.bak .git/index
票数 1
EN

Stack Overflow用户

发布于 2022-02-02 18:02:08

正如在这个答案中所指出的,现在有一个本地git命令来执行以下操作:

代码语言:javascript
复制
git restore --source=HEAD --worktree -- .

大写

票数 3
EN

Stack Overflow用户

发布于 2016-09-09 08:11:08

我认为这应该是可行的(订购事宜)。

您首先需要提交索引中的内容(为了使头看起来像这个索引和工作目录:B --使用您的注释):

代码语言:javascript
复制
git commit

因此,头部将是B(使用您的注释)。

现在,打印reflog,因为我们需要B的散列:

代码语言:javascript
复制
git reflog

现在,使用不同的选项运行几个reset命令:

代码语言:javascript
复制
git reset --hard HEAD~ # makes the working directory, the index, and the HEAD looks like this: A, A, A (respectively)
git reset --mixed <hashOfB> # makes the working directory, the index, and the HEAD looks like this: A, B, B (respectively)
git reset --soft HEAD~ # makes the working directory, the index, and the HEAD looks like this: A, B, A (respectively)

我希望这能帮到你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39405942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档