現役エンジニアの僕が、普段からよく使うGitコマンドを整理してみました😊
コマンドをコピーして使えるので、Gitを使い始めたプログラミング初心者も使いやすいと思います。
このぐらいのコマンドが使えるようになると、業務でも困ることはないです👍
【目 次】
ブランチの操作
特定のブランチでローカルを上書きする
git fetch origin
git reset --hard origin/(上書きしたいブランチ名)
ブランチ確認
git branch
ブランチ作成
git branch hoge
ブランチをリモートへ登録
git push -u origin 作成したブランチ名
ブランチの削除
git branch --delete hoge
リモートブランチ削除
git push --delete origin branch_name
幽霊ブランチの削除
リモートブランチにはないけど、ローカルのリモートブランチにはある状態
消されるブランチを事前に確認する
git remote prune origin --dry-run
幽霊ブランチを削除(ローカルブランチを削除)
git remote prune origin
作業ブランチを移動
git checkout hoge
ブランチを、myProjetで作成してチェックアウトまで行う
git checkout -b myProjet
ブランチの派生元を調べる
一番下の行が派生元
git show-branch
作業ブランチにmasterブランチの差分を取り込む
作業ブランチとmasterブランチの差分を、作業ブランチに取り込む方法。masterのほうが修正が進んでいる場合。
手順1.作業ブランチの修正をコミット
git add .
git commit -m 'コミットメッセージ'
手順2.masterを最新に
git checkout master
git pull origin master
手順3.作業ブランチの変更分は既にcommitしてあるので、masterとの差分を取り込む
git checkout (作業ブランチ)
git merge master
コンフリクトが発生したら修正し、再度addとcommitをする。
コミットの操作
「git add」で追加された内容の確認
「git add」するとステージングに追加される。その内容を確認するにはstatusコマンドを使う。
git status
(省略)
Changes to be committed:
(use "git restore --staged ..." to unstage)
new file: FirebaseUISNSLogin/FirebaseUISNSLogin.xcodeproj/project.pbxproj
new file: FirebaseUISNSLogin/FirebaseUISNSLogin.xcodeproj/project.xcworkspace/contents.xcworkspacedata
(省略)
特定のコミットに戻す
「git log」で、戻す対象のハッシュ値を調べたあとに、「git reset」で戻す。
git log
git reset --hard ハッシュ値
直前のコミットを取り消し、ローカルの変更も戻す
git reset --hard HEAD^
直前のコミットを取り消すけど、ローカルの変更はそのまま残す
git reset --soft HEAD^
リモートの直前コミットを削除する
git reset --hard HEAD^
git push origin +ブランチ名
ブランチ名の前に「+(プラス)」をつけると強制pushする
直前にコミットしたメッセージを変更
ローカルでコミットした直後なら、amendコマンドでメッセージを変更できる。
git commit --amend -m "修正したいテキストを書く"
差分の確認
ステージングにいる状態でまだコミットされていないソースの変更箇所を確認
git diff —cached
git push する前にリモートとの変更点を見る
git diff リモート名/ブランチ名..HEAD
pushの操作
push時に「rejected…non-fast-forward」が発生した場合
他の人が先にpushしていると、non-fast-forwardが発生してpushできないです。
ここでpullすると分岐してしまい、gitログが複雑になります。
rebaseを使うと分岐させることなく、pushできます。
git fetch -p
git rebase remotes/origin/(ブランチ名)
git push origin (ブランチ名)
マージの操作
マージさせたいブランチ
git merge hoge
ブランチの変更を1コミットまとめてマージ
git merge --squash ブランチ名
マージのチェック(コンフリクトを発生を確認)
現在のブランチに指定ブランチをマージしステージングを行うが、コミットはしない。
git merge --no-commit myBranch
マージを取り消し、マージ前の状態にステージングと作業ディレクトリを戻す。
git merge --abort
キャッシュの操作
ファイル全体キャッシュ削除
git add できないときや管理が上手くいかないときは、キャッシュを削除すると動くことがある。
git rm -r --cached .