私が見たことから、既存のブランチに切り替えると、ブランチ上の特定のコミットに切り替わることはありません。何故なの?ブランチに切り替えた後、特定のコミットを切り替えないのはなぜですか?
既存のブランチに切り替えると、自動的にブランチ上の最新のコミットに切り替えるのは正しいですか?
ブランチに興味のある人は、ブランチ上の最新のコミットだけに興味があり、ブランチ上の他のコミットには興味がありません。
コミットに切り替えるために使用するコマンドは何ですか?
私が見たことから、既存のブランチに切り替えると、ブランチ上の特定のコミットに切り替わることはありません。何故なの?ブランチに切り替えた後、特定のコミットを切り替えないのはなぜですか?
既存のブランチに切り替えると、自動的にブランチ上の最新のコミットに切り替えるのは正しいですか?
ブランチに興味のある人は、ブランチ上の最新のコミットだけに興味があり、ブランチ上の他のコミットには興味がありません。
コミットに切り替えるために使用するコマンドは何ですか?
既存のブランチに切り替えると、 は自動的にブランチの最新のコミットに切り替わりますか?
はい、該当します。
はそれが枝に興味がある人々が最新に興味がブランチにコミット だけではなく、枝上の他の コミットしているというのは本当でしょうか?
これは正しくありません。変更を加えてコミットする目的でブランチに切り替えると、ほとんどの場合、その変更がそのブランチに入ることを意味します。そのブランチの最新コミットに切り替えると、detached HEAD stateになり、コミットは別の場所(匿名ブランチの一種)になります。
です。チェックアウトブランチで最後に使用可能なコミットを選択した場合、すでにチェックアウト済みのものに切り替えると、作業していたものか、ローカルマシン(HEAD)のチェックアウトの最後のものが選択されます。
ほとんどの場合、古いバージョンのプロジェクトを望んでいない(おそらくバグがあり、機能がない)ので、最後のコミットに興味のある人です。たとえば、現在のブランチに新しい機能を持たない他のブランチにいくつかの機能を追加したい場合、古いコミットを望むかもしれません。あるいは、この古いコミットのコードにあったものを見つけることができます。
ありがとう。どのコマンドがコミットに切り替えるために使われますか? – Tim
'git checkout
ブランチはコミットのポインタです。だから、ブランチをチェックアウトするときに、ブランチが指しているコミットをチェックアウトします。他のコミットはありません。 "同じブランチにある"と表示されている他の古いコミットは、ブランチによってまったく指されません。彼らは親のコミットによって指し示されます。
ブランチをチェックアウトしている人は、古いコミットに興味があるかもしれませんが、これらのコミットが同じブランチ上にあるのは少し誤解を招くかもしれません。 Gitにはその種のブランチはありません。古いコミットは、ブランチではなく、チェックアウトされたコミットのコミット履歴の一部です。
コミットをチェックアウトするには、git checkout <sha-1>
を実行してください。これはあなたのHEADを切り離すことになります。つまり、ブランチをチェックアウトしていません。チェックアウトされたコミットの完全なコミット履歴は、ブランチとは何の関係もありません。
これは私がここで見てきた特定のgitユーティリティの簡潔ではっきりとした完全な説明の1つであると言いたいと思います。 – BlueSpaceCanary
gitチュートリアルの分岐部分を読むことをお勧めします。https://learningpassion.wordpress.com/2016/06/19/git-tutorial-day-to-day-use-part-6-branching -in-a-nutshell/ – joker