*Githubを使いこなそう [#n2a4b650]
※随時更新&br;
※CUIメイン:特に何も書いてなければ操作は基本コマンドプロンプト(Win)かターミナル(Mac)で行います

*Githubとは? [#r2c455f7]
**Gitとは [#aa6f2894]
プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである(by Wikipedia)&br;

**Githubとは [#l5bca19c]
Gitを利用したソフトウェア開発プロジェクトのための共有ウェブサービスである(by Wikipedia)&br;
つまり,Gitのリモートリポジトリのサーバー供給とかSNSっぽいこととか,そういうのを提供してくれる&br;
&br;
&br;
これだけではなんのことかわからないと思うので,[[ココ:http://www.backlog.jp/git-guide/]]の入門編を読むとわかりやすい

*Githubの用語 [#ibbc9331]
-ローカルリポジトリとリモートリポジトリ&br;
どちらもリポジトリ(データの貯蔵庫みたいなところ)であることに変わりはないのですが,その名の通りローカルリポジトリとはユーザのPCの中のGithubと連携したリポジトリを指します.
反対にリモートリポジトリはGithub上のリポジトリです.基本的にはローカルで作業してリモートにプッシュという流れになります.
&br;&br;
-commit(コミット)&br;
ファイルの追加や変更の履歴をリポジトリに保存することです.
&br;&br;
-push(プッシュ)&br;
ファイルの追加や変更の履歴をリモートリポジトリにアップロードするための操作です.
&br;&br;
-branch(ブランチ)&br;
"枝"という意味の通り,masterから分岐したデータです.例えるなら,バージョン管理のために毎回名前を付けて保存している状態が一番近いです.
&br;&br;
-merge(マージ)&br;
ブランチの内容を反映させます.
&br;&br;
-マークダウン(md)ファイル&br;
READMEとかが書かれてる形式のファイル.&br;
普通のテキストファイルをちょっとした規則を加えて書くだけで,HTMLっぽく見せてくれるいい感じのやつ.&br;
詳しくは[[ココ:http://qiita.com/tbpgr/items/989c6badefff69377da7]]とか[[ココ:http://codechord.com/2012/01/readme-markdown/]]を参照されたし.

*Gitをインストールしよう [#ye296c94]
**Githubのアカウントを作ろう [#r04dc442]
[[ココ:https://github.com/join]]からアカウントが作れる

***Github Education [#w276e682]
Githubのリポジトリは原則公開されるのだが,Privateリポジトリといって他人からはアクセスできないようにもできる&br;
このPrivateリポジトリを使うためには本来は有料会員になる必要があるが,学生は無料で5つまでPrivateリポジトリが持てるようになる&br;
※申請のためには学校から支給される「ac」の入ったアドレスが必要&br;
※つまり「@kansai-u.ac.jp」&br;
&br;
そのための申請は[[ココ:https://education.github.com/]]から&br;
[[ここ:http://qiita.com/YamanakaFumiya/items/d8c06c9a28ce04d3043a]]が参考になる

**Winodowsの場合 [#r8d6a377]
[[ココ:https://git-scm.com/downloads]]から最新版をダウンロード&br;
ダウンロードしたインストーラを起動してインストーラしますが,その際「Adjusting your PATH enviorment」という項目があるので「Use Git from the Windows Command Prompt」にチェックを入れましょう&br;
また,「Configuring the terminal emulator to use with Git Bash」という項目があるので,「Use Windows' default console window」にチェックを入れましょう&br;
&br;
[[ココ:http://qiita.com/taipon_rock/items/632c117220e57d555099]]が参考になります

**MacOSXの場合 [#e10e8443]
普通はHomebrewが入っていたら,Githubも入ってるはず
でも一応,&br;
-$brew update
-$brew upgrade
-$brew install git

Homebrewが入ってない人は[[MacOSで開発環境を構築するwithHomebrew]]で導入.&br;
&br;

**共通事項 [#f1dc8778]
ユーザ情報を登録します.
-$git config --global user.name <username>
-$git config --global user.email <mailaddress>&br;
ex:$git config --global user.email k030913@kansai-u.ac.jp&br;
ちなみに,$git config --global --listで確認できる
&br;

*Githubにレポジトリを作ろう [#kd3c07f8]
ここではHTTPSを扱います.SSHを使いたい人は自分で頑張ってね.&br;
&br;
**ローカルリポジトリの作成 [#ifd699ab]
ローカルリポジトリを作りたいディレクトリで,
-$ git init XXX&br;
XXXはリポジトリの名前&br;
これでローカルリポジトリが完成です.&br;
このあと,各自必要なファイルをリポジトリ内に作ります.&br;
&br;
とりあえず,
-touch README.md&br;
でREADMEファイルを作成しましょう.&br;

**リモートリポジトリを作成する(初回のみ) [#gc796c06]
githubのwebページの画面右上,「+」マークをクリック「new repository」を選択,リモートリポジトリを作成します.&br;
Initialize this repository with a READMEにチェックをつけておきます.&br;
Create repositoryでリポジトリが作成されるので,リポジトリのページのURLをコピーしておきます,&br;
&br;
ローカルリポジトリとリモートリポジトリを連結させます.&br;
-$git add *&br;
addコマンドはcommitする前準備です.&br;
addされたものをcommitすることになります.&br;
add *で,変更のあったファイルは全てaddします.&br;
ただし,add *は削除したものには対応してくれないみたいなので,ファイルの削除とかはadd -Aを使うといい.これでレポジトリ内の追加・更新・削除全てに対応してくれるはず.&br;
add README.mdというように,ファイルを指定することも可能です.&br;

-$git commit -m "XXX"&br;
commitコマンドでaddしたもの=ファイルの更新履歴を作成します.&br;

-$git remote add origin https://github.com/USER-NAME/REPO.git&br;
USER-NAMEはユーザ名,REPOはリポジトリの名前です&br;
これでローカルリポジトリの内容をリモートリポジトリに反映することができました.&br;

**cloneする [#z60bb48d]
-$git clone XXX&br;
XXXはclone先のURL&br;
cloneコマンドで,既にあるリモートリポジトリを自分のローカルリポジトリ内にclone(コピー)できます.&br;

**ローカルリポジトリの変更内容をリモートリポジトリに反映させる [#nb7b8cb3]
ローカルリポジトリで,
-$git add *
-$git commit -m "XXX"&br;
add *で変更があったものをあげて,commitコマンドで変更履歴を作成しました.&br;
-$git push origin master
これで完了です.&br;

**リモートリポジトリの変更内容をローカルリポジトリに反映させる [#ue9c80e4]
ローカルリポジトリで,
-$git pull origin XXX&br;
XXXはbranchの名前です.

**branchを使う [#u150496d]
まずは現在のbranchを確認してみます.&br;
-$git branch&br;
これで現在のローカルリポジトリのbranch一覧を確認できます.&br;
アスタリスクがついているのが今いるbranchです.&br;
まだbranchを作ったことがない,という場合はmasterというbranchのみになっているはずです.&br;
早速新しいbranchを作ってみます.&br;

-$git branch XXX&br;
これでXXXという名前のbranchを作ることができます.&br;
$git branchで確認してみると,新しいbranchが一覧に追加されているはずです.&br;
でも,まだ以前のbranch上にいたままになっています.&br;
ということで,branchを移動します.&br;

-$git checkout XXX&br;
これでXXXという名前のbranchに移動することができます.&br;
$git branchで確認すると,移動できたことが確認できるはずです.&br;
これで,この後はcheckoutコマンドでbranchを移動しない限りは,PCをシャットダウンしてもbranchは変わりません.&br;
このbranchの変更内容をpushするときは,$git push origin XXXというように,XXXのところをbranchの名前にします.&br;
※これまでの部分ではbranchはmasterだったので,$git push origin masterとなっていました.&br;
※pullの場合も同様に$git pull origin XXXです.&br;

***branch関連で役立ちそうなコマンドたち [#l2c9e14c]
-$git branch -m XXX YYY&br;
XXXという名前のbranchをYYYに名称変更

-$git branch -m YYY&br;
今開いているbranchの名前をYYYに変更

-$git branch --delete XXX&br;
HEADにmergeしたbranch,XXXを削除する

-$git branch -D XXX&br;
branch,XXXを削除する

-$git branch --remote&br;
リモートリポジトリの全branchを表示する

-$git push --delete origin XXX
-$git push origin :XXX&br;
リモートリポジトリにあるbranch,XXXを削除する

-$git branch --all&br;
ローカル,リモートリポジトリの全branchを表示する

**branchをmergeする [#qd5bc954]
branchで作成したシステムがきちんと動くようなら,いつまでもbranchをわけておくのも鬱陶しいです.&br;
必要に応じて,branchでの変更内容を元のbranch(masterとか)に取り入れましょう.&br;
-git checkout XXX&br;
まずは変更を反映させたいbranchに移動します.&br;
「反映したい」branchではないので要注意です.&br;

-$git merge YYY&br;
mergeコマンドで,現在のbranchにYYYというbranchで行った変更を取り込むことができます.&br;
競合が発生していなければ,XXXの中身はYYYの中身に変わっているはずです.&br;
競合があった場合,警告文が出て,競合箇所にそうとわかるように記述が入っています.&br;
頑張って競合を潰しましょう.
頑張って競合を潰しましょう.&br;
mergeしたらaddしてcommit,pushしておきましょう.




&br;
[[14_Ishikawa]]に戻る&br;
[[14members]]に戻る&br;
[[Members]]に戻る&br;
[[Home>tomokoyonezawaLab_FrontPage]]に戻る&br;

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS