私は Git にかなり慣れていません。現在の雇用主で働き始めて以来、Git を使用しているだけです。
最近、私のローカル開発マシンで同僚が実装したバグ修正をマージして、いくつかの変更をサーバーにプッシュしました。これは、branch
彼らが実装したバグ修正をサーバーからmaster
取得し、ライブ バージョンのコードで最新のローカル ブランチとマージすることで実現しました。これをローカルの開発マシンでテストしたところ、すべて正しく機能しているように見えたので、サーバーにプッシュしました。
しかし、私が行った変更により、別のバグがライブ バージョンに導入されたようです (導入されたバグは、修正をローカルでテストしたときには明らかではなく、コードがライブになった後にのみ現れました)。
私が導入したこのバグにより、実際には社内 Web サイトの頻繁に使用される部分にアクセスできなくなったので、すぐに最後の作業をチェックアウトしcommit
、サーバーを再起動して、サイトに再びアクセスできるようにしました。
私は現在、修正プログラムをサーバーに再度プッシュする前に、ローカル開発マシンで修正プログラムが引き起こした問題の解決に取り組んでいますが、commit
サーバーで古いものをチェックアウトしたため、プロジェクトのライブ バージョンがdetached HEAD
状態のままになっています。現在のdetached HEAD
状態はほとんど機能しています (つまり、同僚がこのバグ修正に取り組み始める前と同じように動作しているため、バグはまだ存在しています)。
サーバー上のを解決したいdetached HEAD
ので、サーバーから作業コードを再度プルして、この時点から新たに開始できますが、残りのコードをdetached HEAD
私が作成した .から現在働いています。
git branch
サーバー上で実行すると、出力にはmaster
ブランチ (元のバグ修正をプッシュしたときに導入したバグがあるため、壊れています) と(detached from 0e57d3d)
、HEAD
現在指摘されている のみがあることが示されます。
私が見た他の投稿は、master
を解決するためにチェックアウトする必要があることを示しているようですが、現在壊れていることがdetached HEAD
わかっているため、これを行うことはできません。master
では、が指しているHEAD
間の状態と同じようにコードが機能するように、もう一度を「アタッチ」するにはどうすればよいでしょうか? そこからa を実行し、それをチェックアウトして、それを にしますか? または、これを行う他の方法はありますか?commit
HEAD
git branch
branch
master