标签: git-reset

双击[ - ]选项对git重置有什么作用?

我见过如下命令:

git reset e542 -- readme.txt
Run Code Online (Sandbox Code Playgroud)

我理解这个命令将提交e542中文件readme.txt的内容放入索引中.但--那里有什么选择呢?

git reset手册页将它列为前两个表单的可选项,但我找不到它的含义.

git reset [-q] [<commit>] [--] <paths>…
git reset (--patch | -p) [<commit>] [--] [<paths>…]
Run Code Online (Sandbox Code Playgroud)

git git-reset

12
推荐指数
1
解决办法
936
查看次数

孤立提交会发生什么?

我有一个有四个提交的回购:

$ git log --oneline --decorate
6c35831 (HEAD, master) C4
974073b C3
e27b22c C2
9f2d694 C1
Run Code Online (Sandbox Code Playgroud)

reset -- softC2提交,现在我有一个像这样的回购:

$ git reset e27b22c --soft

$ git log --oneline --decorate
e27b22c (HEAD, master) C2
9f2d694 C1
Run Code Online (Sandbox Code Playgroud)

现在我添加一个额外的提交,所以日志看起来像这样:

$ git log --oneline --decorate
545fa99 (HEAD, master) C5
e27b22c C2
9f2d694 C1
Run Code Online (Sandbox Code Playgroud)

发生了什么事提交C3C4?我没有删除它们,所以我认为它们仍在那里,C3我的父母仍在C2.

git git-reset git-commit

12
推荐指数
2
解决办法
2012
查看次数

egit替换单个文件 - HEAD Revision vs File in git index

在egit git eclipse插件中,我知道我可以通过右键单击它并选择Replace With> HEAD Revision来"重置"单个文件.在git index中用HEAD修订版替换为File有什么区别?

eclipse git egit git-reset

11
推荐指数
1
解决办法
8655
查看次数

恢复已添加到索引但随后通过git reset删除的文件

我在索引中添加了一些文件但是后来我用它删除了它们git reset --hard.我该如何恢复它们?这是发生的事情:

  1. 我添加了所有文件 git add .
  2. 然后我承诺了
  3. 当我检查状态时,仍然有来自add的提交中没有包含的文件,这很奇怪
  4. 我再次添加了未跟踪的文件,这次工作正常
  5. 但我希望一切都在一次提交中,所以我抬头看看如何取消我刚刚提交的内容
  6. 我用过git reset --hard HEAD^- 很明显,所有文件都被删除了
  7. 所以我常常git reflog找到我离开的地方
  8. 那时我常常git reflog ______回到上一次提交.
  9. 然后我常常git reset HEAD取消提交(我应该最初做的)但是我提交后添加的文件(见上文)仍然没有.

如何获取这些文件?

git git-add git-reset git-commit git-reflog

10
推荐指数
2
解决办法
5562
查看次数

放弃Git变化的正确方法

我已经看到许多不同的方法可以使用Git丢弃更改/恢复到之前的提交.我通常可以找出哪些适用于我的情况,但在这个过程中我对不同的方法感到很困惑.最近我试图撤消一些文件重命名,无论我多么努力地尝试git checkout旧版本的文件,我仍然无法恢复旧文件.

我正在寻找澄清使用哪种方法和原因.以下是我对一些方法的理解.我意识到答案可能非常具有上下文性,但我想尝试找出哪些上下文需要哪种方法.


1)git checkout -- .

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

2)git stash save --keep-index接下来git stash drop

  • 存储未提交的文件,然后完全删除它们.如果您已提交要保留的更改以及要丢弃的未提交/未暂存的更改,那么这是一种很好的方法.

3)git reset --hard

  • 擦除上次提交后的所有内容,包括文件重命名,删除和添加.

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

来源帖子:

git branch rollback git-reset

10
推荐指数
1
解决办法
1478
查看次数

恢复git上次提交并将其保存在不同的分支中

有没有办法回滚最后一次提交并将其放入一个单独的分支以供以后测试?我做了一些我不想完全抛弃的更改,我只想将它们放在另一个分支中进行进一步测试.

谁能帮我这个?

git git-reset git-commit git-branch

9
推荐指数
1
解决办法
3314
查看次数

`git reset --hard master`和`git reset --hard origin/master`有什么区别?

我在Stackoverflow /其他地方尝试了很多链接,以正确理解其行为

git reset --hard option

我知道:

  • 如果省略或如果它被删除origin,则在最近的提交中完成重置origin
  • 如果提供SHA1哈希,则在相应的提交上完成重置.

我不明白的是以下值:

  1. origin
  2. HEAD
  3. origin/master
  4. origin/branch

所有似乎都有相同的行为,即他们指向最新的提交master.

请解释上面提供的所有4值选项的重要性.

我还想知道我是否在特定分支上如何重置为该分支上的最后一次提交?例如v1.2,如果我在,origin/v1.2仍然会带我到最新的提交master.

git version-control github git-reset

9
推荐指数
1
解决办法
2万
查看次数

恢复到特定提交而不会丢失历史记录

我知道这类问题有很多重复,但我想开一个新问题,因为我没有在所有其他问题中找到解释我想要的最佳方法.

我知道我可以通过以下方式恢复并保持历史:

git reset --soft c14809fa
Run Code Online (Sandbox Code Playgroud)

我想恢复development分支并将历史记录保存在不同的分支上.

如果我development在恢复提交之前将其签出到新分支 - 例如

git checkout -b beforeRevert
Run Code Online (Sandbox Code Playgroud)

比我将结账回到开发分支并进行启示(因为我想继续处理我已经恢复的提交数据)

另一个分支,beforeRevert分支,将保留将在某一天再次使用的"恢复前"的所有历史和数据,但不会包含在当前development分支中?或者development分支上的恢复会以某种方式影响beforeRevert分支?

git git-reset git-branch

9
推荐指数
3
解决办法
7754
查看次数

`git reset --hard` 也重置被忽略的文件?

我有一些文件曾经在 git 存储库中,但后来被忽略了。(主要是配置文件)但是,当我运行时git reset --hard,这些忽略文件上的更改也会重置,我确信 head 版本已经忽略了这些文件。

这是正常的吗?有没有办法git reset --hard忽略被忽略文件的更改?

git git-reset

9
推荐指数
2
解决办法
5506
查看次数

无法丢弃 git 中的更改

一两个星期前,我拿了一些我用一个简单的find |sed|tar|xz|gpgbash 脚本存档的文件,把它们全部解压,然后把它们的内容放在一个 git repo 中,提交,把下一个存档内容放在 repo 中,提交(冲洗并重复)为了有一个更好的系统。

所有文件都是在我的两台计算机中的一台上编辑的,都使用 Arch Linux,在 TeXstudio 或 Vim 中。

我试图签出一个旧版本,但它翻了出来——它不会让我因为更改非常出色。我尝试了所有我知道的方法,然后去谷歌寻找我不知道的东西。

关于这个主题还有许多其他问题。不幸的是,他们的回答对我没有帮助。为了完成,我将列出问题。

$ git status
在分支 master 上
没有为提交而暂存的更改:(
使用“git add ...”更新将提交的内容)
(使用“git checkout -- ...”放弃工作目录中的更改)

修改:Arcs/arc1.tex
修改:Arcs/arc2.tex
修改:Arcs/frontmatter.tex

未向提交添加任何更改(使用“git add”和/或“git commit -a”)

另外,所以人们不需要看下面,我已经做了显而易见的事情。

git reset --hard
git -a commit
git stash
git pull
Run Code Online (Sandbox Code Playgroud)

以及从索引中删除所有内容并将其添加回来。

不能丢弃 GIT 中的文件更改

我不在 Windows 上。此外,这应该与行尾有关,因为我是唯一的用户。没有理由出现奇怪的行尾。

Git 拒绝重置/丢弃文件

git reset --hard HEAD (among other possibilities)
Run Code Online (Sandbox Code Playgroud)
git stash
git stash drop
Run Code Online (Sandbox Code Playgroud)
git config core.autocrlf input
git rm --cached -r …
Run Code Online (Sandbox Code Playgroud)

git git-stash git-checkout git-reset

7
推荐指数
2
解决办法
4731
查看次数