SourceTreeを卒業し、コマンド操作でgitを利用する事があったので軽くメモ。
ローカル編
リポジトリのダウンロード
$ git clone https://〜〜〜 # リポジトリのURL
ブランチの確認
自分の使用しているブランチの確認と、ブランチ一覧を表示する。
$ git branch
ブランチの切り替え
$ git checkout 切り替え先のブランチ名
ブランチの作成
現在いるブランチにて以下のコマンドで新しいブランチを派生させる。
個人で使うには自由、共同開発現場ではgit-flowチートシート
の内容が一般的。
$ git checkout -b ブランチ名
ブランチの削除
削除するブランチから別ブランチへ移動しておくこと。
$ git branch -D ブランチ名
リモートとローカルの同期
以下のコマンドにはgit fetch
も含まれている。
$ git pull
差分の確認
差分ファイルを表示する。
$ git status
ファイル内の差分表示する。(ファイルパスはgit status
で表示されたもの)
$ git diff [ファイルパス]
space
キーで進む。
q
キーで確認終了。
差分の取消
変更前の状態に戻す。
$ git checkout [ファイルパス]
全てのファイル
の差分を取り消す。
$ git checkout . # ピリオドを使用する
変更(差分)をindexに保持
差分ファイルをindexに保持
する。
$ git add [ファイルパス]
-A
オプションは差分が出ている全てのファイル
を指定する。
$ git add -A
変更をコミットする
indexに保持した差分
をブランチに記録する。
$ git commit -m "hogehoge"
コミット履歴の確認
コミットIDとコミットした際にコメントを付けていれば、コメントが確認できる。
$ git log
コミットの取消
直前のコミットを削除し、差分を残したままにする。
$ git reset --mixed HEAD^
コミットの削除
git log
で表示させたコミットIDのうち、指定したコミットIDを削除する。
$ git reset --hard コミットID
ローカルからリモートへPUSHする
originはとりあえず固定でリモートを指すものとしておく。
$ git push origin ブランチ名
強制
PUSH
リモートに同名のブランチがあるだけ場合はリモートのブランチを削除後に普通にPUSHする方が良いが必要に応じて使用。
$ git push -f origin ブランチ名
他ブランチから差分をマージで取り込む
開発中のブランチにいる状態でmasterを指定すればmasterの差分が取り込まれる。
コンフリクトが起こったら修正する。
cherry-pick
やrebase
という手段もあり。
$ git merge 取り込むブランチ名 # 今checkoutしているブランチに取り込まれる
タグを付ける
$ git tag タグ名
タグにコメント(注釈)を付ける
$ git tag -a tag -m "hogehoge"
タグのPUSH
$ git push origin タグ名
全タグのPUSH
$ git push origin --tags
タグを削除
$ git tag -d ダグ名
タグ一覧
$ git tag
リモート編
リモートブランチの削除
ブランチ名の前に:
が必要。ローカルのどのブランチで実行してもOK。
$ git push origin :ブランチ名
リモートのタグを削除
タグ名の前に:
が必要。
$ git push origin :タグ名
初期設定
初期化
gitが設定されていないディレクトリで以下を実行するとgitが適用される。
$ git init
初期化後にブランチを作成(master)
、変更をindexに保持
、ブランチにコミット
することによって、最初のrepositoryが作成
される。
初期化した後にファイルの変更を行うと差分
が生まれる。
履歴に残る名前を設定
$ git config --global user.name "自分の名前"
$ git config --global user.email "xxxxx@xxxxxxx.co.jp"
その他
Serverにrepositoryを用意
Server内でgit用ディレクトリ(xxxx.gitと名前を付ける)に移動し、以下のコマンドを実行。
$ git init --bare --shared
ローカルとリモートの紐付け
ローカルで行う。
domain
はIPでもURLでも。
xxxx.git
はServer内のgitディレクトリのフルパス。
$ git remote add origin https://[user名@]domain:xxxx.git
子リポジトリの読み込み
$ git submodule hogehoge
子リポジトリの更新
$ git submodule update
【参考】
#####originて何?
http://dqn.sakusakutto.jp/2011/10/git_push_origin_master.html