あるプロジェクトのgitリポジトリをクローンしました。ファイルを初期状態にして、ファイルを確認したときにリビジョン2、3、4に移動できますか。プロジェクトがどのように進化してきたかについての概要を知りたいのですが。
特定のコミットをチェックアウトするにはgit checkout <sha1>
を使用してください。
特定のバージョン/コミットに移動するには、以下のコマンドを実行してください。 git log --oneline -n 10
から入手できるハッシュコード
git reset --hard HASH-CODE
注 - 特定のバージョン/コミットにリセットした後、破棄されたすべてのコミットを元に戻したい場合はgit pull --rebase
を実行できます。
gitk
のようなツールを使ってプロジェクトの履歴をグラフィカルに表示することができます。とにかく走れ:
gitk --all
特定のブランチをチェックアウトしたい場合は、
git checkout <branch name>
特定のコミットでは、ブランチ名の代わりにSHA1ハッシュを使用してください。 (ツリーをナビゲートするための他のオプションを見るには、 Git Community Book の Treeishes をご覧ください。
git log
には、詳細な履歴や要約履歴も表示するための一連のオプションがあります。
コミット履歴で forward を移動する簡単な方法はわかりません。直線的な歴史を持つプロジェクトは、おそらくそれほど一般的ではありません。あなたがSVNやCVSで持っていたような "改訂"という考えは、Gitではそれほどうまくマッピングできません。
コミットのSHA1キーを使用して、次のことができます。
まず、特定のファイルに必要なコミットを見つけます。
git log -n <# commits> <file-name>
これはあなたの<# commits>
に基づき、特定のファイルに対するコミットのリストを生成します。
ヒント:どのコミットを探しているのかわからない場合は、git diff <commit-SHA1>..HEAD <file-name>
コマンドを使用するのが良いでしょう。このコマンドは、現在のバージョンのコミットと、特定のファイルに対する以前のバージョンのコミットとの違いを表示します。
注:コミットのSHA1キーはgit log -n
のリストの中でフォーマットされています。
<SHA1 id>
をコミットする
次に、希望のバージョンをチェックアウトします。
必要なコミット/バージョンが見つかった場合は、単にgit checkout <desired-SHA1> <file-name>
コマンドを使用してください。
これにより、指定したファイルのバージョンがステージング領域に配置されます。ステージング領域から取り出すには、単に次のコマンドを使用します。reset HEAD <file-name>
リモートリポジトリが指している場所に戻るには、単にコマンドgit checkout HEAD <file-name>
を使います。
私はプロジェクトがどのように発展したかを見るためにコマンドラインpythonツールを作成しました。それが役立つかどうかがわかります。このツールは次のURLのGitでホストされています
私は、私たちがマスターブランチを持っていて、それから17.0と呼ばれる別のブランチと17.0の内側にコミットハッシュno say "XYZ" がありました。そして、顧客はそのXYZリビジョンまでのビルドを与えられます。今、私たちはバグに出会いました、そしてそれはその顧客のために解決される必要があります。したがって、その「xyz」ハッシュまでその顧客用に別のブランチを作成する必要があります。だからここに私はそれをやった方法です。
まず、自分のローカルコンピュータにその顧客名のフォルダを作成しました。そのフォルダが作成されたら、このフォルダ内のコマンドに従って、顧客名が「AAA」であるとします。
1つの方法は、これまでにパッチに対して行ったすべてのコミットを作成することです。最初のコミットをチェックアウトして、読み終わったら順番にパッチを適用してください。
git format-patch <initial revision>
を使用してからgit checkout <initial revision>
を使用します。あなたはあなたのディレクターにパッチである4桁の数字で始まるファイルの山を手に入れるべきです。
リビジョンを読み終えたら、git apply <filename>
を実行してください。git apply 0001-*
とcountのようになります。
しかし、なぜパッチそのものを読みたくないのでしょうか。私は興味があるのでこれをあなたのコメントに投稿してください。
gitのマニュアルも私にこれを与えます:
git show next~10:Documentation/README
次にDocumentation/READMEファイルの内容を、最後の10回目の最後のコミットで現在のものとして表示します。
git blame filename
を見れば、各行がコミットハッシュ+作成者に関連付けられているリストを見ることができます。
私はどこにでもあるように見えるコマンドラインツールtigを言及したいです。プロジェクトの改訂履歴のタグ表示などを伴うテキストグラフィカルなツリービューです。 sshなどで使えます。超便利。