読者です 読者をやめる 読者になる 読者になる

プログラミングとかLinuxとかの備忘録

プログラミング、Linuxでハマった箇所や環境構築のメモ

[随時更新] Gitの使い方まとめ

git

インストール

  • yum
$ sudo yum -y install git
  • apt-get
$ sudo apt-get -y install git

初期設定

デフォルトのユーザー名、メールアドレスの指定

$ git config --global user.name "${USER_NAME}"
$ git config --global user.email "${EMAIL}"

Pushのデフォルトの挙動の指定

  • nothing
    毎回ブランチを指定するモード
  • matching
    ローカルとリモートで同じ名前のブランチがあったらすべてpush
  • upstream
    現在のブランチにupstreamが設定されている場合,pushする(upstreamって何?)
  • simple
    upstreamが設定されている,かつ,それが同名ブランチであるときpushする
  • current
    現在のブランチをリモートに同名でpushする

一番事故が少なそうなcurrentをデフォルトにする

$ git config --global push.default current

init

空のディレクトリを作成する

$ mkdir /path/to/project

リポジトリを初期化する

$ cd /path/to/project
$ git init
Initialized empty Git repository in /path/to/project/.git/

リモートリポジトリがある場合は追加する

$ git remote add origin ${リモートリポジトリのURL}

add

$ git add ファイル名        # 特定のファイルをステージに追加
$ git add --all             # 全ての変更をステージに追加(ファイルの削除も反映)
$ git add --ignore-removal  # 全ての変更をステージに追加(削除したファイルを無視する)

commit

git commitでコミットはできるが,コメントも同時に記述したい場合は
以下の様にする

$ git commit -m "${COMMENT}"

複数行のコメントを記述したい場合は以下の用に-mを追加する

$ git commit -m "${COMMENT_LINE1}" -m "${COMMENT_LINE2}"

remote

リモートリポジトリの追加

$ git remote add origin ${リモートリポジトリのアドレス}

現在のリモートURLを確認する

$ git config -l | grep url
remote.origin.url=https://...

リモートURLを変更する

$ git remote set-url origin ${リモートリポジトリのURL}

$ git config -l | grep url
remote.origin.url=git@bitbucket.org:...

push

  • ローカルのNEW_BRANCHをリモートにプッシュする
$ git push -u origin ${BRANCH_NAME}

pull

ローカルの変更を破棄し,リモートで上書き

$ git fetch origin
$ git reset --hard origin/${BRANCH_NAME}

branch

ブランチの一覧を取得

$ git branch -a
master
remotes/origin/HEAD -< origin/master
remotes/origin/master
...

ローカルブランチの作成

$ git branch ${NEW_BRANCH}

ローカルブランチの削除

$ git branch --delete ブランチ名    # マージ済みブランチの削除
$ git branch -D ブランチ名          # マージしたかどうかに関わらず削除

リモートブランチの削除

i$ git push --delete origin ブランチ名

checkout

ブランチの切り替えを行う

$ git checkout ブランチ名       # ローカルに切り替え先のブランチがある場合
$ git checkout -b ブランチ名    # ローカルに新しいブランチを作成し,移動
$ git checkout -b ブランチ名 remotes/origin/ブランチ名 # リモートに切り替え先のブランチがある場合

merge

ローカルブランチ同士をマージする

  1. マージ先のブランチにcheckout
  2. マージ

する.
branch1branch2にマージする場合は

$ git checkout branch2
$ git merge branch1