Git: "現在どのブランチにもありません。"変更を保持しながらブランチに戻る簡単な方法はありますか? but git checkout
壊れているように見える:
$ git checkout Origin/web-zach
HEAD is now at 1366cb1... Changed so css files not ignored
$ git status
# Not currently on any branch.
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .cordova/config.xml
# www/languages/pt/sounds/
nothing added to commit but untracked files present (use "git add" to track)
より具体的には、「現在どのブランチにもありません」というメッセージが心配です。 git checkout
は、ここでは何もしないようです...そのコマンドの全体的な目的は、私をブランチに置くことではないでしょうか?ブランチに戻ってコミット/プッシュを再度行うにはどうすればよいですか?
git status
の出力は、作業ディレクトリがクリーンであることを示しています。良い。
今、実行して
git checkout Origin/web-zach
Origin/web-zach
と呼ばれるremote-trackingブランチをチェックアウトしようとしています。 Origin
と呼ばれるリモートリポジトリにある対応するブランチweb-zach
を追跡するのは、リポジトリにローカルな特別なタイプのブランチです。
ただし、HEAD
参照(マップ上のYou-are-hereマーカーと考えることができます)cannotリモート追跡ブランチを指します; 「通常の」ローカルブランチのみ、または直接コミットのみ。リモート追跡ブランチをチェックアウトしようとすると、HEAD
参照は、リモート追跡ブランチのtipで直接を指すようになりますそのリモート追跡ブランチが指すコミット):
HEAD
が「通常の」ローカルブランチを指していないが、コミット直接を指している場合、いわゆる「切り離されたHEAD状態」になります。それは世界の終わりではありませんが、可能な限りその状態での着陸を避けることは(少なくともGitの学習の開始時に)おそらく驚きを免れるでしょう。
状況を改善するには、HEAD
をいくつかのlocalブランチに再接続する必要があります。ここでは、たとえば-を実行して、localブランチを作成およびチェックアウトできます。
git checkout -b web-zach
HEAD
は、web-zach
と呼ばれる新しく作成されたローカルブランチを指します:
次に、あなたは得る必要があります
$ git status
On branch web-zach
Untracked files:
(use "git add <file>..." to include in what will be committed)
.cordova/config.xml
www/languages/pt/sounds/
nothing added to commit but untracked files present (use "git add" to track)
その後、自由に変更を加え、ステージングし、コミットします(Origin
に対応するリモートリポジトリへの書き込みアクセス権があり、他の誰もOrigin/web-zach
にプッシュしていない場合最後のgit fetch
)、プッシュ、使用
git Push -u Origin web-zach