0

私は git を理解し始めていますが、まだ抽象化に問題があります。以前のバージョンをチェックアウトして、簡単な変更を加えました。

git checkout [commit id] 

そして、HEADが新しいこの新しいコミットIDに移動されたというメッセージを受け取りました。必要な変更を加え、追加してコミットしました。しかし、変更を Heroku にプッシュしようとすると、すべてが最新であるというメッセージが表示されました。これが当てはまらないことはわかっていたので、以前のバージョンに戻って変更をコミットしたときに、別のブランチを作成したと思いました。

だから私はそれから試しました:

git merge master

私が取り組んでいたファイルを自動マージしようとしたときにエラーが発生しました。そのため、ファイルに表示された競合をクリーンアップし、変更を追加してコミットし、次のことを行いました。

git merge master

しかし、今回は「すでに最新です」というメッセージが表示されました。変更を Heroku にプッシュしようとしたとき、ファイルは、いくつかのバージョンに戻ったときに残した状態のままでした。行った変更を表示する方法がよくわかりません...

4

1 に答える 1

1

あなたは「切り離された頭」にいます。あなたはどのブランチにもいないため、多くの git 操作が困難になります。

まずやるべきことは、git checkout -b <new branch name>. そうすれば、少なくとも、現在の状態を参照するための名前が得られます。

次に、実際に何をしようとしているのかを把握する必要があります。「変更を加えるために以前のバージョン」をチェックアウトしましたか? これらの変更で何を期待していましたか? 過去は編集できません。(できますが、非常に珍しいので今は無視してください。) ブランチの上に新しいものを追加したり、プロジェクトの代替バージョンを保持する新しいブランチを作成したりできます。

ほとんどの場合、master の先端で変更を行い、コミットしてからプッシュする必要があります。

または、ブランチを作成する場合は、 を実行する必要がありますgit checkout -b <new branch name> <id of commit to form base of new branch>。次に、変更を加え、コミットし、新しいブランチを次のようにプッシュできますgit push origin <new branch name>。ブランチの作成は、プロジェクトの古いバージョンのバグ修正をリリースするためのものです。(実際には、ワークフローによっては、以前のバージョンをリリースするためにブランチを作成する必要があり、バグ修正は既存のブランチの上に行われる場合があります。)

あなたが行った統合により、正常に回復するのが難しい状態に陥ったのではないかと心配しています。行った変更が大きくない場合は、それらを再作成して、現在の状態を破棄することができます。または、変更を含むコミットが見つかった場合は、リセットしmasterてチェリーピックすることもできます。git whatchanged master..そのコミットを見つけるために使用できます。

于 2012-04-05T01:55:59.777 に答える