git設定・コマンドまとめ
この記事の目的
gitの設定・コマンドについてまとめる。(個人用メモ。逐次追記予定)
1. gitのインストールと初期設定
ubuntuでは下記コマンドでインストールする。
sudo apt install git
インストール後にuser名・メールアドレスを設定する。 (ユーザー名・メールアドレス未設定だとエラーが発生するので注意)
git config --global user.email "UserName" git config --global user.email "EMail@example.com"
Proxyの設定 (社内ネットワーク等の場合のみ)
git config --global http.proxy http://[proxy]:[port] git config --global https.proxy http://[proxy]:[port]
github連携設定 (パスワード入力を省力化できる)
git ignoreの指定
gitinitしたフォルダのうち、管理対象としたくないものを指定する。(拡張子・フォルダ名等の指定が可能) なお、gitでは空フォルダの管理ができないので、空フォルダを管理したい場合はダミーファイルを作成する必要がある。
2. gitコマンド
2.1 リポジトリの作成・クローン
ローカルで作成したフォルダからgitリポジトリを作成する場合 レポジトリを作成したいフォルダを作成、移動してgit initコマンドを実行することでgit repositoryが作成される。(.gitフォルダが生成される)
mkdir testFolder cd testFolder git init
git init コマンドは下記オプションを利用できる。
option | 説明 |
---|---|
bare | リポジトリをBareリポジトリとして作成する |
shared | 同じグループに所属するユーザーからのpushを許容する |
BareリポジトリはWorking Folderを持たないので容量削減が可能 (開発者が操作しないファイルサーバー等に適した設定) 既に存在するレポジトリからローカルレポジトリを作成する場合git clone コマンドを利用する。
#github のレポジトリのclone (URLはブラウザで各レポジトリにアクセスし、"Code"ボタンから確認可) git clone git@github.com:sd08419ttic/ros_tech_memo.git #ローカルネットワーク上の他PCのレポジトリのclone git clone "userName"@"192.168.XXX.XXX":"~/gitFolder"
git clone コマンドは下記オプションを利用できる。
option | 説明 |
---|---|
bare | リポジトリをBareリポジトリとして作成する |
shared | 同じグループに所属するユーザーからのpushを許容する |
branch | cloneするブランチ名を指定する |
depth | 取得する履歴の個数を指定する |
更新回数が多い巨大プロジェクトの場合、-- depth 1 オプションを指定することでファイルサイズの消費量を少なくすることができる。
2.2 ブランチの操作
下記でブランチの確認・追加・削除・移動を行う
#ブランチの確認 git branch #ブランチの新規作成 git branch new branchName #ブランチの削除 git branch -d branchName #別ブランチへの移動 git checkout branchName
2.3 コミット操作
下記でローカルのレポジトリに加えた変更内容のコミットを行う。
# git add する前の変更点確認 git diff #変更内容のadd #-aオプションですべてのファイル、 ファイル名の指定個別指定も可能 git add -a git add test.txt #addの取り消し git reset HEAD #git addしたファイルの変更点確認 git diff --cached #コミット・メッセージの登録 git commit -m "initial commit" #直前のコミットの削除 git reset --hard HEAD^
2.4 プル操作
下記でリモートブランチでの変更内容をローカルリポジトリにマージする。
#ローカルブランチ名origin、リモートブランチ名masterrの場合
git pull origin master
2.4 プッシュ操作
下記でコミットした内容をリモートブランチにpushする。
#コミットされている内容の確認(diff) (ブランチmasterを変更している場合) git fetch origin git diff HEAD..origin/master #コミット内容のpush git push origin master