草庐IT

resetting

全部标签

git - 我如何在 Mercurial 上执行 git reset --hard HEAD?

我是一名尝试使用Mercurial的Git用户。事情是这样的:我对我想还原的变更集执行了hgbackout。这创造了一个新的头,所以hg指示我merge(回到“默认”,我假设)。merge后,它告诉我我仍然必须提交。然后我注意到我在解决merge中的冲突时做错了什么,并决定我希望一切都像hgbackout之前一样,也就是说,我希望这个未提交的merge消失。在Git上,这个未提交的东西会在索引中,我只是做一个gitreset--hardHEAD来清除它,但是,据我所读,索引不存在Mercurial。那么我该如何退出呢? 最佳答案 如

git - 如何 git reset --hard 一个子目录

UPDATE²:WithGit2.23(August2019),there'sanewcommandgitrestorethatdoesthis,seetheacceptedanswer.UPDATE:ThiswillworkmoreintuitivelyasofGit1.8.3,seemyownanswer.想象一下以下用例:我想删除我的Git工作树的特定子目录中的所有更改,而保留所有其他子目录不变。我可以gitcheckout.,但是gitcheckout.addsdirectoriesexcludedbysparsecheckout有gitreset--hard,但它不允许我对子

git - 如何 git reset --hard 一个子目录

UPDATE²:WithGit2.23(August2019),there'sanewcommandgitrestorethatdoesthis,seetheacceptedanswer.UPDATE:ThiswillworkmoreintuitivelyasofGit1.8.3,seemyownanswer.想象一下以下用例:我想删除我的Git工作树的特定子目录中的所有更改,而保留所有其他子目录不变。我可以gitcheckout.,但是gitcheckout.addsdirectoriesexcludedbysparsecheckout有gitreset--hard,但它不允许我对子

git - git reset --hard origin/master 是什么意思?

我做了一个gitpull并得到了一个错误:Thefollowingworkingtreefileswouldbeoverwrittenbymerge...Pleasemoveorremovethembeforeyoucanmerge.为了解决这个问题,我做了以下事情:gitfetchgitreset--hardorigin/master现在,当我执行gitpull时,它会显示所有内容都是最新的。我想知道当我运行这些命令时到底发生了什么。我知道gitfetch从远程仓库中获取更改,而不将它们merge到我的本地仓库中。gitreset--hardorigin/master是什么意思?它是

git - git reset --hard origin/master 是什么意思?

我做了一个gitpull并得到了一个错误:Thefollowingworkingtreefileswouldbeoverwrittenbymerge...Pleasemoveorremovethembeforeyoucanmerge.为了解决这个问题,我做了以下事情:gitfetchgitreset--hardorigin/master现在,当我执行gitpull时,它会显示所有内容都是最新的。我想知道当我运行这些命令时到底发生了什么。我知道gitfetch从远程仓库中获取更改,而不将它们merge到我的本地仓库中。gitreset--hardorigin/master是什么意思?它是

git - 通过 "git reset --hard"从丢失未提交的更改中恢复

有什么方法可以从gitreset--hardHEAD恢复对工作目录的未提交更改? 最佳答案 来自这个SO的答案$gitreflogshow4b6cf8e(HEAD->master,origin/master,origin/HEAD)HEAD@{0}:reset:movingtoorigin/master295f07dHEAD@{1}:pull:Mergemadebythe'recursive'strategy.7c49ec7HEAD@{2}:commit:restoredependenciestotheUsermodelfa57f5

git - 通过 "git reset --hard"从丢失未提交的更改中恢复

有什么方法可以从gitreset--hardHEAD恢复对工作目录的未提交更改? 最佳答案 来自这个SO的答案$gitreflogshow4b6cf8e(HEAD->master,origin/master,origin/HEAD)HEAD@{0}:reset:movingtoorigin/master295f07dHEAD@{1}:pull:Mergemadebythe'recursive'strategy.7c49ec7HEAD@{2}:commit:restoredependenciestotheUsermodelfa57f5

git reset --hard HEAD 留下未跟踪的文件

当我运行gitreset--hardHEAD时,它应该重置为您所pull的原始版本,据我所知。不幸的是,它留下了文件,因为gitstatus显示了大量未跟踪文件。您如何告诉git“只需将其恢复到上次pull时的状态,不多也不少”? 最佳答案 你必须使用gitclean-f-d来清除工作副本中未跟踪的文件和目录。您可以添加-x以删除忽略的文件,更多信息请参见thisexcellentSOanswer.如果您需要将带有子模块的整个存储库重置为master上的状态,请运行此脚本:gitfetchoriginmastergitcheckou

git reset --hard HEAD 留下未跟踪的文件

当我运行gitreset--hardHEAD时,它应该重置为您所pull的原始版本,据我所知。不幸的是,它留下了文件,因为gitstatus显示了大量未跟踪文件。您如何告诉git“只需将其恢复到上次pull时的状态,不多也不少”? 最佳答案 你必须使用gitclean-f-d来清除工作副本中未跟踪的文件和目录。您可以添加-x以删除忽略的文件,更多信息请参见thisexcellentSOanswer.如果您需要将带有子模块的整个存储库重置为master上的状态,请运行此脚本:gitfetchoriginmastergitcheckou

git版本回退(git reset、git revert、git stash)

文章目录回退的两种情况1.已commit,未push到远程仓库。1.1gitreset--soft(撤销commit)1.2gitcommit--amend(修改commit提交的内容)1.3gitreset--mixed(撤销commit和add两个动作)2.已commit,并且push到了远程仓库。2.1gitstashsave"XXX"(如果当前已修改了代码文件,发现需要进行版本回退,可以使用,将当前文件缓存)2.2gitreset--hard版本号(撤销并舍弃版本号之后的提交记录)2.3gitrevert版本号(撤销,但是保留了提交记录)本文git相关命令:gitreset:回退版本,