相关疑难解决方法(0)

在Git存储库中查找并恢复已删除的文件

说我在Git存储库中.我删除了一个文件并提交了更改.我继续工作,并做了一些更多的提交.然后,我发现我需要恢复该文件.

我知道我可以使用签出文件git checkout HEAD^ foo.bar,但我真的不知道该文件何时被删除.

  1. 找到删除给定文件名的提交的最快方法是什么?
  2. 将该文件恢复到我的工作副本的最简单方法是什么?

我希望我不必手动浏览我的日志,检查整个项目的给定SHA,然后手动将该文件复制到我原来的项目结帐中.

git file-io git-checkout

2716
推荐指数
20
解决办法
93万
查看次数

如何恢复Git中丢失的存储?

我经常使用git stashgit stash pop保存和恢复工作树中的更改.昨天我的工作树上有一些变化,我已经藏起来了,然后我对工作树做了更多改动.我想回去查看昨天发生的变化,但git stash pop似乎删除了对相关提交的所有引用.

我知道如果我使用git stash那么.git/refs/stash包含用于创建存储的提交的引用.而.git/logs/refs/stash包含整个存储.但那些参考文献已经消失了git stash pop.我知道提交仍然在我的存储库中,但我不知道它是什么.

有没有一种简单的方法来恢复昨天的隐藏提交引用?

请注意,这对我来说并不重要,因为我有每日备份,可以回到昨天的工作树来获取我的更改.我问,因为必须有一个更简单的方法!

git recovery git-stash

1617
推荐指数
22
解决办法
28万
查看次数

你如何存放未跟踪的文件?

我对文件进行了更改,加上一个新文件,并希望在切换到另一个任务时使用git stash将它们删除.但git stash本身只会隐藏对现有文件的更改; 新文件仍然存在于我的工作树中,使我未来的工作变得混乱.如何存放这个未跟踪的文件?

git git-stash

1287
推荐指数
13
解决办法
39万
查看次数

如何还原未提交的更改,包括文件和文件夹?

是否有一个git命令可以恢复工作树和索引中的所有未提交的更改,还可以删除新创建的文件和文件夹?

git git-revert git-reset git-clean

1012
推荐指数
11
解决办法
73万
查看次数

各种方法删除本地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 pull"错误将被合并覆盖?

如何在Git pull上忽略以下错误消息?

合并将覆盖对以下文件的本地更改

如果我覆盖它们怎么办?

我尝试了类似的东西git pull -f,但没有任何作用.

要清楚,我只想覆盖特定的变化,而不是一切.

git git-stash git-pull

503
推荐指数
21
解决办法
66万
查看次数

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我有:

*.sln        eol=crlf
*.vcproj     eol=crlf
*.vcxproj*   eol=crlf
Run Code Online (Sandbox Code Playgroud)

此外,autocrlf在我的全局中设置为false .gitconfig.这可能是某种相关的吗?

git git-reset

248
推荐指数
12
解决办法
12万
查看次数

为什么git不能通过路径进行硬/软复位?

$ git reset -- <file_path> 可以通过路径重置.

但是,$ git reset (--hard|--soft) <file_path>会报告如下错误:

Cannot do hard|soft reset with paths.
Run Code Online (Sandbox Code Playgroud)

git git-reset

123
推荐指数
5
解决办法
6万
查看次数

什么是“git restore”命令,“git restore”和“git reset”有什么区别?

当我想取消暂存文件时,我所有的 Git 教程都显示如下内容:

$ git add *
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    renamed:    README.md -> README
    modified:   CONTRIBUTING.md
Run Code Online (Sandbox Code Playgroud)

此提示告诉我们git reset用于取消暂存文件。

但是,在我的终端中,我看到:

git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    renamed:    cat.js -> catcat.js
    renamed:    tolendo.gogo -> tolendo.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    readme (copy).md
    tolendo (copy).txt
    zing (copy).html
Run Code Online (Sandbox Code Playgroud)

我的终端告诉我使用,git …

git restore git-reset unstage

107
推荐指数
4
解决办法
8万
查看次数

无法将存储应用于工作目录

我无法将存储应用回工作目录.

小故事:

首先,我试图推动一些改变,但它说:"不,你不能,先拉"...好吧,然后,我会从github拉出东西,然后推动我的改变.当我试图拉动时,它说我的变化会被过度写,我应该把我的变化藏起来.好吧,我隐藏了变化......做了拉动,并推动了提交的更改.但现在,我无法恢复我正在进行的未经修改的变化.

这是错误:

MyPath/File.cs already exists, no checkout
Could not restore untracked files from stash
Run Code Online (Sandbox Code Playgroud)

当然我还没有理解git的所有概念,他们让我有点困惑......也许我做错了什么.

如果有人可以帮我解决这个问题会很棒...我现在一直在搜索谷歌和所有东西超过一个小时,我还没有找到解决方案.

非常感谢帮助.谢谢!

git git-stash

89
推荐指数
5
解决办法
6万
查看次数