相关疑难解决方法(0)

6561
推荐指数
33
解决办法
214万
查看次数

各种方法删除本地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万
查看次数

git命令中的<pathspec>是什么?

我已经在我的应用程序中更新,修改和删除了文件,现在我已准备好提交.这是状态:

C:\G\ab\WebAdminApp>git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   WebAdminApp.csproj
        modified:   WebAdminApp.csproj.user
        modified:   app/admin/controllers/ContentController.ts
        deleted:    app/admin/interfaces/IEnumService.ts
        modified:   app/admin/interfaces/IHomeController.d.ts
        modified:   lib/pagedown/Markdown.Sanitizer.ts
        deleted:    lib/typings/global.ts
        modified:   package.json
        modified:   ../abilitest-admin.v12.suo

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        app/interfaces/IEnumService.d.ts
        app/interfaces/IUtilityService.d.ts
        ../npm-debug.log
Run Code Online (Sandbox Code Playgroud)

没有更改添加到提交(使用"git add"和/或"git commit -a")

当我进入:

git add . …
Run Code Online (Sandbox Code Playgroud)

git github

8
推荐指数
3
解决办法
4199
查看次数

在Git下恢复

当我运行'git checkout'时,我还想删除提交后创建的所有其他文件.

但我找不到方法.这是我测试的东西,

我提交后创建了一个目录test并创建了一个文件test/test.txt.

然后我跑git add .git checkout,但新的文件和目录未删除.

为什么新文件仍然存在,即使我把命令git checkout作为回滚?

我怎样才能完全回到舞台上?

感谢您抽出宝贵时间阅读我的问题.

git git-checkout

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

“放弃所有更改”和“隐藏所有更改”之间有什么区别?

我想撤消该命令npm create vite@latest。我想恢复我的更改,但它们不会出现在 git log 中或被保存。

在 Visual Studio Code 的“源代码管理”选项卡中,未暂存的更改顶部有两个按钮,当您将鼠标悬停在它们上方时会出现这些按钮:

在此输入图像描述

悬停时有人说:

在此输入图像描述

另一则写道:

在此输入图像描述

它们之间有什么区别?

如何使用 Git CLI 复制他们的行为?

git command-line-interface visual-studio-code

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