「GUIではじめるGit」の編集履歴(バックアップ)一覧に戻る
GUIではじめるGit - (2012/04/22 (日) 07:24:49) の編集履歴(バックアップ)
このページは作成中です。
このページでは、GUIベースで git の使い方を説明します。
git gui を使ったgitの入門ってあまり見ないのですが、
git gui ってとても分かりやすいですし、gitが初めての方は
まずは git gui を使ってみるのがお勧めです。
git gui を使ったgitの入門ってあまり見ないのですが、
git gui ってとても分かりやすいですし、gitが初めての方は
まずは git gui を使ってみるのがお勧めです。
ついでに対応するコマンドについても説明しますので、
コマンドラインでの作業が大好きな硬派も是非このページを git 理解の一助にしてください。
コマンドラインでの作業が大好きな硬派も是非このページを git 理解の一助にしてください。
Gitリポジトリを準備する
バージョン管理を始めるには初めにGitリポジトリを準備する必要があります。
Gitリポジトリはファイルの変更履歴を記録する領域です。
GUIでGitリポジトリを準備するには git gui コマンドを実行します。
(Windowsでmsys版gitを使っている場合は、フォルダ内で右クリックし「Git GUI」メニューを選択)
Gitリポジトリはファイルの変更履歴を記録する領域です。
GUIでGitリポジトリを準備するには git gui コマンドを実行します。
(Windowsでmsys版gitを使っている場合は、フォルダ内で右クリックし「Git GUI」メニューを選択)
こんな画面がでてくるはずです。
みんなにはまだ公開していない秘密?のソースをgit管理するなら
「新しいリポジトリを作る」を選択します。
Git管理したいソースディレクトリを選択して「作成」ボタンを押すと
新しいリポジトリが作成されます。
「新しいリポジトリを作る」を選択します。
Git管理したいソースディレクトリを選択して「作成」ボタンを押すと
新しいリポジトリが作成されます。
github などで公開されているOSSソースを複製して開発を始めるなら
「既存リポジトリを複製する」を選択します。
「ソースの位置」に"git://~" や "http://~" などのリポジトリのパスを指定し、
「先ディレクトリ」に複製先のローカルパスを入れて「複製」ボタンを押すと
リポジトリが複製されます。
「既存リポジトリを複製する」を選択します。
「ソースの位置」に"git://~" や "http://~" などのリポジトリのパスを指定し、
「先ディレクトリ」に複製先のローカルパスを入れて「複製」ボタンを押すと
リポジトリが複製されます。
「新しいリポジトリを作る」「既存リポジトリを複製する」のどちらを選択した場合も
複製or作成先のディレクトリの下に .git というディレクトリができていることが
確認できるはずです。これが gitリポジトリです。
複製or作成先のディレクトリの下に .git というディレクトリができていることが
確認できるはずです。これが gitリポジトリです。
なお「新しいリポジトリを作る」を選択した場合は、
まだ空のリポジトリが作成されただけなので注意してください。
初期ソースの登録も、2回め以降の変更登録も git の場合やりかたは一緒なので
次の章「変更を記録する(コミット)」に進みましょう。
まだ空のリポジトリが作成されただけなので注意してください。
初期ソースの登録も、2回め以降の変更登録も git の場合やりかたは一緒なので
次の章「変更を記録する(コミット)」に進みましょう。
参考:コマンドラインでのリポジトリ準備
- 新しいリポジトリを作る → git init
- 既存リポジトリを複製する → git clone <url> <複製先パス>
変更を記録する(コミット)
Gitに変更を記録することをコミットといいます。
コミットする前には、自分が誰なのかをGitに教えてあげる必要があります。
Git管理下のディレクトリで git gui コマンドを実行しましょう。
前の章とは違う画面がでてくるはずです。
(この後の説明ではこの画面を「git gui のメイン画面」という言い方をします)
コミットする前には、自分が誰なのかをGitに教えてあげる必要があります。
Git管理下のディレクトリで git gui コマンドを実行しましょう。
前の章とは違う画面がでてくるはずです。
(この後の説明ではこの画面を「git gui のメイン画面」という言い方をします)
編集 -> オプション メニューを選択します。
ここにある右側「大域(すべてのリポジトリ)」にあるユーザ名、電子メールアドレス欄に
自分の情報をいれて「保存」します。
(脱線ですが、もしGit管理リポジトリごとに違う名前で仕事をしたいなら左側をいじります)
めでたくGitに自己紹介できましたね。
ここで自己紹介した情報は変更を記録するときにソース内容と一緒に記録されます。
コミットをしたあとにユーザ名やアドレスを変更するのは大変ですので
初回のコミットをするまえに必ず自己紹介をしましょう。
ここにある右側「大域(すべてのリポジトリ)」にあるユーザ名、電子メールアドレス欄に
自分の情報をいれて「保存」します。
(脱線ですが、もしGit管理リポジトリごとに違う名前で仕事をしたいなら左側をいじります)
めでたくGitに自己紹介できましたね。
ここで自己紹介した情報は変更を記録するときにソース内容と一緒に記録されます。
コミットをしたあとにユーザ名やアドレスを変更するのは大変ですので
初回のコミットをするまえに必ず自己紹介をしましょう。
git gui のメイン画面に戻り、メイン画面の左上のほうにある
「コミット予定に入っていない変更」という欄をみてください。
Git管理下にないファイルや変更したファイルがある場合は
この欄にそのファイルのパスが表示されているはずです。
Git登録したいファイルのパスをクリックすると、画面右にファイルの内容または差分を
確認できます。そのファイルをGitに登録したいのなら、ファイルパスの左隣にある画像を
クリックします。
そうすると「ステージングされた(コミット予定の)変更」欄にそのファイルが移動します。
「コミット予定に入っていない変更」という欄をみてください。
Git管理下にないファイルや変更したファイルがある場合は
この欄にそのファイルのパスが表示されているはずです。
Git登録したいファイルのパスをクリックすると、画面右にファイルの内容または差分を
確認できます。そのファイルをGitに登録したいのなら、ファイルパスの左隣にある画像を
クリックします。
そうすると「ステージングされた(コミット予定の)変更」欄にそのファイルが移動します。
登録したいファイルを全部ステージング・・欄に移動させたら
画面右下のコミットメッセージ欄に、その変更の概要を記入して「コミット」ボタンを
押します。画面左下に、「コミット xxxx を作成しました」と表示されればコミット成功です。
Gitの世界へようこそ。あなたは素晴らしい一歩を踏み出しました。
画面右下のコミットメッセージ欄に、その変更の概要を記入して「コミット」ボタンを
押します。画面左下に、「コミット xxxx を作成しました」と表示されればコミット成功です。
Gitの世界へようこそ。あなたは素晴らしい一歩を踏み出しました。
参考:コマンドラインでの変更の記録
- コミット予定に入っていない変更/ステージングされた(コミット予定の)変更のファイル名を確認 → git status
- コミット予定に入っていないファイルの差分確認 → git diff
- ステージングされた(コミット予定の)ファイルの差分確認 → git diff
- ステージング(新規/更新ファイル) → git add <ファイル or ディレクトリ>
- ステージング(削除ファイル) → git rm <ファイル or ディレクトリ>
- ステージングの取り消し(新規ファイル) → git rm --cached <ファイル or ディレクトリ>
- ステージングの取り消し(更新/削除ファイル) → git reset HEAD <ファイル or ディレクトリ>
#ディレクトリを指定した場合、その配下全てが対象になります。
Tips:さらに理解を深めるために・・・
- Tips/リビジョン -- Gitのリビジョン連番(1,2,3,..)ではなく、40桁の16進数です。その理由は・・
- Tips/より高度なステージング -- Gitはファイル内の差分を1個ずつチェックしながら対話的にステージングすることができます。このやり方をマスターすると、より生産性を高めることができます。
- Tips/Git管理外のファイル指定 -- objectファイルなどGit管理したくないファイルが毎回「コミット予定に入っていない変更」に表示されるのは邪魔ですね。.gitignore ファイルにて条件を指定すると、それらファイルを無視させることができます。
ここで少し脱線させてください。git gui のメイン画面を一旦閉じて、再度 git gui を
起動してみましょう。すると、前回「ステージングされた(コミット予定の)変更」欄に
移動したファイルがちゃんと残っていることが確認できるでしょうか?
git はステージングさせた情報を「インデックス」と呼ばれる領域に保存し、GUIを閉じた
後もちゃんと記憶していてくれるのです。
そして、このステージングさせる作業はコマンドラインでもできます。
追加/変更ファイルをステージングさせる場合は git add <file or directory> を、
削除ファイルをステージングさせる場合は git rm <file or directory> を実行します。
ディレクトリを指定した場合は、その配下全てがステージング対象になります。
また、コンパイルで生成されたファイルなどで、Git管理したくないファイルがある場合は
.gitignore というファイルにその条件を記載できます。
.gitignore で指定されたGit管理外のファイルは git gui で表示されなくなりますし、
git add <directory> とした場合にも無視させることができます。
たくさんのファイルを登録する場合は、ステージングの作業のときだけ
コマンドラインを活用するという方法も、結構便利です。
起動してみましょう。すると、前回「ステージングされた(コミット予定の)変更」欄に
移動したファイルがちゃんと残っていることが確認できるでしょうか?
git はステージングさせた情報を「インデックス」と呼ばれる領域に保存し、GUIを閉じた
後もちゃんと記憶していてくれるのです。
そして、このステージングさせる作業はコマンドラインでもできます。
追加/変更ファイルをステージングさせる場合は git add <file or directory> を、
削除ファイルをステージングさせる場合は git rm <file or directory> を実行します。
ディレクトリを指定した場合は、その配下全てがステージング対象になります。
また、コンパイルで生成されたファイルなどで、Git管理したくないファイルがある場合は
.gitignore というファイルにその条件を記載できます。
.gitignore で指定されたGit管理外のファイルは git gui で表示されなくなりますし、
git add <directory> とした場合にも無視させることができます。
たくさんのファイルを登録する場合は、ステージングの作業のときだけ
コマンドラインを活用するという方法も、結構便利です。
コミット履歴の確認(gitk)
何回かコミットをしてみて、
ここから少し概念的なことを説明をします。
Gitは分散型のバージョン管理ツールなので、リビジョンを 1,2,3,..とは数えません。
連番の代わりに40桁の16進数でリビジョン(コミットまたはコミットIDともいう)を表します。
少しぞっとするかもしれませんが、これは分散型バージョン管理ツールの宿命です。
これはあなたのリポジトリで10個目のコミットをお友達のリポジトリに持っていった場合に、
お友達のところでは必ずしも10個目のコミットとは限らないということに起因していたりします。
コミットをしたときに画面左下に表示された「コミット xxxx を作成しました」の xxxx 部分は
実はコミットIDをさす16進数なのです。
Gitは分散型のバージョン管理ツールなので、リビジョンを 1,2,3,..とは数えません。
連番の代わりに40桁の16進数でリビジョン(コミットまたはコミットIDともいう)を表します。
少しぞっとするかもしれませんが、これは分散型バージョン管理ツールの宿命です。
これはあなたのリポジトリで10個目のコミットをお友達のリポジトリに持っていった場合に、
お友達のところでは必ずしも10個目のコミットとは限らないということに起因していたりします。
コミットをしたときに画面左下に表示された「コミット xxxx を作成しました」の xxxx 部分は
実はコミットIDをさす16進数なのです。