windowsでGitHub 基礎編
この週末にマスターしようと思い、Gitの本も買ってパラパラ。
プロジェクトでもCVSは使用しているし、
分散リポジトリの考え方をする(=ローカル・リポジトリを作成する)自社ソフトは少し触ったことがあるのでなんとなく分かる!
コマンドライン(リモートで更新、ローカルに反映)
リモートリポジトリの情報をローカルに変更を反映させます。
・リポジトリ上にファイルを作成
⇒ブラウザ上の「new File」から作成できます
差分を確認
git fetch
⇒変更が表示される。反映はしない
C:\GitHub\study_git [master]> git fetch remote: Counting objects: 4, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From https://github.com/sekaiya/study_git e35116d..58bfae6 master -> origin/master
差分の反映
git pull
⇒変更が反映されます
C:\GitHub\study_git [master]> git pull Updating e35116d..58bfae6 Fast-forward newFile | 1 + 1 file changed, 1 insertion(+) create mode 100644 newFile C:\GitHub\study_git [master]>
コマンドライン(ローカルで更新、リモートで反映)
ローカルでhoge.txt に行を追加してみます。
手順としては以下の通り。
1.ファイルを変更する 2.変更をステージングする 3.変更をローカルリポジトリにcommitする 4.変更をリモートリポジトリにpushする
差分の確認
git fetch で変更が表示。
C:\GitHub\study_git [master]> git fetch C:\GitHub\study_git [master +0 ~1 -0]>
差分の表示
git diff
⇒ステージしてない かつ コミットしていない作業ツリーの変更を表示
C:\GitHub\study_git [master +0 ~1 -0]> git diff diff --git a/hoge.txt b/hoge.txt index 884a19a..3f96d7c 100644 --- a/hoge.txt +++ b/hoge.txt @@ -1 +1,2 @@ +uhyohyo uuuu \ No newline at end of file C:\GitHub\study_git [master +0 ~1 -0]>
変更をステージング
git add .
⇒変更をステージングする。コマンドラインの色が赤から緑色に。
C:\GitHub\study_git [master +0 ~1 -0]> git add Nothing specified, nothing added. Maybe you wanted to say 'git add .'? C:\GitHub\study_git [master +0 ~1 -0]> git add . C:\GitHub\study_git [master +0 ~1 -0]>
※ステージングされた変更はdiffコマンドから無視される
C:\GitHub\study_git [master +0 ~1 -0]> git diff C:\GitHub\study_git [master +0 ~1 -0]>
ステージングされた変更を確認
git diff --cached
C:\GitHub\study_git [master +0 ~1 -0]> git diff C:\GitHub\study_git [master +0 ~1 -0]> git diff --cached diff --git a/hoge.txt b/hoge.txt index 884a19a..3f96d7c 100644 --- a/hoge.txt +++ b/hoge.txt @@ -1 +1,2 @@ +uhyohyo uuuu \ No newline at end of file C:\GitHub\study_git [master +0 ~1 -0]>
ステージングエリアの情報を含め、作業ツリー上全ての変更を表示
git diff head
C:\GitHub\study_git [master +0 ~1 -0]> git diff head diff --git a/hoge.txt b/hoge.txt index 884a19a..3f96d7c 100644 --- a/hoge.txt +++ b/hoge.txt @@ -1 +1,2 @@ +uhyohyo uuuu \ No newline at end of file
変更をローカルリポジトリに反映
git commit
C:\GitHub\study_git [master +0 ~1 -0]> git commit [master af211ea] 3kaime 1 file changed, 1 insertion(+) C:\GitHub\study_git [master]>
リモートリポジトリにpushする前に差分を確認
git log origin/master..master
C:\GitHub\study_git [master]> git log origin/master..master commit af211ea99d3ac8a8efeaad5f4afa4e9ec802eb88 Author: sekai <mail@mail> Date: Sat Aug 3 14:16:12 2013 +0900
変更をリモートリポジトリに反映
git push
C:\GitHub\study_git [master]> git push Counting objects: 5, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 310 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/sekaiya/study_git.git 58bfae6..af211ea master -> master C:\GitHub\study_git [master]>
リモートリポジトリ、ブランチを指定してpush
git push https://github.com/sekaiya/iena.git master
C:\GitHub\iena [master]> git push https://github.com/sekaiya/iena.git master Counting objects: 7, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 611 bytes | 0 bytes/s, done. Total 4 (delta 3), reused 0 (delta 0) To https://github.com/sekaiya/iena.git 1a33eef..acddae1 master -> master C:\GitHub\iena [master]>
とりあえず基礎編おわり。