はじめに
よく使うブランチ関係のコマンドをアウトプットしています。
統合ブランチをdevelop、作業ブランチをfeatureとしています。
コマンドメモ
- 初回ローカルリポジトリ作成・リモートリポジトリにプッシュ
$ git init # 現在いるディレクトリをgitで管理するため設定ファイル作成
$ git add ファイル名 # ファイル名を.に置き換えると全てが対象になる
$ git commit -m "コメント" # メッセージをつけて変更履歴を保存
$ git branch -M main # デフォルトブランチをmasterからmainに変更
$ git remote add origin リポジトリURL # originという名前でリモートリポジトリのURLを登録
$ git push origin ブランチ名 # ローカルリポジトリの変更をリモートリポジトリにアップロードする
- ブランチの確認
*がついている場所が今いるブランチ
$ git branch
*main
- ブランチの作成・移動
developブランチを作成して、移動
$ git checkout -b develop
$ git branch
main
*develop
- ブランチの移動
$ cd アプリケーション
$ git checkout develop
- リモートの(統合ブランチの)最新版をローカルに反映させる
$ git pull origin develop
- 統合ブランチであるdevelopブランチから作業ブランチを作成する
$ git checkout develop
$ git checkout -b 作業ブランチ名
- 作業ブランチから内容をコミットする
$ git status
$ git add -A
$ git commit -m "コミット名"
- リモートリポジトリにpushする
$ git push origin 作業ブランチ名
ブランチ名変更
ブランチ名の変更コマンドもメモしときます!
$ git branch -m 古いブランチ名 新しいブランチ名
// 今いるブランチの名前を変更する場合
$ git branch -m 新しいブランチ名
GitHubのコミットにIssuesを関連付けてcloseにする
closeでマージしたときにIssuesをcloseさせる
#数字 で作成済みのIssuesに関連付ける
$ git commit -m "close #68"
あとはマージするだけでIssuesがcloseされる!
コミットメッセージを変えたい!コミットを上書きしたい!
Issues連携するの忘れてた!
コミットを上書きしたい!ってときに便利なコマンドです↓
$ git commit --amend -m "新しいコミットメッセージ"
空コミットの仕方
$ git commit --allow-empty -m "空コミットメッセージ"
$ git push origin ブランチ名
ログの確認方法
--onelineで見やすく絞り込む
qで閉じる
git log --oneline
ブランチを削除してやり直したい時のコマンド手順
ローカルブランチの削除方法
リモートにプッシュしていない場合、ローカルブランチを削除するだけでやり直すことができます
手順
現在作業ブランチにいる場合、作業ブランチを削除することができません
そのため、一旦削除対象以外のブランチに切り替えます
(mainでもdevelopでもいいです)
・ブランチの切り替え
$ git checkout develop
・作業ブランチを削除
$ git branch -D ブランチ名
作業ブランチでコミットをしていなかった場合に、
ブランチを削除したにも関わらず作業した内容が残っている場合があります
そういう時には、削除対象以外のブランチに切り替えた時にターミナルに以下が出力されているかと思います
ec2-user:~/environment/アプリ名 (feature/作業名) $ git checkout develop
M app/controllers/admin/confirmations_controller.rb
M app/controllers/admin/customers_controller.rb
M app/controllers/admin/genres_controller.rb
︙
Switched to branch 'develop'
この表示は作業ブランチで修正された箇所を引き継いでdevelopブランチで作業を続けられることを意味しています
しかし、作業をやり直したいわけですから余計なお世話ですよね
なので、まっさらな状態で新しく作業を始めたい場合は、以下のコマンドを入力します
$ git reset --hard HEAD
これで直前のコミット時点の状態に戻り、変更が全て破棄されます
注意
上記のコマンドで修正状態を元に戻ししても、
新しく作成したviewファイルなどのは削除されず、コードの中身もそのままです
ステータスを確認しておきましょう!
$ git status
以上のコマンドでやり直すことができます!
最新の統合リポジトリを取得する癖をつけましょう
コンフリクトが起きる可能性があります!
・リモートの(統合ブランチの)最新版をローカルに反映させる
$ git pull origin develop
リモートブランチの削除方法
・リモートブランチを削除
$ git push origin --delete ブランチ名
すでにそのリモートブランチが削除されている場合、以下のエラーが発生する可能性があります
error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@repository_name'
さいごに
都度追加してます!