问题标签 [git-reset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
82 浏览

git - 回滚远程上的最后一次提交

我想完全按照这个问题的要求去做。

我尝试了答案,但没有奏效。这是我所做的(我是大师):

检查我的本地是否等于远程:

两者都为空输出。然后:

0 投票
12 回答
757104 浏览

git - 我可以删除 git commit 但保留更改吗?

在我的一个开发分支中,我对我的代码库进行了一些更改。在我能够完成我正在开发的功能之前,我必须将我当前的分支切换到 master 来演示一些功能。但是仅使用“git checkout master”就保留了我在开发分支中所做的更改,从而破坏了 master 中的一些功能。所以我所做的是在我的开发分支上提交更改,并使用提交消息“临时提交”,然后为演示签出 master。

现在我已经完成了演示并回到我的开发分支上工作,我想删除我所做的“临时提交”,同时仍然保留我所做的更改。那可能吗?

0 投票
2 回答
90 浏览

git - 将推送的 git 提交转换为一个

我正在为我所做的任何新项目使用样板。但是,我在样板文件中所做的提交会传递给新项目。我将如何简单地进行“初始提交”,其中包括一次提交中的所有内容并删除旧的提交历史记录?

0 投票
1 回答
1026 浏览

git - 示例中的 HEAD 位置来自 git docs on stash 命令

我一直在阅读命令如何简化生活的示例stash,并遇到了以下代码片段:

据我所知,这里发生的情况如下:

我们在当前提交处创建一个新分支:

然后我们暂存修改过的文件并对my_wip分支进行新的提交:

然后我们结帐master

然后我们修改一些文件并进行新的提交(带有初步暂存(-a标志)):

然后我们结帐my_wip

然后我们做git reset --soft HEAD^

在这个命令之后,我希望 git 移动HEAD到它之前的位置,即3提交。所以我希望它能让我们进入这个阶段(工作目录和暂存区来自2提交):

但正如我从文档中得到的那样,它会这样做(因为在取消存储后,我们应该到达我们决定存储时所处的位置):

这是否意味着这HEAD^是当前分支的先前位置,因此它取决于所选分支(我一直认为这HEAD^只是HEAD当前分支的先前位置)?还是我误解了什么?

0 投票
1 回答
188 浏览

git - git push -f:如何确保其他人赶上?

注意:我知道git push -f问题很常见,但我真的无法在任何地方轻松找到这个特定问题的答案。我想要一个全面的答案,而不仅仅是在某种程度上解决我的问题的东西。在问题的最后,我自己提出了一个解决方案。

我已经将一些更改推送到我不应该(在工作中)的分支。我已经git revert修改了更改,但其中一位团队协调员实际上希望我git reset <old commit> && git push -f这样做,这样历史记录就不会被还原提交弄乱。很少有人使用那个分支,所以我们认为值得冒险。

它起作用了,但我担心已经拉过我提交的人可能会不小心再次快进远程分支,因为历史还没有分歧(我只是重置为旧的提交,但没有做任何其他在那个之上提交)。

我注意到,如果我git reset <old HEAD commit> && git status,Git 说它是在 之前的几个提交origin/<branch>,所以我确定如果我git push再次提交,Git 会快进它。

git pull说回购是最新的并且不会回溯(无论如何我认为它不应该这样做)。但是,我应该怎么做才能确保每个人都回到正确的 HEADorigin/<branch>并从那里开始工作?git reset origin/<branch>在恢复该分支机构的工作之前,我是否需要要求所有人?我真的想要一些更容易且不易出错的东西(他们可能会忘记这样做)。

我知道我不应该 git 重置共享仓库上的分支,但你知道它是怎么回事...无论如何教育经验:P

0 投票
1 回答
96 浏览

git - git reset --soft 改变我的索引

作为 git 的新手,我正在研究我可以做的各种重置。

我的印象是git reset --soft不会改变索引或工作目录,它只会改变 repo 的头部。

所以我过去对提交执行了软重置。

由于我的索引或工作目录都不应该更改,我现在希望 agit status说我有未跟踪的更改,因为我的工作目录中的文件将比我刚刚在 repo 中的文件更新回去了。

但是它告诉我我修改过的文件在索引中?怎么会这样?我没有答应他们。毕竟软重置会改变索引吗?

0 投票
1 回答
30 浏览

git - Getting back to an erroneous git reset

Say I'm working on a project and I'm making various commits as I go along

A - B - C - D - E

And I realise that I made a mistake and need to do git reset to go back to version C.

So I then carry on making commits like this: C - D2 - E2 - F2 - G2 etc.

Where D2 is different to D, E2 is different to E etc.

I then realise that I was right in the beginning, and I need to get back to E.

As long as I have kept a note of the SHA of version E, is this possible by doing git reset hjsdkgjdfg where hjsdkgjdfg is the hash of E? I've heard git 'cleans up' (deletes) loose ends every now and then - would D and E be classed as 'loose ends'? Does it depend on the type of reset I have done: soft, mixed, hard?

Bearing in mind I'm a beginner, is this the correct sort of workflow? Or is this a terrible way of working?

Thanks

0 投票
3 回答
957 浏览

git - git 删除服务器上的提交

我在 git 中管理的项目中犯了一些错误:

在这里阅读一些指南和一些帖子我做了这个命令:

commint a77ec5f 是最后一个“好”提交

在此之后,这些文件就在我的本地副本中,但是如果我这样做git status

现在,我如何告诉服务器我落后的 4 个提交要删除?谢谢

0 投票
4 回答
23731 浏览

git - Git:“git reset”后如何重用/保留提交消息?

作为 Git 用户,我经常遇到这样的情况,即我需要以不适合--amend或不适合修复提交的方式重新处理一个或多个rebase -i提交。通常我会做类似的事情

我非常认真地对待明智的组合提交消息。它们通常包含较大的文本,其中包含更改的参考和理由。到目前为止,我对通过 unsorted 以及复制和粘贴过程来恢复我的旧提交消息的漫长过程感到非常git reflog恼火git log

有没有更好的方法来解决这个问题?如果我包含多个提交,它会如何?

编辑:经过一番思考,我认为我正在寻找一些类似于 git stash的功能,用于不适合修复/修改提交的提交消息。

0 投票
3 回答
1128 浏览

git - 我如何存储一些在 git reset --hard 中幸存下来的本地更改

我有一些我不想提交的本地更改(不在单独的文件中,所以 .gitignore 不起作用)。
git reset --hard有时会在承诺清除偶尔的更改后这样做,但显然我也失去了我想离开的有用更改。

如何保留有用的更改?