草庐IT

git - git reset 文件和 git checkout 文件有什么区别?

为什么git允许我重置文件?我以为我理解了reset,因为它正在移动HEAD...显然我错了。所以,gitresetshafile似乎和gitcheckoutshafile做的一样,除了我在索引和工作目录中。这对我来说没有意义。有人可以解释一下区别吗? 最佳答案 tl;drgitresetCOMMITFILE仅更改索引,gitcheckoutCOMMITFILE将同时更改索引和工作树。gitreset有--soft、--hard和--mixed非常重要的标记(and--keepand--merge)http://git-scm.co

windows - 添加 .gitattribute 后 git reset --hard 的问题 -- 不应该存在的本地更改

在merge我同事的包后,我发现了CRLF问题。有时带有LF的行会混合到源中,可能是merge到的那些。因此,我们决定添加.gitattributes具有以下内容的文件(已删除注释):*.cpptext*.htext*.inctext*.cfgtext*.dictext*.slntexteol=crlf*.vcxprojtexteol=crlf*.filterstexteol=crlf*.usertexteol=crlf*.rctexteol=crlf*.rc2texteol=crlf现在我观察到奇怪的行为。我可以看到很多modified:...不应该存在的文件(即未暂存)。我试过gi

git - 恢复 - git reset --hard HEAD^

不幸的是,我做了几次gitreset--hardHEAD^,在几个文件中丢失了相当大的代码块。有没有办法恢复这些提交,或者在这种情况下转发到HEAD之前所在的位置,这样我就可以调出我丢失的那些行? 最佳答案 使用reflog恢复以前的HEAD的sha1。特别是文章reflog,yoursafetynet将与您特别相关。来自那篇文章:Themostcommonusageofthiscommandisthatyou’vejustdoneagitresetandmovedyourHEADbackafewcommits.Butoops,yo

git - git 克隆存储库的 "reset"命令是什么?

我已经下载了一个存储库gitclone我已经做了一些修改并编辑了一些文件,现在我想丢弃所有东西,只是确保我在磁盘上的东西就是代码库的原始远程版本:什么是正确的命令? 最佳答案 下面是详细的解释,以便您了解正在发生的事情:假设Remote被称为origingitreset--hardHEADgitcheckoutorigin/mastergitbranch-Dmastergitcheckout-bmaster它的作用是:(可选,如果gitstatus显示没有修改过的文件)丢弃磁盘上的任何个修改过的文件(这就是reset--hard的原

git - 新的 git 存储库和 git reset 已经不起作用

1)我在文件夹中执行了gitinit2)添加了一些项目文件3)我做了gitadd*所以它递归地添加了所有文件4)我意识到我添加了一堆我不想版本控制的文件,所以我想撤消添加5)gitreset给我以下错误:fatal:Failedtoresolve'HEAD'asavalidref.6)gitstatus仍然显示所有添加的文件7)我尝试了gitreset--hardHEAD并得到了以下错误:fatal:ambiguousargument'HEAD':unknownrevisionorpathnotintheworkingtree.Use'--'toseparatepathsfromrev

git reset --hard origin/master 失败

尝试丢弃服务器上的更改,并使其与origin/master完全相同:gitfetch--allgitreset--hardorigin/master我之前在同一个repo上做过这个没有问题,但这次它失败了,原因如下:fatal:Couldnotresetindexfiletorevision'origin/master'已尝试以下方法:按照建议删除索引并重置here:rm.git/indexgitreset还建议here某些进程可能会锁定.git\index。杀死进程然后执行gitreset可以修复它,但不确定如何检查远程文件是否有锁定。似乎删除索引文件并重置也会产生相同的效果。让我失

git - 没有任何选项的 'git reset' 命令有什么作用?

如果没有任何其他选项,“gitreset”命令会做什么?它会用头部重置分期索引吗? 最佳答案 没错。没有选项,“gitreset”被解释为“gitreset--mixedHEAD”。gitreset有三种模式:soft,mixed,hard(默认是“mixed”)。与许多其他git命令一样,gitreset接受一个参数,该参数是对提交的引用(分支名称、标签名称、提交SHA、相对引用,如HEAD~2)。默认情况下,如果未指定引用,则使用HEAD。我建议你阅读“Progit”的上一篇博文,其中详细解释了“gitreset”命令:http

git - 为什么 "git reset HEAD"不能撤消我未提交的、未暂存的更改?

我以前能够通过执行“丢弃”功能通过SourceTree撤消更改,该功能在后台生成此命令:git-cdiff.mnemonicprefix=false-ccore.quotepath=falsereset-qHEAD--myproj.csprojgit-cdiff.mnemonicprefix=false-ccore.quotepath=falsecheckoutHEAD--myproj.csproj突然这行不通了。我做了丢弃,没有错误发生,刷新View,但文件仍然是“修改过的”。然后我尝试在命令行中执行相同的操作,结果相同:c:\myproject>gitresetHEADUnstag

git reset --hard 错误 : Could not parse object

这不是我第一次对我的存储库进行硬重置,但这次我遇到了错误。我正在做一个iOS项目。我正在从终端进行重置。我该如何修复fatalerrorfatal:Couldnotparseobject'e88056ac5d58fb0bbd23d3fe929eac01712d964' 最佳答案 我有同样的问题并已修复。Thisproblemoccurswhentherehavebeenchangeslikeforce-pushestoagitrepowhichisreferencedinaGemfile.Thesolutionisistocomme

git - 如何 git reset --hard 除了 4 个文件之外的所有内容

假设什么都没有上演,推荐的方法是什么来重置你所做的所有工作,文件除外:app/models/a.rbapp/views/a/index.html.rbconfig/foo.rbconfig/bar.rb我不想保留的其他脏文件存在于app/models/和app/views/中。 最佳答案 正如您描述的问题,您似乎不想重置。最简单的事情是:gitaddapp/models/a.rbapp/views/a/index.html.rbconfig/foo.rbconfig/bar.rbgitcheckout.因此,它将您的4个文件添加到索