相关疑难解决方法(0)

Git:如何还原2个顽固地停留在"已更改但未提交"的文件?

我有一个repo,有两个文件,据说我在本地更改.

所以我坚持这个:

$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   dir1/foo.aspx
#       modified:   dir2/foo.aspx
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)

做了git diff说整个文件内容已经改变了,即使从眼球看起来似乎是不真实的(似乎有差异的共同行范围似乎没有看到).

有趣的是我不记得在本地更改这些文件.此仓库与一个远程仓库(私人,GitHub.com,FWIW)一起使用.

无论我尝试过什么,我都不能放弃这些局部变化.我尝试了所有:

$ git checkout -- .
$ git checkout -f
$ git checkout -- dir1/checkout_receipt.aspx
$ git reset …
Run Code Online (Sandbox Code Playgroud)

git github revert

79
推荐指数
5
解决办法
4万
查看次数

使用git,如何将工作树重置为索引的状态?

情况:

  1. 编辑文件
  2. 将文件添加到索引
  3. 编辑更多文件

现在我们有三种不同的状态.HEAD的状态,索引的状态和工作树的状态.撤消工作树中的更改以使其与索引的状态匹配的命令是什么?

git

62
推荐指数
4
解决办法
2万
查看次数

如何将git add patch -p模式与diff的ignore-all-space结合起来

如何使用补丁模式执行git add但忽略空格更改.

用例适用于您重新格式化文件并对其进行更改的情况.我想首先单独提交实际代码更改(如git diff -w path所示),然后将重新格式化提交为单独的提交.

git whitespace patch

30
推荐指数
2
解决办法
3980
查看次数

为什么不"git reset HEAD"撤消我未提交的,未分级的更改?

我以前能够通过执行"Discard"功能来撤消SourceTree的更改,该功能在引擎盖下生成此命令:

git -c diff.mnemonicprefix=false -c core.quotepath=false reset -q HEAD -- myproj.csproj 
git -c diff.mnemonicprefix=false -c core.quotepath=false checkout HEAD -- myproj.csproj
Run Code Online (Sandbox Code Playgroud)

突然间这不起作用.我做丢弃,没有错误发生,重新审视视图,但文件仍然"修改".然后我尝试在命令行中使用以下相同的结果:

c:\myproject> git reset HEAD

Unstaged changes after reset:
M       myproj.csproj
Run Code Online (Sandbox Code Playgroud)

为什么它仍然被列为未分阶段的变化?

我已经验证该文件确实可写(没有进程持有锁)

更新

git checkout 也不起作用:

C:\myproject>git checkout myproj.csproj

C:\myproject>git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   myproj.csproj
# …
Run Code Online (Sandbox Code Playgroud)

git

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

仅对空格/换行更改的文件签出(放弃更改)

是否有命令/选项/过滤器来丢弃所有修改后的文件的更改(通过结帐),这些文件的更改只影响空白?

或者,仅暂存具有非空白更改的文件(包括暂存其空格更改)将没有问题.

git

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

放弃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 add跟踪内容到存储库时,git复制/更新其对象存储的内容.如果我git add再次连续更改我的内容,并且我对所有这些更改感到遗憾,并且我希望将索引中的最后一个快照恢复到我的工作副本,我该怎么办?

git

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

从远程仓库中检索丢失的文件?

我不小心从我当地的git repo中删除了一些文件.

我没有把这个改变推到遥控器上.

有没有一种简单的方法可以从遥控器上取回这些文件?

通常我会做一个,git clone但似乎应该有一个更好的方法.

git repository git-remote

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

git undo删除文件

我是git的新手.我有来自远程的结帐文件.我不得不从git repo中删除一些文件.git rm我发出了unix rm -rf folder命令,而不是执行命令.我需要还原delete命令然后执行git rm命令.如何恢复到最新的代码?

注意:我还没有提交暂存文件.出来的git status是以下格式删除的文件列表:

#   deleted:    i18n/angular-locale_sl.js
#   deleted:    i18n/angular-locale_in.js 
Run Code Online (Sandbox Code Playgroud)

git git-stage git-rm

7
推荐指数
3
解决办法
1万
查看次数

无法丢弃 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
查看次数