作为测试脚本的一部分,我想从origin/master
的开头复制文件的版本 而不 ,以覆盖该文件的当前版本在我目前已结帐的分支中。
要解释一下,如果我跑步:
git checkout origin/master -- a.txt
这将覆盖我当前所在的分支机构中的a.txt
。我不希望这样做。
我想从a.txt
复制origin/master
并将其另存为具有提供的文件路径的新文件,例如/tmp/a.master.txt
我知道我可以git checkout origin/master
,手动进行复制,然后签出另一个分支。但是我可以使用一些git magic吗?理想情况下,我希望能够使用可能已提交或未提交的a.txt
的当前状态,并且使用git stash
似乎太冒险了。
答案 0 :(得分:2)
您可以使用git cat-file blob
获取文件的特定版本。例如,您可以运行git cat-file blob origin/master:a.txt >/tmp/a.master.txt
来检出a.txt
修订版中的origin/master
版本。
您还可以为此指定其他任意复杂的修订表达式,只要它们指向一个Blob。
答案 1 :(得分:1)
您可以使用git show
来完成此操作:
git show origin/master:a.txt > saved-a.txt
您可以使用任何分支名称,标记,提交号等代替origin/master
。