64

別のブランチに存在する別のバージョンのファイルを現在のブランチにロードしたいと思います。

git help checkout言う:

DESCRIPTION
   Updates files in the working tree to match the version in the index or
   the specified tree. If no paths are given, git checkout will also
   update HEAD to set the specified branch as the current branch.

これらすべてのファイルをチェックアウトするが、HEADを更新しない方法はありますか?

4

2 に答える 2

85

現在のパスを指定してチェックアウトします.

git checkout other-branch-name -- .

この操作は、ファイルをチェックアウトせずにHEADを別のブランチに切り替えるのと似ていますが、「他の方向」からのみです。

@김민준が述べているように、これはコミットされていない変更を上書きします。必要に応じて、最初にどこかに隠しておくか、コミットすることを忘れないでください。

于 2013-03-20T23:20:18.467 に答える
2

@Kacheの回答に似ていますが、新しいgit restoreコマンドを使用します(Gitバージョン2.23以降が必要です)。

git restore --source=<other-branch/tag/commit> <pathspec>
# or
git restore -s <other-branch/tag/commit> <pathspec>

# example: to load all files from branch "other"
git restore -s other .

この新しいコマンドは、「ブランチのチェックアウト」と「ファイルのチェックアウト」を1つのgit checkoutコマンドから分割するために導入されました。続きを読む:コマンドとは何ですかgit restore

于 2021-06-08T06:05:55.707 に答える