问题标签 [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 投票
1 回答
11303 浏览

eclipse - egit替换单个文件-git索引中的HEAD修订与文件

在 egit git eclipse 插件中,我知道我可以通过右键单击单个文件并选择 Replace With > HEAD Revision 来“重置”单个文件。用 HEAD 版本替换与 git index 中的文件有什么区别?

0 投票
21 回答
203226 浏览

git - git reset --hard 后留下的未分级更改

之后git reset --hardgit status给我Changes not staged for commit:部分内的文件。

我也试过git reset .git checkout -- .git checkout-index -f -a,无济于事。

那么,我怎样才能摆脱那些未分阶段的变化呢?

这似乎只针对 Visual Studio 项目文件。诡异的。请参阅此粘贴: http: //pastebin.com/eFZwPn9Z。这些文件的特别之处在于 .gitattributes 我有:

此外,autocrlf在我的 global 中设置为 false .gitconfig。这可能有点相关吗?

0 投票
3 回答
20385 浏览

git - 重置而不丢失已提交的文件

当我不小心将文件提交到错误的分支时,我通常使用git reset --hard HEAD~1. 但是,使用这种方法我通常会丢失所有提交的文件。有没有办法在不丢失编辑文件的情况下重置提交?

0 投票
1 回答
1610 浏览

git - 在 Git 中丢弃更改的正确方法

我见过许多使用 Git 丢弃更改/恢复到先前提交的不同方法。我通常可以弄清楚哪种方法适合我的情况,但在此过程中,我对不同的方法感到非常困惑。最近我试图撤消一些文件重命名,无论我多么努力地尝试git checkout旧版本的文件,我仍然无法恢复我的旧文件。

我正在寻找有关使用哪种方法以及原因的说明。这是我对几种方法的理解。我意识到答案可能与上下文相关,但我想尝试找出哪些上下文需要哪些方法。


1)git checkout -- .

  • 用于检出最新版本的文件,将覆盖旧文件但不会影响已删除、重命名或新文件。

2)git stash save --keep-index其次是git stash drop

  • 隐藏未提交的文件,然后完全删除它们。如果您已经提交了想要保留的更改和想要丢弃的未提交/未暂存的更改,那么这是一种很好的方法。

3)git reset --hard

  • 清除自上次提交以来的所有内容,包括文件重命名、删除和添加。

这是我目前对我的选择的理解。你会对我的解释有什么改变吗?我也不确定何时使用 agit revert代替上述命令。

来源帖子:

0 投票
1 回答
1819 浏览

git-reset - 重置后Git获取最新提交-hard

我之前做了一个 git reset -hard FETCH_HEAD ,但我不知道要回到我最近的提交。

当我在我的主分支上执行 git status 时,这就是出现的情况

当我在我的目录中打开应用程序时,12 次提交“用事件替换帖子”是显示的最新文件。我想回到我上次提交的 8 个“添加了活动显示页面,上传活动图片”......有什么想法吗?

0 投票
3 回答
147 浏览

git - 如果我将公共主机的公钥添加到我的 github 帐户中,是否存在任何安全问题?

这意味着其他人可能会推送到我托管在 github 上的 git repos,所以任何人都可以使用

  1. 这会破坏我托管在 github 上的 git 存储库吗?

  2. 如果某个坏人运行上述命令,我会丢失我的历史吗?

这个问题与如何从 github 中删除我的公钥不同?

0 投票
1 回答
101802 浏览

git - git rm --cached 文件 vs git 重置文件

我正在努力学习 Git。我很困惑

这两个命令似乎都将文件从暂存区域转移到非暂存区域。命令有何不同?

0 投票
5 回答
10778 浏览

git - Git 无法撤消修改过的文件

我只想回到一个干净的工作目录,就像我上次提交之后一样。Git 向我报告了我没有进行的大量文件修改,所以我怀疑这与行尾有关。

我已经尝试了所有常见的嫌疑人来做到这一点:

git reset --hard git commit -- . git stash git clean -fd

无论我做什么,git status总是显示与已修改相同的文件。我能做些什么?我在另一个分支中隐藏了未提交的更改,所以我不想只是炸掉所有东西,而只是“回滚”我的主分支。

编辑:输出

然后我尝试建议的内容以及我能找到的所有其他内容:

如您所见,尽管回滚,但没有任何变化。

所以然后我听从了建议并运行了一个忽略所有空格的差异,并且怀疑它在忽略空格时似乎没有区别 - 所以我猜它是行尾!我能做些什么来解决这个问题?我已经设置为autocrlf无济于事true

0 投票
1 回答
37 浏览

git - 使用克隆重置 GIT 开发

我目前的设置是我有一个 Prime 存储库(工作目录)、Hub 存储库(裸露的、开发人员推送和拉取)、克隆(用于开发人员)。Prime 和 Hub 存储库通过各种挂钩保持同步。

有一个问题,我想reset对 Prime 上的先前提交执行一个错误:To prevent you from losing history, non-fast-forward updates were rejected.

这是有道理的,但如果需要,我希望能够在 Prime 上执行重置。

我想知道reset在这种情况下处理先前提交的最佳方法是什么。

谢谢!

0 投票
2 回答
2687 浏览

git - 如何返工 git merge 提交?

我想修改在我们的持续集成服务器上未通过单元测试的合并提交,但我不想留下未通过历史测试的提交。

由于此提交仅由 CI 服务器使用(并且不会被其他任何人拉下),我想修复合并,然后--force将其推送以替换现有的失败合并提交。

我的问题是,我无法弄清楚如何轻松地回到原始提交之前的状态,以便我可以修复失败的测试,重新提交合并,然后强制推动该更改。

我真的不想重做整个合并,因为有相当多的文件必须解决冲突,除了一个以外的所有文件都已成功解决。

到目前为止我尝试过的

尝试1:git reset

我的第一次尝试是在合并提交之前对提交进行混合重置,修复合并引入的错误,然后重新提交。

不幸的是,这导致了一个非合并提交,它默默地合并了所有的分支更改——这并不是我真正想要的。*8')

尝试 2: reset, stash, merge&apply

然后我尝试使用 stash 来保存我在第一次尝试合并时所做的更改:

不幸的是,当git stash apply尝试将我的隐藏更改与现有的冲突合并文件合并时,它失败并出现错误

无法应用于脏工作树,请暂存您的更改

如果我尽职尽责地使用git add .thengit stash apply运行使我的工作目录干净,但现在我不仅有冲突,我还与它们中的冲突发生冲突,并且任何应该删除的文件都已重新添加。

尝试 3:amend和/或rebase.

我尝试了qqx简单建议来解决问题和原始提交,但实际上没有回到中间合并状态,您将无法访问合并工具。git commit --amend

一旦我提交,我就失去了运行的能力,git mergetool {file}因为它只是返回错误:

{file}:文件不需要合并

在尝试修复合并冲突时,我真的很喜欢能够使用kdiff3.

usingrebase遇到同样的问题。


任何可以让我达到我想要的结果的工作流程提示将不胜感激。