0

私は 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 を実行し、それをチェックアウトして、それを にしますか? または、これを行う他の方法はありますか?commitHEADgit branchbranchmaster

4

1 に答える 1