检出已在工作树中移动的多个文件
我已经将文件从Project
移动到Project/src
。 Git的印象是我从Project
删除了文件并在Project/src
创建了新文件。
另外,我还想在工作树中进行多项其他更改,这些更改都是我希望提交的。 我的git status
:
$ git status
# On branch feature/cmake
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# new file: .gitignore
# new file: CMakeLists.txt
# deleted: Wasa.xcodeproj/project.pbxproj
# deleted: Wasa/Wasa.1
# renamed: Wasa/main.cpp -> main.cpp
# new file: src/CMakeLists.txt
# Lots of new files listed here
#
# Changes not staged for commit:
# (use "git add/rm ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: CMakeLists.txt
# deleted: IODevice.h
# Lots of deleted files listed here.
我想取消源文件 - *.{cpp,h}
。 我知道如何取消(例如,这里的链接很有帮助)。 我想避免做的是输入大量的git checkout <filename>
。
我不想结账HEAD
,因为我想保留工作树中的一些更改。 我试过做git checkout *.{cpp,h}
,它给出了以下内容:
$ git checkout *.{cpp,h}
zsh: no matches found: *.cpp
由于文件当前不存在于工作树中,因此我无法将其检出,因为*.{cpp,h}
不匹配任何文件。
这些文件都在Project/src
; 有可能是一个正则表达式或者我可以运行ls src
输出到git checkout
命令的输出,但是我想知道git是否可以为我自己做这个。 有没有办法在git中做到这一点?
退出*
:
$ git checkout *.{cpp,h}
用于检出多个文件。 我只是实现了通配符,它对我来说效果很好。 对于特定的文件,我们可能需要一个不同的技巧。
我用了:
git checkout -- *.*
在我的Git Bash中。 并且我的工作空间中的所有修改后的文件都被替换为回购中的文件。
我希望它有帮助,谢谢。
链接地址: http://www.djcxy.com/p/6171.html上一篇: Checkout multiple files which have been moved in the working tree