Git

コマンドラインで良く使うgitコマンド

はじめに

サルでもわかるGit入門とかありますが、実際使ってみないと分からない。(サル以下でした orz)
git覚えたての頃はSourcetreeにお世話になってました。
ここ最近はコマンドラインからgitを使用する事が多くなったので、その備忘録。

前提としてgitをインストール済みの環境であること。
$ git --versionでバージョンが表示される)
macでターミナルを使用。
Gitのホスティングサービスは無料でプライベートリポジトリを持てるbitbucketを使用する。
※公開リポジトリの場合GitHubは無料。

gitの導入

履歴に残る名前を設定

$ git config --global user.name "自分の名前"
$ git config --global user.email xxxxx@xxxxxxx.co.jp

初期化

gitが設定されていないディレクトリで以下を実行するとgitが適用される

$ git init

ブランチの確認

現在いるブランチの確認

$ git branch

ブランチの切り替え

ブランチを切り替える

$ git checkout 切り替えたいブランチ名

ブランチの同期(リモートとローカル)

$ git fetch && git pull

ブランチの作成

現在いるブランチにて以下のコマンドで新しいブランチを派生させる
feature/は新しく作るとき
hotfix/は急ぎ対応するとき
個人でやる分には結構自由

$ git checkout -b feature/ブランチ名

ブランチの削除

不要なローカルのブランチは削除、断捨離大事

$ git branch -D feature/ブランチ名

差分のあるファイルの確認

ステージングにあげる前にやっておいた方がいい

$ git status

差分の詳細確認

ステージングにあげる前にやっておいた方がいい

$ git diff

qで出れます。

差分を帳消しにする

わけわからなくなったらリセットできちゃう

$ git checkout .

上記がダメならgit add -Aからのコミットを行い、別ブランチに切り替えてそのブランチを消す方法もあり

差分をステージングにあげる

1つずつあげる

$ git add ファイル名パス

一気に全てあげる(大体こっちを使用)

$ git add -A

ステージングにあげた履歴を登録する(commitという)

ステージングにあげてないとコミットできないので注意

$ git commit -m "なんかコメント"

ブランチをリモートにあげる(PUSHという)

コミットしてないとプッシュできないので注意

$ git push origin ブランチ名

git rebaseとかしたりしていると、ここでよくエラーが起こりがち。
以下のコマンドで全てを無視して強制的にあげることが可能。

$ git push -f origin ブランチ名

おわりに

はじめてgitをコマンドで触ったとき、
リモートへpushするときにoriginって何?と思ったが、
リモートリポジトリの名前の別名らしい。(まぎらわしい)
例えばgit push origin masteroriginリポジトリのmasterブランチを指している。
要はoriginリモートのことを指しているんだな〜ということ。
なので、リモートのブランチにプッシュするとき、git push originまでがセットになる。