相关疑难解决方法(0)

如何从Git中的特定修订中检索单个文件

我有一个Git存储库,我想看看几个月前一些文件的样子.我在那个日期找到了修改版,而且它是27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8.我需要查看一个文件的外观,并将其保存到文件中.

我设法看到文件使用gitk,但它没有保存选项.我尝试使用命令行工具,我得到的最接近的是:

git-show 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8 my_file.txt
Run Code Online (Sandbox Code Playgroud)

但是,此命令显示diff而不是文件内容.我知道我以后可以使用类似的东西PAGER=cat并将输出重定向到文件,但我不知道如何获得实际的文件内容.

基本上,我正在寻找类似svn cat的东西.

git single-file

789
推荐指数
9
解决办法
35万
查看次数

相当于"hg cat"或"svn cat"的git

我想提取一个git存储库中保存的文件的最新版本的副本,并将其传递给脚本进行一些处理.使用svn或hg,我只使用"cat"命令:

按指定的修订版打印指定的文件.如果没有给出修订,则使用工作目录的父级,如果没有签出修订,则提示.

(这是来自hg文档中hg cat的描述)

使用git执行此操作的等效命令是什么?

git version-control

83
推荐指数
3
解决办法
1万
查看次数

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

我有一个.tex来自许多提交前的文件版本,我想获得一份副本.我有提交的sha1哈希值,它具有我想要的那个文件的版本.我不想替换当前版本的文件.相反,我想获得一个单独的副本,反映它在旧版本中的状态.

许多类似的问题建议使用git checkout <sha1> -- file.tex,但这只是一直给出"错误:pathspec'file.tex'与git已知的任何文件都不匹配."

我感兴趣的文件最初存在于存储库的顶级目录中.我目前在存储库的子目录中尝试运行此命令,以便在子目录中获取旧版本的file.tex.

这可能吗?我怎样才能做到这一点?

git git-checkout

40
推荐指数
3
解决办法
2万
查看次数

如何列出文件的所有不同版本,并将它们区分开来?

使用git,我想列出给定文件的所有不同修订版.

然后,我想选择一个特定的版本,并在另一个版本时进行比较.

我怎样才能做到这一点?

git

24
推荐指数
3
解决办法
1万
查看次数

Git show的文件路径

假设我在目录中有我的东西的git repo myapp:

myapp
    /.git
    /.gitignore
    /subdirA
        /subdirB
            /file1.txt
            /file2.txt
            /(and some other stuffs)
    /(and some other stuffs)
Run Code Online (Sandbox Code Playgroud)

我想file1.txt从旧提交中查看abcd123.对于另一个线程,我了解到我应该使用类似的东西:

$ git show abcd123:path/to/file1.txt
Run Code Online (Sandbox Code Playgroud)

但是,我对使用正确的路径感到困惑.我尝试过类似的东西

$ git show abcd123:myapp/subdirA/subdirB/file1.txt
$ git show abcd123:subdirA/subdirB/file1.txt
$ git show abcd123:subdirB/file1.txt
$ git show abcd123:file1.txt
Run Code Online (Sandbox Code Playgroud)

但是git不断给我一些错误信息

$ Path 'subdirA/subdirB/file1.txt' does not exist in 'abcd123'
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题呢?

git

6
推荐指数
1
解决办法
6195
查看次数

另一个版本控制系统是否具有类似ClearCase的文件系统访问文件版本?

在ClearCase中,如果我正在处理某个文件X并想要查看其先前版本(比如版本5),则可以使用它X@@/main/5.是否有类似的其他(最好是免费的)版本控制系统?

水银有hg cathg co,但他们仍然不接近的ClearCase的功能之上.

git mercurial clearcase

5
推荐指数
2
解决办法
1917
查看次数

有没有办法找出特定提交中整个文件的样子?

在应用所有更改后,有没有办法找出整个文件在特定提交中的样子?我知道2个文件(添加和删除的内容)之间存在差异,这就是git中显示的内容.但这不是我想要的.

git

5
推荐指数
1
解决办法
337
查看次数

我怎样才能获得"git show"以显示具有完整上下文的差异?

我正在审查一个非常旧的提交.我希望看到特定提交所做的更改,但我想在完整的上下文中看到它,即我想查看整个文件以及该人所做的更改.以下命令,

git show -w <commit-id>
Run Code Online (Sandbox Code Playgroud)

没有向我展示完整的背景.有什么建议吗?

git git-show

3
推荐指数
1
解决办法
1013
查看次数