はじめての雑に覚える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