Git について初心者の質問があります:
ブランチの履歴内を前後に移動する必要があります。つまり、すべてのファイルを古いリビジョンの状態に戻し、リポジトリの最新の状態に戻す必要があります。コミットする必要はありません。
SVNの場合は
svn up -r800
リビジョン800に到達し、
svn up
リポジトリと同期します。
戻りたいコミットのハッシュを知っているので、試してみました
git reset <hash>
どうやらそこに到達したようだ。しかし、私は
git pull
しかし、それは衝突について不満を述べています。
では、ブランチの履歴を移動する適切な方法は何でしょうか?
私はSVNについて考えていますので、何か良いチュートリアルがあれば教えてください。すでに確認済みです。http://git.or.cz/course/svn.htmlそしてhttp://www.youtube.com/watch?v=8dhZ9BXQgc4。
ありがとう、オンドラ。
ベストアンサー1
私も以前は SVN ユーザーでしたが、現在はすべてのプロジェクトで git を使用しています。
Git を使用する場合は、SVN で使用されるクライアント サーバー アーキテクチャから考え方を変える必要があります。SVN では、すべての変更にサーバーとの接続が必要です。Git を使用すると、リポジトリは作業ディレクトリにあります。リポジトリのすべてのアクションに接続する必要はありません。
git push
とはリポジトリと同期するためにのみ使用しますgit pull
。rsync または任意のバックアップ ソリューションを使用して、2 つの場所にまったく同じコンテンツを持たせるのと同じだと考えてください。外付けバックアップ ハード ディスクを接続して、そのコンテンツをメインのコンテンツと同じにするのと同じです。これがgit pull
との使用方法ですgit push
。
履歴を前後に移動したいだけの場合は、 を使用して行いますgit checkout
。リビジョン ID を確認するには、 を使用してくださいgit log
。Linux を使用している場合は、 を使用してgitk
リビジョン ツリーを表示します。Windows では、tortoise git はリビジョン グラフを使用してこれを表示できます。
最新のリビジョンに戻すには、 を使用しますgit checkout master
。コマンドを実行する前に、必ず を実行してくださいgit status
。このコマンドは、現在のリポジトリの状態について必要な情報と、それを修正するために必要なアクションを表示します。 および を実行する前にgit pull
、結果に が表示されているgit push
ことを確認することをお勧めします。git status
working directory clean
ファイルを以前のリビジョンに戻す必要がある場合は、 を使用して行うことができますgit merge
。ファイルに戻す前に、まず を使用してテストしてくださいgit diff
。例: git diff rev1:rev2 filename
。2 つのリビジョン間の相違点を出力します。rev1 の変更は rev2 の変更に置き換えられます。したがって、元に戻すと、rev2 は rev1 よりも古いものになります。差分結果に満足したら、 を使用してそれを実行し、を にgit merge
置き換え、他のすべてのパラメータはそのままにします。diff
merge
これがお役に立てば幸いです。重要なのは、作業ディレクトリがリポジトリであることを確認することです。これを理解することで、git の機能を最大限に活用できるようになります。幸運を祈ります。