参考
分散型のソースコード・バージョン管理システム。
サーバーにリポジトリを置いて複数の開発者が共同して修正していくことだけでなく、
リポジトリをローカルに置いて、安定版に戻ったり最新版にマージしたりすることもできます。
内部用の .git フォルダーがルートに1つしかできないので、作業ディレクトリが汚れません。
大量のファイルに対して更新されているかどうかをチェックする処理が高速です。
→ C:\Program Files\Git\doc\git\html\index.html
Git のリポジトリには、タイムスタンプが保存されません。
通常版と拡張版を並列して進めることはできません。 #if などを使ってください。
複数の開発者が更新して、すぐにマージすることはできます。
右クリックメニューは、「Git Bash Here」 と 「Git GUI Here」 だけでよいでしょう。
cd c:\Program Files\GIT\git-cheetah
regsvr32 /u git_shell_ext.dll
コントロールパネルから、アンインストール後、次のコマンドを実行してください。
ダウンロード
参考
改行コードを自動的に変更しない設定にすること
例:Git-1.7.2.3-preview20100911.exe
(cache)
コマンド・プロンプトのフォントがおかしくなるので、コマンド・プロンプトのタイトル
バーを右クリック [ 規定値 | フォント ] でフォントを再設定してください。
Diff ツールを使って内容の違いを確認するツールを設定するには、 [ 外部diffツール ]
続き
必要ならツールを登録します
既存の作業ディレクトリを Git が扱えるようにします。
サーバーにあるリポジトリ(ブランチの集合)を、ローカルに複製します。
リポジトリとは、任意の作業ディレクトリのルートの直下に .git 隠しフォルダー
があるフォルダーです。 Git は、作業ディレクトリを任意のバージョン(コミットと
言います)に戻したりできます。
バックアップ・ファイルから復帰することでリポジトリをインストールします。
サーバーにリポジトリを作成します。 または、ベアリポジトリを作成します。
[ スタート | すべてのプログラム | Git | Git Gui ] で Git を起動後、
[ 新しいリポジトリを作る ]。
cd 作業ディレクトリのパス
git config --global user.name "Your Name"
git config --global user.email you@example.com
git init
git add .
git commit -m 'first commit' #// ' ' の中は、コミットメッセージ
既存の作業ディレクトリを Git が扱えるようにします。
作業ディレクトリのルートに、.git フォルダー(隠しフォルダー)ができます。
参考
作業ディレクトリのルートに、.git フォルダー(隠しフォルダー)ができます。
左上の「コミット予定に入っていない変更」にあるファイル一覧をすべて選択し、
[ コミット | コミット予定する ]。
コミット予定する
右下の「最初のコミットメッセージ」に、リポジトリの説明を入力します。
[ コミット ] ボタンを押します。
以上で完了です。 ウィンドウを閉じることができます。
次は、
ファイル数が5000を超えると、警告が出ます。 そのときは、Git GUI の代わりに Git Bash を
使ったほうがいいでしょう。
作業ディレクトリのパス
first commit
関連
関連
→ git_sample.sh
[ スタート | すべてのプログラム | Git | Git Gui ] で、[ 既存リポジトリを複製する ]
サーバーにあるリポジトリ(ブランチの集合)を、ローカルに複製します。
クローン機能によって複製したものは、複製元(サーバー)との関連を持つようになります。
ローカルからローカルへ複製することもできます。
複製すると、「origin」という名前のリポジトリになります。
「master」 という名前のブランチもできます。
現在のブランチは、master になります。
「ソースの位置」に、サーバーにある .git 隠しフォルダーを含むフォルダーのパス、
「先ディレクトリ」に、ダウンロード先のローカルPCのフォルダーのパスを指定します。
サーバーにアクセスするときは、サーバーにあるアカウントのパスワードが求められます。
初めてアクセスするときは、下記のメッセージが出ますが、「yes」 と入力してください。
Git GUI の手順
Git Bash の手順
git clone サーバーにあるリポジトリのパス ローカル・ディレクトリのパス
参考
ブランチ
コミット
現在のブランチ
現在ローカルにある作業ディレクトリに対応
サーバーにアクセスするときは、サーバーにあるアカウントのパスワードが求められます。
コミット
ブランチ
ブランチ
矢印は、ポインタを表す。コミット同士のポインタは、前のコミットを指す
関連
次は、
The authenticity of host '....' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)
Git Bash の手順
cd .git フォルダーだけがあるフォルダーのパス
git checkout .
.git フォルダーだけがあるフォルダーのパス
現在使っている Git システムのインストーラーも、作業ディレクトリに含めてバック
アップするとよいでしょう。
圧縮ファイルから、.git 隠しフォルダーを含むフォルダーを展開するだけで復帰できます。
展開したフォルダーは Git GUI で開くことができます。
リポジトリをバックアップすると、複数のバージョン(コミット)のソースをを丸ごとバックアップ
することができます。
重要なバージョンが完成したときは、リポジトリを丸ごとバックアップすることを薦めます。
リポジトリをバックアップする
リポジトリ(作業ディレクトリ、.git フォルダーを含むフォルダー) を圧縮するだけで、
バックアップするファイルができます。
ただし、Windows XP では、リポジトリを右クリック [ 送る | 圧縮(zip)フォルダー ] で
圧縮すると、.git フォルダーが含まれません。
リポジトリを開き、.git フォルダーをドラッグ&ドロップして、圧縮フォルダーに.git
フォルダーも含めてください。 Windows7 では、この問題はありません。
関連
圧縮フォルダーをダブルクリック、
.git フォルダーだけ圧縮しても構いません。
圧縮ファイルから、.git 隠しフォルダーだけできた場合は、チェックアウトすれば復帰します。
リポジトリ(作業ディレクトリ、.git フォルダーを含むフォルダー) を右クリック [ Git Gui Here ]
で、Git GUI が開きます。 (インストール時に Git Gui Here にチェックを入れた場合のみ)
もしくは、[ スタート | すべてのプログラム | Git | Git Gui ] で、[ 既存リポジトリを開く ] または
[ 最近使ったリポジトリを開く ] で、ウィンドウが開きます。
[ リポジトリ | ワーキングコピーをブラウズ ] で、作業ディレクトリを開くことができます。
サーバーから複製したときは、[ リモート | 取得元 | origin ] でフェッチしてから、
[ リポジトリ | すべてのブランチの履歴を見る ] で、コミットの履歴を見ることができます。
参考
Windows からネットワーク経由で見ている Linux サーバーにあるワーク・フォルダーに対して
も使えます。
Windows 用の Bash シェル(コマンドプロンプト)です。
git にパスが通っています。
Linux 版 Git では、ターミナルから git コマンドを実行できます。
cd /C/dev
Bash へフォルダーをドラッグ&ドロップできますが、Linux 形式に変える必要があります。
貼り付けは、タイトルバーを右クリック [ 編集 | 貼り付け ] してください。
C:\dev に相当
[ スタート | すべてのプログラム | Git | Git Bash ] 、または、
起動
リポジトリ(作業ディレクトリ、.git フォルダーを含むフォルダー) を右クリック [ Git Bash Here ]
で、シェルが開きます。 (インストール時に Git Bash Here にチェックを入れた場合のみ)
(サーバーから複製したとき) [ リモート | 取得元 | (リポジトリ名) ] でフェッチする。
[ リポジトリ | すべてのブランチの履歴を見る ]
黄色い丸が、現在の作業ディレクトリの内容に対応するコミットです。
サーバーにあるすべてのコミット(バージョン)の一覧から、ローカルにある現在の作業
ディレクトリの内容に対応するコミットの位置を表示します。
git fetch [remote-name]
gitk
Git GUI の手順
Git Bash の手順
参考
Git では、バージョンのことを、「コミット」 と言います。
「ブランチ」は、最新版のブランチ、共有するブランチなど、修正する可能性がある
コミットを指します。
「現在のブランチ」は、現在ローカルにある作業ディレクトリの内容に対応する、
ブランチです。
ブランチ
コミット
ブランチ
ver 0.1
ver 0.2
ver 0.3
ver 0.4B
ver 0.4A
安定版・ブランチ
調査用・ブランチ
最新版・ブランチ
現在ローカルにある
作業ディレクトリに対応
関連
矢印は、ポインタを表す。コミット同士のポインタは、前のコミットを指す
コミット
右下のファイル一覧の中のファイルを右クリック [ 外部diffツール ] を選ぶと、
[ 編集 | 設定 | 外部diffツール ] で設定した diff ツールが開きます。
上下のペインを区切る水平線を移動させるには、検索 [ 次 ][ 前 ] と、[ 検索 ] の
間をドラッグします。
丸は、コミットを表す。 黄色い丸が、現在の作業ディレクトリの内容に対応するコミット。
緑は、ブランチ名。 太字は現在のブランチ。ベージュ色は、サーバーにあるリポジトリ名。
右にあるテキストは、コミット・メッセージ。
新しい
git branch #// ブランチを一覧し、現在のブランチを表示する
git log #// コミットを一覧する
git log -p #// 直前のコミットの diff を表示する
git log -p -C #// -C は、ファイルの移動を推測する
参考
現在のブランチ(現在ローカルにある作業ディレクトリの内容に対応するブランチ)
を、別のブランチやコミットに切り替えます。
ブランチが付いていないとき:
[ リポジトリ | すべてのブランチの履歴を見る ]
丸は、コミットを表す。 黄色い丸が、現在の作業ディレクトリの内容に対応するコミット。
緑は、ブランチ名。 太字は現在のブランチ。ベージュ色は、サーバーにあるリポジトリ名。
右にあるテキストは、コミット・メッセージ。
ブランチが付いているとき:
ブランチ(緑の四角)を右クリック [ このブランチをチェックアウトする ]
コミットメッセージ(枠の無い文字)を右クリック [ 新規ブランチ生成 ]。
ブランチ名は、とりあえず「t」など単純なものにしておきます。
ブランチ(緑の四角)を右クリック [ このブランチをチェックアウトする ]。
関連
作業ディレクトリを修正している途中なら、暫定的にコミットします。
サーバーから複製したリポジトリのときは、[ リモート | 取得元 | origin ] でフェッチ。
新しい
git branch "new_branch" "bda4bc0b2...." #// コミットにブランチを作成する
git checkout "new_branch" #// 現在のブランチを変更する
ブランチが付いていないとき:
ブランチが付いているとき:
git checkout "master" #// 現在のブランチを master に変更する
Git GUI では [ リポジトリ | すべてのブランチの履歴を見る ] の左中央に、
SHA1 ハッシュ値が、下記のように表示されます。
new_branch という名前のブランチを、コミット bda4… に作成します。
git branch コマンドは、現在のブランチを変更しません。
bda4… は、コミットの SHA1 ハッシュ値です。 次のように確認できます。
$ git log
commit bda4bc0b2174981985b4b9d82843fbf64ae4223a
Author: Your Name <you@example.com>
Date: Mon Aug 22 16:21:36 2011 +0900
first commit
参考
Git Bash の checkout ではサーバーにはアクセスしませんが、Git GUI でチェック
アウトすると、必要なときにサーバーにアクセスすることがあります。
参考
コミット「下記のf42c5」でクローンを作成して、サーバーとローカルの両方でリポジトリを
2回ずつコミットした状態は、下記のようになります。
フェッチ&プル
フェッチすると、ローカル・リポジトリは、下記のようになります。
プル(Git GUI のチェックアウト)をすると、作業ディレクトリの内容もダウンロードします。
追跡ブランチ(トラッキング・ブランチ)とは、サーバーにあるブランチ(リモート・ブランチ)
を指しているときの、現在のブランチのことです。
git fetch リポジトリ名
git pull リポジトリ名 ブランチ名
Git Bash の手順
サーバーにあるコミットを取得するには、フェッチ、プル、チェックアウトをします。
Git GUI では、プルは自動的に行われるので、フェッチ、チェックアウトをすることで
サーバーから取得できます。
リポジトリ名とブランチ名を省略すると、現在のブランチを指定したことになります。
Git GUI の手順
[ リモート | 取得元 | origin ] でフェッチ。
[ ブランチ | チェックアウト ]
トラッキング・ブランチを選択します。
[ チェックアウト ] ボタンを押します。
git checkout ブランチ名 が必要?
ブランチ
コミット
コミット
ブランチ
ブランチ
サーバーにあるコミットをチェックアウトしてから、ローカルで修正するときは、
矢印は、ポインタを表す。コミット同士のポインタは、前のコミットを指す
連続してチェックアウトすると、異常停止することがあります。 数分待ってください。
上記の手順の他に、追跡ブランチを使った下記の方法もあります。
チェックアウトの手順と同じです。
フェッチとは
追跡ブランチ(トラッキング・ブランチ)とは