[解決済み] Git で同名のファイルがあるときにブランチを変更する
質問
私の git リポジトリに xyz という名前のファイルがあります。偶然にも、私は xyz という名前のブランチも持っています。現在私はmasterにいますが、私はxyzブランチにチェックアウトしたいと思います。使用するコマンドは簡単です。
$ git checkout xyz
しかし、この場合、ファイルをチェックアウトして
xyz
を現在の HEAD にチェックアウトしてしまいます。どのようにすれば、私のブランチを
xyz
?
どのように解決するのですか?
図にあるように コミット a047faf (git 1.8.4.3+) を試してみるのもよいでしょう。
git checkout xyz --
(注) のエラーメッセージは、2019年第1四半期のGit 2.21でより明確になる予定です。 )
ということが明確になります。
xyz
の部分がブランチかコミットであるのに対し
--
はパスでなければなりません (ここではパスは指定されていません)。参照
のダブルハイフン規則についてはこちらを参照してください。
.
もし、'
--
のように、うまくいく場合といかない場合があります。
なぜ git checkout は
<remote_branchname>
は新しい追跡ブランチを作成しないのですか?
"です。
git checkout name
が行います。
- ローカルブランチまたは明示的なリモートブランチであれば、それに切り替えます。
- 追跡されたパスである場合、それをリセットします。
- リモートブランチであれば、追跡ブランチを作成し、それに切り替えます。
そしてその動作はいつも同じとは限りません。それゆえ、'
--
' とすることで、明確な曖昧さ回避を実現しています。
2019年8月更新、Git 2.23以上
git checkout
は紛らわしすぎる
と置き換えられる。
-
git switch
意味git switch xyz
があっても動作します。xyz
, -
git restore
意味git restore xyz
はブランチがあっても機能します。xyz
.
さらに、"で説明しているように なぜ私の Git リポジトリは切り離された HEAD 状態になったのですか? の説明のとおり、もう予期しない HEAD の切り離しはありません。
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git で現在のブランチ名を取得するには?
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
git commit to GitHub エラー、プロンプト ! [リモート拒否] master -> master (pre-receive hook declined) エラー: 失敗しました。
-
Git Bashが致命的に表示される:この操作は作業ツリーで実行する必要がある
-
git commit コマンドで追跡した新規ファイルをコミットすると、プロンプト *** Please tell me who you are が表示されます。
-
Git error: cannot spawn ssh.の回避策。そのようなファイルやディレクトリはありません
-
GitのPlease enter a commit messageで、このマージが必要な理由を説明してください。
-
git reset --hardとgit reset --softの違いについて
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] Git リポジトリがデタッチド HEAD 状態になったのはなぜですか?
-
Gitのコミットでfatal: unable to auto-detect email addressのエラーが報告される。
-
[解決済み] Git git reset」後にコミットメッセージを再利用/保持するには?