草庐IT

Hard-label

全部标签

git - "git reset --hard hash"和 "git checkout hash"之间有区别吗?

虽然reset和checkout大多数时候有不同的用法,但我看不出这两者之间有什么区别。可能有人或没有人愿意添加一个--hard选项来做一些基本的checkout可以做的事情。也许您看待历史的方式有所不同? 最佳答案 这个答案主要引用self对上一个问题的回答:gitresetinplainenglish.两者有很大的不同。它们会为您的索引和工作树生成相同的状态,但生成的历史记录和当前分支并不相同。假设您的历史记录如下所示,当前已checkoutmaster分支:-A-B-C(HEAD,master)然后你运行gitreset--h

git - "git checkout -f"和 "git reset --hard HEAD"有什么区别?

我需要恢复部署的本地更改。(在旧的skoolSVN时代,我曾为此使用过svnrevert。)我为此使用了gitreset--hardHEAD。(还有gitfetch和gitmergeorigin/$branch--no-ff用于与上游分支同步。)但有些文章指出gitcheckout-f用于恢复更改。这些命令之间的主要区别是什么。推荐哪种方式? 最佳答案 两者的效果完全一样。我建议您选择您最满意的解决方案。但是如果在这种特殊情况下效果是一样的,不同的值就会完全不同。基本上(还有更多,请参阅链接主题)通过重置将当前分支和HEAD移动到特

git - 使用暂存区中未提交的文件撤消 git reset --hard

我正在努力恢复我的工作。我愚蠢地执行了gitreset--hard,但在此之前我只执行了getadd.而没有执行gitcommit。请帮忙!这是我的日志:MacBookPro:apiuser$gitstatus#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)#modified:.gitignore...MacBookPro:apiuser$gitreset--hardHEADisnowatff546faaddednewstrucutureforapi在这种情况下是否可以撤消gitreset--ha

Git reset --hard 并推送到远程仓库

我有一个存储库,上面有一些错误的提交(本例中为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现在我想将这种情况推送到远程仓库。但是,当我尝试

git - git reset --hard 后留下的未暂存更改

在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

git - git reset --mixed、--soft 和 --hard 之间有什么区别?

我想拆分一个提交,但不确定要使用哪个重置选项。我正在查看页面InplainEnglish,whatdoes"gitreset"do?,但我意识到我并不真正理解git索引或暂存区是什么,因此解释没有帮助。此外,--mixed和--soft的用例在我看来在那个答案中是一样的(当你想修复并重新提交时)。有人可以进一步分解吗?我意识到--mixed可能是一个不错的选择,但我想知道为什么。最后,--hard呢?谁能给我一个工作流程示例,说明如何选择这3个选项? 最佳答案 当您修改存储库中的文件时,更改最初是未暂存的。为了提交它,您必须使用gi

git - 如何使用 'git reset --hard HEAD' 恢复到之前的提交?

这个问题在这里已经有了答案:HowdoIrevertaGitrepositorytoapreviouscommit?(41个回答)关闭8年前。我知道Git会跟踪我对应用程序所做的更改,并保留它们直到我提交更改。为了恢复到之前的提交,我使用了:$gitreset--hardHEADHEADisnowat820f417micro然后如何将我硬盘上的文件恢复到之前提交的状态?我接下来的步骤是:gitadd.gitcommit-m"revert"但是我硬盘上的文件都没有改变...

git - 我怎样才能撤消 git reset --hard HEAD~1?

是否可以撤消由以下命令引起的更改?如果是,怎么办?gitreset--hardHEAD~1 最佳答案 PatNotz是正确的。只要在几天之内,您就可以取回提交。git仅在大约一个月后收集垃圾,除非您明确告诉它删除较新的blob。$gitinitInitializedemptyGitrepositoryin.git/$echo"testingreset">file1$gitaddfile1$gitcommit-m'addedfile1'Createdinitialcommit1a75c1d:addedfile11fileschange

linux - 创建/删除许多硬链接(hard link)的缺点?

我需要创建成百上千个临时硬链接(hardlink)或符号链接(symboliclink),这些链接在创建后不久就会被删除。出于我的目的,两种类型的链接都可以使用(即目标不是目录,它始终存在于同一文件系统中)据我了解,符号链接(symboliclink)会创建一个包含原始文件路径的小文件。而硬链接(hardlink)创建对同一inode中数据的引用。因此,如果我要创建/删除数千个此类链接,是创建和删除数千个小文件(符号链接(symboliclink))还是数千个此类引用(硬链接(hardlink))更好?似乎一个对硬盘驱动器(可能是碎片)征税,而另一个可能对文件系统本身征税?inode引

linux - 硬链接(hard link)和绑定(bind)挂载之间的区别?

这可能是个愚蠢的问题,但是:http://dwaves.de/2015/05/26/linux-search-find-files-locate-find-linux-locate-scope/linux下绑定(bind)挂载:据我了解:您可以在两个不同的地方安装相同的目录。但是硬链接(hardlink)的区别在哪里呢?绑定(bind)安装。从Linux2.4.0开始,可以在其他地方重新安装部分文件层次结构。电话是:挂载--bindolddirnewdir这只是使文件夹可访问的另一种方式吗?(但它实际上并没有使用任何网络协议(protocol),因为它都是本地的)请提供一些优缺点示例。