git checkout旧修订文件的Git别名作为新文件名

时间:2019-07-04 14:34:49

标签: git command-line-interface

我想拥有一个新的git别名,可以使用该别名以新文件名从旧版本中检出文件。

我有一个git别名,用于显示保存在C:\ Users \ nguyen \ .gitconfig中的日志

[user]
name = Tin Nguyen
email = xx@xx.com

[diff]
tool = winmerge

[difftool "winmerge"]
cmd = "'C:/Program Files (x86)/WinMerge/WinMergeU.exe'" -e "$LOCAL" "$REMOTE"

[alias]
    alog = log --all --decorate --oneline --graph

我尝试使用difftool的工具,但是以某种方式我一直弄错了语法。

这里回答了一个问题,如何以新文件名git-checkout older revision of a file under a new name

git checkout一个文件
git show 4c274dd91dc:higgs/Higgs.xcodeproj/project.pbxproj > old_project.pbxproj
prompt> 

我希望能够写:

git smartout 4c274dd91dc oldname.py as newname.py

1 个答案:

答案 0 :(得分:0)

git config --global alias.smartout '!f() { !git show $1:$3 > $2; }; f'

然后

git smartout 4c274dd91dc fullpath/to/oldname.py fullpath/to/newname.py

(作为一个旁注,请记住我从您想要的格式中删除的小写字母“ as”,因为这给您带来了很多麻烦,因为唯一的“好处”是使每种字体的使用时间更长一些。phd's doubts关于别名的有用性,在这里再加上一个词会更加准确。)