脱字符(^)是什么意思?
我在这里看到一个问题的答案 ,帮助恢复在git中删除的文件。
解决scheme是
git checkout <deleting_commit>^ -- <deleted_file_path>  插入符号( ^ )做了什么? 我在其他地方看过,在git中做非常有用的事情。 这是神奇的。 有人请为我破坏它,告诉我它是干什么的? 
  HEAD^表示当前分支顶端的第一个父项。 
 请记住,git提交可以有多个父代。  HEAD^是HEAD^1缩写,您也可以根据需要定位HEAD^2等等。 
 你可以到任何提交的父母,而不仅仅是HEAD 。 你也可以代代相传:例如, master~2表示master分支的祖父母,在含糊不清的情况下赞成第一个父母。 这些说明符可以任意链接, 例如 topic~3^2 。 
 有关完整的详细信息,请参阅git rev-parse --help的“指定修订”部分。 
 这意味着“父母的”。 所以HEAD^表示“当前HEAD的父母”。 你甚至可以将它们链接在一起: HEAD^^表示“当前HEAD的父亲”(即当前HEAD的祖父母), HEAD^^^表示“当前父亲的父亲HEAD“等等。 
 插入符号是指特定提交的父项。 例如HEAD^是指当前HEAD commmit的父节点。  (另外, HEAD^^是指祖父母)。 
  指定范围时也可以使用^ (插入符号)。 
要排除提交可达的提交,使用前缀^符号 。 例如^ r1 r2表示提交从r2可达,但不包括从r1可达的。
<转>
包含可从(即,的祖先)到达的提交。
^ <转>
排除可从(即其祖先)到达的提交。
(^)得到命令的父源,即HEAD ^将得到HEAD的父亲。
这是一个视觉解释。 假设你有这样的历史:
  master A <- B <- C <- D / E <- F feature 
 当function合并到主, C是由两个祖先创build的。  Git分配这些祖先的数字。 主线祖先B被分配1,并且特征祖先F被分配2。 
 因此C^1是指B而C^2是指F  C^是C^1的别名。 
 你只会使用<rev>^3 。 如果你已经执行了三个分支的合并。 
 克拉代表一个提交抵消(父母)。 因此,举例来说, HEAD^表示“HEAD”, HEAD^^^表示“HEAD三次提交”。 
格雷格培根给了一个很好的链接,但它非常密集。 在线Git介绍文档还介绍了修订和范围说明符: