这不是我第一次对我的存储库进行硬重置,但这次我遇到了错误。我正在做一个iOS项目。我正在从终端进行重置。我该如何修复fatalerrorfatal:Couldnotparseobject'e88056ac5d58fb0bbd23d3fe929eac01712d964' 最佳答案 我有同样的问题并已修复。Thisproblemoccurswhentherehavebeenchangeslikeforce-pushestoagitrepowhichisreferencedinaGemfile.Thesolutionisistocomme
假设什么都没有上演,推荐的方法是什么来重置你所做的所有工作,文件除外: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个文件添加到索
我犯了一个错误,向git提交了一些我不应该提交的更改。在我提交之后,我推送了我的更改。然后我使用以下命令尝试重置我的更改。gitreset--hardhead现在我想使用此命令将此“重置”推送到远程存储库:gitpushMyBranch但是我收到了这个错误:remote:error:denyingnon-fast-forwardrefs/heads/branch(youshouldpullfirst)我尝试使用这个命令但没有成功:gitpush-f"origin"知道我能做什么吗? 最佳答案 gitpush-foriginmyBra
虽然reset和checkout大多数时候有不同的用法,但我看不出这两者之间有什么区别。可能有人或没有人愿意添加一个--hard选项来做一些基本的checkout可以做的事情。也许您看待历史的方式有所不同? 最佳答案 这个答案主要引用self对上一个问题的回答:gitresetinplainenglish.两者有很大的不同。它们会为您的索引和工作树生成相同的状态,但生成的历史记录和当前分支并不相同。假设您的历史记录如下所示,当前已checkoutmaster分支:-A-B-C(HEAD,master)然后你运行gitreset--h
我需要恢复部署的本地更改。(在旧的skoolSVN时代,我曾为此使用过svnrevert。)我为此使用了gitreset--hardHEAD。(还有gitfetch和gitmergeorigin/$branch--no-ff用于与上游分支同步。)但有些文章指出gitcheckout-f用于恢复更改。这些命令之间的主要区别是什么。推荐哪种方式? 最佳答案 两者的效果完全一样。我建议您选择您最满意的解决方案。但是如果在这种特殊情况下效果是一样的,不同的值就会完全不同。基本上(还有更多,请参阅链接主题)通过重置将当前分支和HEAD移动到特
我正在努力恢复我的工作。我愚蠢地执行了gitreset--hard,但在此之前我只执行了getadd.而没有执行gitcommit。请帮忙!这是我的日志:MacBookPro:apiuser$gitstatus#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)#modified:.gitignore...MacBookPro:apiuser$gitreset--hardHEADisnowatff546faaddednewstrucutureforapi在这种情况下是否可以撤消gitreset--ha
我有一个存储库,上面有一些错误的提交(本例中为D、E和F)。A-B-C-D-E-Fmasterandorigin/master我专门使用gitreset--hard修改了本地存储库。我在重置之前选择了一个分支,所以现在我有一个看起来像这样的repo协议(protocol):A-B-Cmaster\D-E-Fold_masterA-B-C-D-E-Forigin/master现在我需要那些错误提交的一些部分,所以我挑选了我需要的部分并做了一些新的提交,所以现在我在本地有以下内容:A-B-C-G-Hmaster\D-E-Fold_master现在我想将这种情况推送到远程仓库。但是,当我尝试
在gitreset--hard之后,gitstatus为我提供了Changesnotstagedforcommit:部分中的文件。我也试过gitreset.,gitcheckout--.和gitcheckout-index-f-a,没有有用。那么,我怎样才能摆脱那些未暂存的更改呢?这似乎只针对VisualStudio项目文件。诡异的。看到这个贴:http://pastebin.com/eFZwPn9Z.这些文件的特别之处在于.gitattributes我有:*.slneol=crlf*.vcprojeol=crlf*.vcxproj*eol=crlf此外,autocrlf在我的全局.g
我想拆分一个提交,但不确定要使用哪个重置选项。我正在查看页面InplainEnglish,whatdoes"gitreset"do?,但我意识到我并不真正理解git索引或暂存区是什么,因此解释没有帮助。此外,--mixed和--soft的用例在我看来在那个答案中是一样的(当你想修复并重新提交时)。有人可以进一步分解吗?我意识到--mixed可能是一个不错的选择,但我想知道为什么。最后,--hard呢?谁能给我一个工作流程示例,说明如何选择这3个选项? 最佳答案 当您修改存储库中的文件时,更改最初是未暂存的。为了提交它,您必须使用gi
这个问题在这里已经有了答案:HowdoIrevertaGitrepositorytoapreviouscommit?(41个回答)关闭8年前。我知道Git会跟踪我对应用程序所做的更改,并保留它们直到我提交更改。为了恢复到之前的提交,我使用了:$gitreset--hardHEADHEADisnowat820f417micro然后如何将我硬盘上的文件恢复到之前提交的状态?我接下来的步骤是:gitadd.gitcommit-m"revert"但是我硬盘上的文件都没有改变...