ファイルを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.
私はソースファイルをunstageしたい - *.{cpp,h}
。私は無段階にする方法を知っています(リンクhereなど)。私がにしたいのはのことをやって、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(またはおそらくシェルでは、 '*。{cpp、h}'を受け入れ、それをすべての一致するファイルに展開します。私の問題は、私が*一致するファイルを持っていないということです。彼らは 'src/*。{cpp、h}'に移動しました。 'git checkout'、 'git checkout 'などと打ち間違えてファイルをチェックアウトしようとしています。 –
simont
あなたがシェルでは一致しません。試してみてください:-) – Irfy
Heh。私の悪い;あなたが書いたものを完全に誤って読んでいます。それはうまくいく - ありがとう。 – simont