草庐IT

git - 如何在 git 存储库中获取旧版本文件的副本?

我有一个.tex的版本来自许多提交之前的文件,我想获得一份副本。我有具有我想要的文件版本的提交的sha1哈希值。我不想替换文件的当前版本。相反,我只想获取它的一个单独副本,以反射(reflect)其在旧版本中的状态。很多类似的问题建议使用gitcheckout--file.tex,但这只是不断给出“错误:pathspec'file.tex'与git已知的任何文件都不匹配。”我感兴趣的文件原来存在于版本库的顶级目录中。我目前在存储库的子目录中尝试运行此命令,以便在子目录中获取旧版本的file.tex。这可能吗?我该怎么做? 最佳答案

git - 克隆旧版本的 github repo

我有一台AmazonEC2机器。我想在这台机器上克隆一个旧版本的githubrepo。通常我使用gitclonehttps://linktomyrepo.git我如何克隆旧版本,比如14天前的更新?我可以在存储库的提交历史中看到我需要的确切版本,但不知道如何将它克隆到EC2机器上。我是否需要在每次提交旁边使用小的SHA代码? 最佳答案 您始终可以使用提交哈希检查任何给定状态。例如,通过查看日志,您确定233ab4ef是您感兴趣的状态:发出gitcheckout233ab4ef以检查该状态。实现此目的的另一种方法是使用gitcheck

git - 克隆旧版本的 github repo

我有一台AmazonEC2机器。我想在这台机器上克隆一个旧版本的githubrepo。通常我使用gitclonehttps://linktomyrepo.git我如何克隆旧版本,比如14天前的更新?我可以在存储库的提交历史中看到我需要的确切版本,但不知道如何将它克隆到EC2机器上。我是否需要在每次提交旁边使用小的SHA代码? 最佳答案 您始终可以使用提交哈希检查任何给定状态。例如,通过查看日志,您确定233ab4ef是您感兴趣的状态:发出gitcheckout233ab4ef以检查该状态。实现此目的的另一种方法是使用gitcheck

git - 使用原始创建/修改时间戳 check out 旧文件

有没有办法知道或获取原始创建/修改时间戳? 最佳答案 是,metastore或git-cache-meta可以存储此类(元)信息!Git本身,无需第三方工具,不能。Metastore或git-cache-meta可以存储文件的任何文件元数据。这是设计使然,因为Metastore或git-cache-meta就是为此目的而设计的,以及支持备份实用程序和同步工具。 关于git-使用原始创建/修改时间戳checkout旧文件,我们在StackOverflow上找到一个类似的问题:

git - 使用原始创建/修改时间戳 check out 旧文件

有没有办法知道或获取原始创建/修改时间戳? 最佳答案 是,metastore或git-cache-meta可以存储此类(元)信息!Git本身,无需第三方工具,不能。Metastore或git-cache-meta可以存储文件的任何文件元数据。这是设计使然,因为Metastore或git-cache-meta就是为此目的而设计的,以及支持备份实用程序和同步工具。 关于git-使用原始创建/修改时间戳checkout旧文件,我们在StackOverflow上找到一个类似的问题:

git - 使用 `git rebase` 更改旧提交消息

我正在尝试按照说明编辑旧的提交消息here.现在,当我尝试运行rebase-iHEAD~5时,它说interactiverebasealreadystarted。然后我尝试:gitrebase--continue但是得到这个错误:error:Refrefs/heads/masterisat7c1645b447a8ea86ee143dd08400710c419b945bbutexpectedc7577b53d05c91026b9906b6d29c1cf44117d6bafatal:Cannotlocktheref'refs/heads/master'.有什么想法吗?

git - 使用 `git rebase` 更改旧提交消息

我正在尝试按照说明编辑旧的提交消息here.现在,当我尝试运行rebase-iHEAD~5时,它说interactiverebasealreadystarted。然后我尝试:gitrebase--continue但是得到这个错误:error:Refrefs/heads/masterisat7c1645b447a8ea86ee143dd08400710c419b945bbutexpectedc7577b53d05c91026b9906b6d29c1cf44117d6bafatal:Cannotlocktheref'refs/heads/master'.有什么想法吗?

git - 从 git 中的旧提交恢复文件

我有一个几周前做的旧提交。我只想从该提交中恢复一个文件。我该怎么办? 最佳答案 gitcheckout'master@{7daysago}'--path/to/file.txt这不会改变HEAD,它只会覆盖本地文件path/to/file.txt参见mangit-rev-parse对于那里可能的修订规范(当然,一个简单的散列(如dd9bacb)会很好)不要忘记提交更改(在审查之后...) 关于git-从git中的旧提交恢复文件,我们在StackOverflow上找到一个类似的问题:

git - 从 git 中的旧提交恢复文件

我有一个几周前做的旧提交。我只想从该提交中恢复一个文件。我该怎么办? 最佳答案 gitcheckout'master@{7daysago}'--path/to/file.txt这不会改变HEAD,它只会覆盖本地文件path/to/file.txt参见mangit-rev-parse对于那里可能的修订规范(当然,一个简单的散列(如dd9bacb)会很好)不要忘记提交更改(在审查之后...) 关于git-从git中的旧提交恢复文件,我们在StackOverflow上找到一个类似的问题:

git - checkout 旧提交并使其成为新提交

这个问题在这里已经有了答案:HowdoIrevertaGitrepositorytoapreviouscommit?(41个回答)关闭8年前。在Git上,假设我搞砸了我的提交,我想将版本3之前的提交作为新版本。如果我执行gitcheckoutxxxx,它会创建一个新分支,似乎我只能merge它?我可以将其设为新的“主版本”吗?我要:A-B-C-D-E成为A-B-C-D-E-F其中F与C的内容完全相同如果我改用gitrevertxxxx,好像肯定会有冲突,需要手动解决。我真正想要的是在某个时候将旧提交变成新提交,而不管我的工作目录或最新提交中有什么。我该怎么做?