Git
cli

雑に覚えたGit CLI

はじめての雑に覚えるGit CLI

今までSourceTreeとか、GitKrakenに甘えた人生を送ってました
Git操作で苦しんでる暇あったらアプリケーション実装しようね、の世界にいたので。

ただ、ちょっと自分の身辺の状況が変わったので、改めてGitを
CLI (Command Line Interface)を使って、Gitを扱えるようになってみようかなと思っております。

N番煎じでも気にしない!!マサカリバッチこいですよー!!

と、IT初心者向けです。
間違ってたり、こういう使い方もあるよってことがあったら教えてください!

前提

  • Gitの仕組みとか背景とかは知ってる。
  • ソフトウェア導入できない労働環境にあってCLIでやらないといけない。
  • Git界の変態ではない人 そんな人向け。

clone

一番よく使うコマンドだと思う。リモートにあるリポジトリをローカルにダウンロードしてくる。

$ git clone http://fugahoge.com

git clone <address>
で、プロジェクトを落としてくることができる。
SSH経由で引っ張ってくるときは、 git@ のスキームを利用して、
HTTPS経由で引っ張ってくるときは上記みたいに https:// のスキームを利用する。

init

バージョン管理したいディレクトリをGit化(Gitの管理下)に置くための処理。
一番最初にこれやる。

$ cd <Git化したいディレクトリ>
$ git init

remote

リモートリポジトリと現在のローカルリポジトリを紐づける。

$ git remote add origin https://fugahoge.com

git remote add <好きな名前> <どこのリモートリポジトリか> で紐づけられる。

紐づけを消したい場合は、以下の通り
git remote rm <紐づけたリポジトリの名前>

diff

差分を見るのに使います。

$ git diff

status

変更されたファイルの一覧を表示する

$ git status

log

コミットログを一覧で表示する

$ git log

git log -p
で、diffも見れるようになる。

branch

新しくブランチを作成する

基準となるブランチは、現在いるブランチなので、 git branch で確認してから行う。

$ git branch branchABC

checkout

別のブランチへ切り替える

$ git checkout branchABC

ブランチの切り替えと作成を同時にやるときは
git checkout -b branchABC とやる。

add

変更したファイルをステージに追加する。

$ git add text.txt

全部追加したいときは、
git add -A で追加できる。

git add -u で既にコミットしたことのあるファイルだけを追加することができる。

新しく作ったものはまだコミットしたくない時などに使えるっぽい。

reset

ステージに追加したファイルをワーキングツリーに戻す。
コミットに間違えちゃったときに使います。

$ git reset --soft

オプションについて
--softだとステージに戻る
--hardだとコミットが無かったことになる

pushしてしまっていたら、使えない。(リモートには反映されないので)
自分は諦めてrevertしてます。

commit

ステージに追加されたファイルをブランチの履歴として登録する。

$ git commit -m "message"

-m オプションつけるとコメント付きでコミットできる。

push

現在のブランチをリモートに送る(反映する)

$ git push origin branchABC

フォーマットは以下のような感じ
git push <リモートの名前> <ブランチの名前>
masterを送りたければ、 git push origin master になる。

git push -u origin branchABC とすると、次回から
git push とするだけで、リモートの branchABC に、ローカルの branchABC が送られるようになる。

rebaseしてリモートに反映させたい場合は、force pushする。
git push -f origin branchABC
ただ、force pushは、同一ブランチで他の作業中の人にも影響を与えるので注意が必要。

revert

現在のコミットを打ち消すコミットを行う。

$ git revert HEAD

HEADというのは、現在いるコミットの位置。revertしたらpushしてリモートも打ち消す。
git push -u origin branchABC

pull

リモートの状態をローカルに反映させる。

$ git pull origin master

$ git pull <リモートの名前> <ローカルに反映させるブランチの名前>
で、反映できる。

merge

特定のブランチを自ブランチに取り込む。
ただ、Githubを利用した開発運用している場合は、あまり使わないかもしれない。

$ git merge branchABC

rebase

特定のブランチを自ブランチの履歴として取り込む。
mergeは、自分のブランチの履歴として取り込むことはなしない。
詳しくは、ぐぐったら出てくると思うので割愛。

$ git rebase branchABC

競合が発生していたら、競合を解決して、
git rebase --continue を行う。

ちょっと特殊なやつ

cherry-pick

特定の1コミットを自分のブランチに取り込む。
間違ってコミットしちゃったーーー!!というときに使えます。

$ git cherry-pick abcde12345

git cherry-pick <commitID>

応用例・実用例

実用例が出てきたら更新します(きっと)。

所感

GUIツールって神w