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 の……
……ここに書いてあります。赤丸のボタンでクリップボードにコピーできます。
このコマンドもどこで打っても大丈夫っぽいですが、コマンド打った場所にリポジトリが作成されてしまうので、~/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 の鍵がどうしたとかっていう設定は、ここで使うっぽいですね。
ひととおりなんとなく触ってみたことはこれで残しておけそうです。