我有一个Git存储库,我想看看几个月前一些文件的样子.我在那个日期找到了修改版,而且它是27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8.我需要查看一个文件的外观,并将其保存到文件中.
我设法看到文件使用gitk,但它没有保存选项.我尝试使用命令行工具,我得到的最接近的是:
git-show 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8 my_file.txt
Run Code Online (Sandbox Code Playgroud)
但是,此命令显示diff而不是文件内容.我知道我以后可以使用类似的东西PAGER=cat并将输出重定向到文件,但我不知道如何获得实际的文件内容.
基本上,我正在寻找类似svn cat的东西.
我做了一个改变然后我git stash和我git stash apply
我的问题是
为什么在我之后git stash apply,我的变化变得"上演"了?即如果我这样做git diff,我什么都看不到,如果我这样做,我只会看到我的不同之处git diff --cached?
反正有没有"取消"我的git stash apply命令上演的变化?
是否有任何git命令基本上让我'备份我的更改,将其重置为HEAD并将我的备份复制回'?我想git stash,然后git stash apply是那个命令,但有些人如何"上演"我的所有变化?有没有相应的东西让我git stash apply没有上演我的变化部分?
在我的git开发中,我使用以下checkout命令结构将来自其他分支的单独文件引入到我的工作目录中。
git checkout [<tree-ish>] [--] <pathspec>…?
Run Code Online (Sandbox Code Playgroud)
根据文档,这也将文件更新为我的索引,就好像我要提交该文件一样—如果我不想提交该文件,则剩下了从索引中删除它的额外步骤。(我们正在使用二进制文件进行开发:(这种工作方式有助于测试我们的个人工作,该工作可能与并行工作的另一位开发人员的工作有关)
有什么方法可以从分支/提交中拉出/签出单个文件,从而更新工作目录而不是索引?
我想我可以将两个步骤混为一个命令,但是我很好奇是否已经有一个(单个)git命令能够完成此操作。
在ClearCase中,如果我正在处理某个文件X并想要查看其先前版本(比如版本5),则可以使用它X@@/main/5.是否有类似的其他(最好是免费的)版本控制系统?
水银有hg cat和hg co,但他们仍然不接近的ClearCase的功能之上.