相关疑难解决方法(0)

各种方法删除本地Git更改

我刚刚克隆了一个git存储库并检出了一个分支.我努力了,然后决定删除我所有的本地更改,因为我想要原始副本.

简而言之,我必须执行以下两个命令来删除我的本地更改

git checkout .

git clean -f
Run Code Online (Sandbox Code Playgroud)

我的问题是,

(1)这是摆脱当地变化的正确方法,或者请让我知道正确的方法.

(2)我们什么时候使用,git reset --hard因为即使没有这个命令也可以重置

谢谢

*解决方案:主要编辑:03/26:* 用git特定术语[tracked/untracked/staged/unstaged]替换了许多含糊不清的术语

当我们进行本地更改时,只有三类文件:

类型1.分阶段跟踪文件

键入2.未分级跟踪文件

键入3. Unstaged UnTracked文件,即UnTracked文件

  • 分阶段 - 那些被移动到临时区域/添加到索引
  • 跟踪 - 修改过的文件
  • UnTracked - 新文件.总是没有分期.如果上演,则意味着他们被跟踪.

每个命令的作用:

  1. git checkout . - 仅删除未分级跟踪文件[类型2]

  2. git clean -f - 仅删除未分级的UnTracked文件[类型3]

  3. git reset --hard - 仅删除分阶段跟踪和未分阶段跟踪文件[类型1,类型2]

  4. git stash -u - 删除所有更改[类型1,类型2,类型3]

结论:

很明显,我们可以使用其中之一

(1) combination of `git clean -f` and `git reset --hard` 
Run Code Online (Sandbox Code Playgroud)

要么

(2) `git stash -u`
Run Code Online (Sandbox Code Playgroud)

达到预期的效果.

注意:存储,因为这个词的意思是"在指定的地方安全地,秘密地存储(某物)".这总是可以使用git stash pop.因此,在上述两个选项之间进行选择是开发人员的号召.

谢谢Christoph和FrederikSchøning.

编辑:03/27

我认为值得把" …

git git-bash

609
推荐指数
5
解决办法
54万
查看次数

将存储应用于不同的分支

我不小心在错误的分支上工作.现在我想将所有更改传输到正确的分支.

如果我存储更改并将它们应用于正确的分支,它是否只将未提交的更改添加到正确的分支或每个更改/提交来自错误的分支(正确的分支上不存在)?

例如

错误的分支有:

  • 提交一个

  • 未提交的更改b

正确的分支有

  • 提交c

如果我在错误的分支上执行git stash并且git将stash应用于正确的分支,它是否会将提交转移到正确的分支?

git git-stash

15
推荐指数
3
解决办法
2万
查看次数

放弃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 ×3

branch ×1

git-bash ×1

git-reset ×1

git-stash ×1

rollback ×1