Git の使用法 (pathspec master は git が知っているどのファイルにもマッチしませんでした)
I 問題の概要
今日、ある問題に取り組んでいます。長い間、ローカルの git リポジトリを使用していて、そこには develop ブランチしかありません。
git checkout master
以下のエラーが発生しました。
error: pathspec 'master' did not match any file(s) known to git
II 問題解決
1. まず、分岐の状況を見てみましょう。
git branch -a
* develop
remotes/composer/develop
remotes/composer/feature/194
remotes/composer/feature/198
remotes/composer/feature/199
remotes/composer/feature/200
remotes/composer/master
remotes/origin/HEAD -> origin/develop
remotes/origin/develop
remotes/origin/feature/194
remotes/origin/feature/198
remotes/origin/feature/199
remotes/origin/feature/200
remotes/origin/master
git fetch
2. 目的の枝がない場合は、まずすべての枝を取得します。
git checkout origin/master
3. リモートマスターブランチに切り替えます。
Note: checking out 'origin/master'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again:
git checkout -b new_branch_name
HEAD is now at 4beea49... Merge branch 'develop' into 'master'
プロンプトは次のようになります。
* (detached from origin/master)
develop
git branchを実行すると、このようになります。
git checkout -b master
5. これで、現在のデタッチドブランチから切り替えて新しいブランチを作成することができます。これは、現在のデタッチドブランチから新しいブランチを作成すると解釈できます (この場合、新しいブランチは残りの準備のために master と呼ばれることになります)。
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> master
5. この時点でgit pullを使用すると、以下のようなエラーが発生します。
git branch -u origin/master master
これは、新しく作成した master ブランチがまだリモートの master ブランチと追跡関係を結んでいないことを意味します (master ブランチを作成したように見えますが、git はリモート master との関係を考慮していません)。もちろん、上記のヒントのように git pull でリモートブランチとローカルブランチを指定して更新することはできますが ここでは、ヒントの二番目の方法で、ローカルブランチとリモートブランチの間に追跡関係を確立してみます。
Already up-to-date.
6. この時点で git pull を実行し、どのようなフィードバックが得られるかを確認します。
man git
man git branch
and so forth!
まとめると、gitは実はとても使い勝手がよく、ヒントを恐れることなく、むしろ問題解決の糸口を見つけ、時々活用することが大切なのです。
man git
man git branch
and so forth!
バイバイ
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例