{{tag>git}} # git のローカル環境の使い方備忘 この先 git 絡みで残しておきたいことが増えたら wiki のネームスペースを作るとして。とりあえずローカル環境の git を作ってちょっと使ってみたので備忘録として残しておこうと思います。 ちなみに筆者は github のアカウントは先行して持ってました。issue 投げるぐらいしか使ってないですけどね。 ## git 導入 これは……まぁご使用の環境で頑張ってくださいとしか。今回は珍しく debian 環境に導入したので、synaptic(?) で `git` を検索して導入して終了でした。 ## 最初にやっておいた方がよさそうなこと ### ユーザー名とメールアドレスを github アカウントにあわせておく。 例えば github に push した時にどこまで残るのかはまだよくわかっていませんが、少なくともローカルのコミットログには `Author` としてローカル環境のホスト名とユーザー名が残るんですよね。役割的に github のアカウントは `Committer` になりそうなので、github に push したファイルにも探せばどっかに `Author` は残ってるような気がします。 というわけで、まず最初にこれを変更。 ``` # git config --global user.name "" # git config --global user.mail ``` 設定は `~/.gitconf` に書かれるようです。 ### エディタを変更 コミットコメントを書くときに nano が起動して辟易しました……w ``` # git config --global core.editor vi ``` このあたりのコマンドはリポジトリとか関係ないので、どこで打っても大丈夫そうです。 ## github から crone してソースコードを引っ張ってくる やっとバージョン管理システムを触ってるっぽい感じになってきました。 ``` # git clone -b https://github.com/githubuser/someproject.git ``` `-b ` は指定しなければ master を引っ張ってくるのかな。url は github の…… ![github の url](git_memorandom.001.png) ……ここに書いてあります。赤丸のボタンでクリップボードにコピーできます。 このコマンドもどこで打っても大丈夫っぽいですが、コマンド打った場所にリポジトリが作成されてしまうので、`~/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 ..." to update what will be committed) (use "git checkout -- ..." 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 ``` ただ に関しては、引っ張ってきたところに返すなら `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 の鍵がどうしたとかっていう設定は、ここで使うっぽいですね。 ひととおりなんとなく触ってみたことはこれで残しておけそうです。