目次

git のローカル環境の使い方備忘

この先 git 絡みで残しておきたいことが増えたら wiki のネームスペースを作るとして。とりあえずローカル環境の git を作ってちょっと使ってみたので備忘録として残しておこうと思います。

ちなみに筆者は github のアカウントは先行して持ってました。issue 投げるぐらいしか使ってないですけどね。

git 導入

これは……まぁご使用の環境で頑張ってくださいとしか。今回は珍しく debian 環境に導入したので、synaptic(?) で git を検索して導入して終了でした。

最初にやっておいた方がよさそうなこと

ユーザー名とメールアドレスを github アカウントにあわせておく。

例えば github に push した時にどこまで残るのかはまだよくわかっていませんが、少なくともローカルのコミットログには Author としてローカル環境のホスト名とユーザー名が残るんですよね。役割的に github のアカウントは Committer になりそうなので、github に push したファイルにも探せばどっかに Author は残ってるような気がします。

というわけで、まず最初にこれを変更。

# git config --global user.name "<github ユーザー名>"
# git config --global user.mail <github メールアドレス>

設定は ~/.gitconf に書かれるようです。

エディタを変更

コミットコメントを書くときに nano が起動して辟易しました……w

# git config --global core.editor vi

このあたりのコマンドはリポジトリとか関係ないので、どこで打っても大丈夫そうです。

github から crone してソースコードを引っ張ってくる

やっとバージョン管理システムを触ってるっぽい感じになってきました。

# git clone -b <branch> https://github.com/githubuser/someproject.git

-b <branch> は指定しなければ master を引っ張ってくるのかな。url は github の……

github の url

……ここに書いてあります。赤丸のボタンでクリップボードにコピーできます。

このコマンドもどこで打っても大丈夫っぽいですが、コマンド打った場所にリポジトリが作成されてしまうので、~/git とかディレクトリ掘った下でやるのが無難そうです。

~/git$ git clone -b somebranch https://github.com/someuser/someproject.git
Cloning into 'someproject'...
remote: Counting objects: 1234, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 1234 (delta 3), reused 0 (delta 0), pack-reused 1456
Receiving objects: 100% (1234/1234), 789.96 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1016/1016), done.
Checking connectivity... done.

こんな感じで ~/git/someproject/ ディレクトリが作成されます。

リポジトリのステータス確認

ここから先のコマンドはリポジトリのディレクトリに入って実行する必要がありそうです。

~/git/someproject$ git status
On branch somebranch
Your branch is up-to-date with 'origin/somebranch'.
nothing to commit, working directory clean

ブランチを切る

もしこの時点でブランチを切るなら。

~/git/someproject$ git checkout -b otherbranch
Switched to a new branch 'otherbranch'

とかやるようです。新しくブランチが切れて、そのブランチを選択している確認は……

~/git/someproject$ git branch -v
* otherbranch b3d764c other comment
  somebranch  b3d764c some comment

……こんな感じです。

編集する

……といっても編集自体は git 関係ないので、好きなエディタでやれば良いかと思いますw

差分を見る

編集前後の差分は、以下のコマンドで確認できます。

~/git/someproject$ git diff

コミットする

なんとなくステータスの確認など。変更したファイルがわかるようです。

~/git/someproject$ git status
On branch somebranch
Your branch is up-to-date with 'origin/somebranch'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   somefile.php

no changes added to commit (use "git add" and/or "git commit -a")

納得したら、このローカルのリポジトリに対して変更をコミットします。

~/git/someproject$ git commit -a

これをやると、コミットコメントの編集画面に遷移します。適当に書いてエディタを終了します。

ログを見てみる

自分がコミットしたよ、というログが見られます。

~/git/someproject$ git log

github のリポジトリに変更を反映させる

とりあえずコマンドはこんな感じみたいです。

# git push <url> <branch>

ただ <url> に関しては、引っ張ってきたところに返すなら origin で良いみたいです。たぶん、これのことなんだと思います。

~/git/someproject$ git remote -v
origin	https://github.com/someuser/someproject.git (fetch)
origin	https://github.com/someuser/someproject.git (push)

また、ブランチの指定は任意のようですが……指定しない場合は master に push するんでしょうか。指定したブランチが github 側に存在しない場合は勝手に作成されるとか man に書いてあったような。

実際にコマンドを投げると github のユーザー名とパスワードを聞かれます。

~/git/plugin_syslog$ git push origin somebranch
Username for 'https://github.com': someuser
Password for 'https://wonderzone@github.com': 
 :
 :

github のどこかで見掛けた ssh の鍵がどうしたとかっていう設定は、ここで使うっぽいですね。

ひととおりなんとなく触ってみたことはこれで残しておけそうです。