问题标签 [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.
eclipse - egit替换单个文件-git索引中的HEAD修订与文件
在 egit git eclipse 插件中,我知道我可以通过右键单击单个文件并选择 Replace With > HEAD Revision 来“重置”单个文件。用 HEAD 版本替换与 git index 中的文件有什么区别?
git - git reset --hard 后留下的未分级更改
之后git reset --hard
,git 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
。这可能有点相关吗?
git - 重置而不丢失已提交的文件
当我不小心将文件提交到错误的分支时,我通常使用git reset --hard HEAD~1
. 但是,使用这种方法我通常会丢失所有提交的文件。有没有办法在不丢失编辑文件的情况下重置提交?
git - 在 Git 中丢弃更改的正确方法
我见过许多使用 Git 丢弃更改/恢复到先前提交的不同方法。我通常可以弄清楚哪种方法适合我的情况,但在此过程中,我对不同的方法感到非常困惑。最近我试图撤消一些文件重命名,无论我多么努力地尝试git checkout
旧版本的文件,我仍然无法恢复我的旧文件。
我正在寻找有关使用哪种方法以及原因的说明。这是我对几种方法的理解。我意识到答案可能与上下文相关,但我想尝试找出哪些上下文需要哪些方法。
1)git checkout -- .
- 用于检出最新版本的文件,将覆盖旧文件但不会影响已删除、重命名或新文件。
2)git stash save --keep-index
其次是git stash drop
- 隐藏未提交的文件,然后完全删除它们。如果您已经提交了想要保留的更改和想要丢弃的未提交/未暂存的更改,那么这是一种很好的方法。
3)git reset --hard
- 清除自上次提交以来的所有内容,包括文件重命名、删除和添加。
这是我目前对我的选择的理解。你会对我的解释有什么改变吗?我也不确定何时使用 agit revert
代替上述命令。
来源帖子:
git-reset - 重置后Git获取最新提交-hard
我之前做了一个 git reset -hard FETCH_HEAD ,但我不知道要回到我最近的提交。
当我在我的主分支上执行 git status 时,这就是出现的情况
当我在我的目录中打开应用程序时,12 次提交“用事件替换帖子”是显示的最新文件。我想回到我上次提交的 8 个“添加了活动显示页面,上传活动图片”......有什么想法吗?
git - 如果我将公共主机的公钥添加到我的 github 帐户中,是否存在任何安全问题?
这意味着其他人可能会推送到我托管在 github 上的 git repos,所以任何人都可以使用
这会破坏我托管在 github 上的 git 存储库吗?
如果某个坏人运行上述命令,我会丢失我的历史吗?
git - git rm --cached 文件 vs git 重置文件
我正在努力学习 Git。我很困惑
和
这两个命令似乎都将文件从暂存区域转移到非暂存区域。命令有何不同?
git - Git 无法撤消修改过的文件
我只想回到一个干净的工作目录,就像我上次提交之后一样。Git 向我报告了我没有进行的大量文件修改,所以我怀疑这与行尾有关。
我已经尝试了所有常见的嫌疑人来做到这一点:
git reset --hard
git commit -- .
git stash
git clean -fd
无论我做什么,git status
总是显示与已修改相同的文件。我能做些什么?我在另一个分支中隐藏了未提交的更改,所以我不想只是炸掉所有东西,而只是“回滚”我的主分支。
编辑:输出
然后我尝试建议的内容以及我能找到的所有其他内容:
如您所见,尽管回滚,但没有任何变化。
所以然后我听从了建议并运行了一个忽略所有空格的差异,并且怀疑它在忽略空格时似乎没有区别 - 所以我猜它是行尾!我能做些什么来解决这个问题?我已经设置为autocrlf
无济于事true
。
git - 使用克隆重置 GIT 开发
我目前的设置是我有一个 Prime 存储库(工作目录)、Hub 存储库(裸露的、开发人员推送和拉取)、克隆(用于开发人员)。Prime 和 Hub 存储库通过各种挂钩保持同步。
有一个问题,我想reset
对 Prime 上的先前提交执行一个错误:To prevent you from losing history, non-fast-forward updates were rejected
.
这是有道理的,但如果需要,我希望能够在 Prime 上执行重置。
我想知道reset
在这种情况下处理先前提交的最佳方法是什么。
谢谢!
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
遇到同样的问题。
任何可以让我达到我想要的结果的工作流程提示将不胜感激。