0

TL; DRブランチの名前が同じ場合、gitcheckoutでファイルを元に戻すことはできません。


面白い問題を見つけたとき、私は自分のGITリポジトリで作業していました。新しい「アップロード」機能を作成する「build-upload」というブランチがあります。「bin/build-upload」というファイルもあります。これは、プロジェクトをビルドして本番環境にアップロードするスクリプトです。

「bin/」ディレクトリにいて、「build-upload」ファイルを変更したので、元に戻したいと思います。だから私はタイプした

git checkout build-upload

そしてその結果は

amatiasq:~/repo/bin$ git checkout build-upload
M   bin/build-upload
Switched to branch 'build-upload'

結果に十分注意を払わず、別の支店にいることに気付かずに仕事を続けました。幸い、新しい変更をコミットする前に、「bin / build-upload」が変更されているのを確認しました。これにより、ブランチを切り替えたことがわかりました。

質問は。このあいまいさを防ぐ方法はありますか?ブランチを切り替えたり、ファイルを元に戻したりする場合、「チェックアウト」を実行するときにgitに通知するにはどうすればよいですか?

4

3 に答える 3

7

によると、コマンドラインgit help checkoutのaの後のすべて--は、ブランチやタグではなく、パスとして解釈されます。だから、これはおそらくあなたが必要なことをするはずです:

git checkout -- build-upload
于 2013-03-22T15:41:53.097 に答える
3

ブランチ名のあいまいさを排除するには、パス部分の前に「-」を付ける必要があります。

git checkout <branch> -- <paths..>
于 2013-03-22T15:42:15.410 に答える
2

それがファイル名として扱われるgit checkout ./build-uploadようにするために行うことができます。これは、オプションから名前が付けられたファイルを明確にするbuild-uploadような古典的なUnixのトリックに似ています。rm ./-r-r-r

于 2013-03-22T15:44:19.317 に答える