Gitの使い方
Gitを使うようになったので,現状知っている使い方についてまとめておく.
Gitの設定
gitを使うときにemailアドレスとコミット時の名前を決めておく必要がある.
$ git config --global user.name "user name" $ git config --global user.email username@hogohoge.co.jp
で設定する.これで設定されたパラメタは~/.gitconfigに書かれる.従って同一マシン上の複数アカウントで個別にgitconfigが使える.
--systemオプションをつけると/etc/gitconfigに書かれる.gitレポジトリの中で,
$ git config user.name "user name" $ git config user.email username@hatena.com
とすると,レポジトリの.git/configに設定が入る.globalな設定よりもレポジトリの設定が優先される.あんまり使わない.
Gitの使い方
gitで使いたいディレクトリに入って,
$ git init
とする.ディレクトリ直下に.gitが作られる..gitはgitが管理するデータが入っている.
gitで管理するファイルやディレクトリを追加するには
$ git add aho.txt
とする.gitで管理するようにすることをステージングという.ディレクトリを指定すると含まれるファイルやサブディレクトリはが全てステージングされる.
ファイルをステージングして色々変更してキリのいいところまで進んだらcommitする.
$ git commit -m "Commit message"
-mでコミットメッセージをかける.複数行コメントを書きたい場合,-mオプションを繋げて書くか
$ git commit -F << EOM > comment 1 > comment 2 > comment 3 > EOM
とする.
リモートリポジトリを設定する場合,gitサーバーにレポジトリを作成しておき
$ git remote add origin <repo url> ||> とする.remoteを確認する場合は >|| $ git remote -v
とできる.リモートリポジトリを変更する場合は
$ git remote set-url origin <new url>
とする.ローカルリポジトリをリモートに反映するには,初めて行うときは
$ git push origin master
(masterは他のブランチ名でもよい)あるいは単に
$ git push
とする.
Git操作
gitの主な操作について書いておく
- ブランチの作成,マージ
プロジェクトのある状態から分岐させて一部を修正,うまく動作することを確認したら元のプロジェクトに変更点を反映させる操作.
$ git checkout -b new_branch $ git branch master *new_branch
で新しいブランチを作成できる.masterブランチはgitリポジトリを作成した際に最初に作られるブランチ.ブランチの切り替えはgit checkout
ブランチAにいる状態でgit checkout -b
新しく作成したブランチをリモートに反映する場合は
$ git push origin new_branch
ブランチ(new_branch)での作業を元のブランチ(ここではmasterブランチとする)へ反映させるには
$ git checkout master $ git merge new_branch
とする.new_branch→masterへと作業が移行される.移行先のブランチにcheckoutしてからmergeする.
mergeは自動で行われるが,new_branchとmasterで同じファイルの同じ箇所を修正していた場合などは手動でどちらの修正を取り込むか決めないといけない(merge conflict).マージした際にconflictなどと怒られた場合は
$ git mergetool
とすると,mergeでコンフリクトしたファイルを1つずつ修正して行くことができる.
mergeが完了したらcommitしておく.
2018/12/29追記
GitLabを使っていると,たまにPermission denied(publickey).と怒られることがある.その場合はssh-addで秘密鍵を再登録すれば良いみたい.
$ ssh-add git_rsa_key
とした後に,git pushなりをすれば良い.