github.com上で新たなレポジトリを作る

まずwww.github.com にWebブラウザでサインインします。
こんなサインインすると、こんな画面になるはずです。

この右上の「+」のところを、ぽちっとすると以下の図のようになります。

「New Repositry」をクリックすると。

こんな感じになります。
ここで、新しいレポジトリ名を指定します。

この段階で、github.com上にはhttp://github.com/ユーザ名/レポジトリ名に、 新しいレポジトリが作られました。
この画面では、ユーザーleplusplus、レポジトリstack-が https://github.com/leplusplus/stack- にレポジトリが作られています。

この画面で表示されているところに注目してください。


echo "# stack-" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/leplusplus/stack-.git
git push -u origin master

この文字列はコマンドの集合です。
自分のパソコン上でgitshell等を起動し(黒画面)、上のコマンド群を実行することで、自分のパソコン上のフォルダと、 github.com上にたった今作ったリポジトリとを紐づけすることができます。

自分のパソコン上のフォルダをレポジトリと関連付ける

自分のパソコン上の作業フォルダをgithub.com上のレポジトリと「紐づけ」します。

自分のパソコン上でgitがうまく設定されていれば、デフォルトのgithubフォルダが設定されているはずです。
自分のパソコン上でgitshellを起動してみます。

この画面では、GitHubフォルダがC:\Users\Le\Documents\GitHubに設定されています。
とりあえずはGitHubフォルダ以下を作業ディレクトリとするのが安全です。

フォルダ stack- を作り、そこに移動します。

ここで先ほどのコマンド群を入力します。
カット&ペーストではなく、手作業で入力するのがよいでしょう。

1 echo "# stack-" >> README.md フォルダ内にREADME.mdというファイルを作る。
エディタ等で作っても構いません。作らなくても動きますが、誰かに怒られるかもしれません。
2 git init このフォルダをgitで管理するための初期設定。
隠しフォルダ .git が作られ、各種設定ファイルが作られます。
3 git add README.md gitで管理するファイルをaddします。
開発途中のプログラムソースなどをaddしていくことになります。
4 git commit -m "first commit" git管理対象の変更点をcommitします。
現時点で管理の対象となっているのは、先にaddしたREADME.mdだけです。
5 git remote add origin https://github.com/leplusplus/stack-.git 自分のパソコンの現在のフォルダを、github.com上のフォルダと関連付けます。
7 git push -u origin master git管理下にあるcommitをmasterへpushします。

自分のパソコンの開発環境のフォルダに入り、そこを拠点とすればよいわけです。
gitで管理を始めるには、そのフォルダ内で git init します。
パソコンのgit環境が整っていれば、これだけでそのフォルダ(およびサブフォルダ)はgitで管理できます。
git init すると、そのフォルダ内に隠しフォルダ .git が作成されます。

試しにまったく別のフォルダに行って、git init してみましょう。

上の例では、まったく別の場所でフォルダ test-git を掘り、そこに cd しています。
git init すると、隠しフォルダ .git が作成され、そのフォルダがgitの管理対象となります。
既存のフォルダでもかまいません。 git init することで、そのフォルダが管理対象となります。

隠しフォルダ.gitの内容

gitは、隠しフォルダ.git内でそのフォルダ(とサブフォルダ)を管理しています。
git initして、最初に作られるファイルを見ておきます。
隠しフォルダ .git dir などのコマンドでは表示されませんが構わずcd します。

.git にcdしたら、コマンドプロンプトが[master]から[GIT_DIR!]に変わったことに注意。

.git フォルダ内にはいろいろなファイルやサブフォルダが作られていますが、今は無視します。
重要なのが、 config  ファイルです。
中身をのぞいてみると、[core]というセクション?があり、なんか書いてあります。
とりあえず、 cd .. をして作業ディレクトリに戻り、教科書通りに README.md を作り、 git add README.md します。

README.mdを作った途端に、コマンドプロンプトの[master][master +1 ~0 -0 1]に変化していることに注目。
さらに、 git add README.md をした途端に、[master +1 ~0 - ~]に変化している。
しかし、.git フォルダの内容は、表面上は何もかわっていないようだ。(おそらく、サブフォルダの内容が変化しているはずだ)

フォルダをgithub.com上のレポジトリと紐づける

このままでは、当該ディレクトリがgitの管理下に置かれているだけで、ネット上のgitHUb.comとは連携が取れていません。
自分のパソコン内で、 git add testprogram.c したり  git commit -m gudaguda とか、バージョン管理はできますが、それをgithub.comのレポジトリに push したりすることはできません。
自分のパソコン内のgit管理下のフォルダを、github.com上のレポジトリと紐づけるには、

git remote add origin https://github.com/ユーザー名/リポジトリ名.git

とします。

この画面では、 git remote add origin https://github.com/leplusplus/stack-.git です。
こうすることで、隠しフォルダ .git内の config ファイルの内容に [remote "origin"] セクションが追加され、
url = https://github.com/leplusplus/stack-.git
fetch - +refs/heads/*:refs/remotes/origin/*
が追加されます。

これで、パソコン上の当該フォルダがgithub.comのリポジトリ名と紐づけられ、pushすることができるようになります。

いろいろやってみる

1)ステージング
いろいろ修正したファイルを、commitの対象として登録する。のだと思う。
git add ファイル名
で、指定されたファイルがcommitの対象となるはず。
git add -u
は、変更されたファイルのみをステージングする。(ようだ)

2)コミット

ステージングしたらすぐにcommitをしたほうがよいのか俺にはよくわからん。
ステージングされたファイルを対象に修正ポイントを作成する。
git commit -m タグ
タグは省略できない。
このタグは、そのうちでてくるブランチの操作に使われるので、結構重要。
何を変更したのかを簡潔に書く。

3)プッシュ

commitされた修正ポイントをgitHub.comに反映させる。(かな?)

git push -u origin master

いろいろと疑問点


git add *.c
git commit -m "hoge"
git push -u origin master

の動きがいまいちつかめないのだが、 とりあえず、 変更したファイルをcommit対象とするのがgit add(ステージング?)
、 ステージング対象となったファイルをcommitして修正ポイントを作り、
git pushでその修正ポイントをgithub.comに反映させる。
ということだと思う。

とりあえず、単純なプログラム作成の場合、なんか修正してcommit/pushしたいのなら、


git commit -a -m "hoge"
git push -u origin master

でよいように思う。


今はブランチとかは考えず、ただ慣れるほうがよいと思う。