Gitコマンド
入社当初、当時の課長が私にこう言いました、、、
「GitはCUIで出来るようになった方が将来的にいいよ^^」
ということでよく使うコマンドをまとめました。 私は物覚えがとても良くないのでいつもコマンド一覧を見ながら作業してます。
config
全てのリポジトリに反映する設定 git config --global 設定名 設定内容 リポジトリごとの設定 git config 設定名 設定内容
remote
リモートリポジトリを確認する git remote -v リモートリポジトリを追加する git remote add リポジトリ名(自分で命名する) リモートリポジトリURL
clone
リモートリポジトリをローカルにコピーする git clone リポジトリ名 clone先のパス
branch
リポジトリのブランチを確認する git branch ブランチを作成する git branch ブランチ名 ブランチを切り替える git checkout ブランチ名 ブランチを作成し切り替える git checkout -b ブランチ名 コードを特定のバージョンの状態にする git checkout tags/タグ名 ブランチの削除 git branch -d ブランチ名 mainブランチにマージしていないブランチを削除する場合 git branch -D ブランチ名 branch名の変更 git branch -m ブランチ名 新ブランチ名
status
リポジトリのステータスを確認する git status
add
作業内容をstageに追加する git add ファイル名 カレントディレクトリ配下のファイルとフォルダを全てstageに追加する git add . 削除したファイルも含めてstageに追加する git add -A
commit
stageの内容をコミットする git commit -m コミットメッセージ
log
コミットの履歴を確認する git log 各コミットを1行で表示する git log --oneline 各コミットを線で結ぶ(ブランチの派生がわかりやすい) git log --graph 特定のファイルのコミット情報を表示する git log -- ファイル名 特定のファイルのコミット情報をファイル名の変更を考慮して表示する git log --follow ファイル名
pull
pull = fetch + merge
リモートリポジトリのブランチの情報を自分の作業ブランチに反映する git pull リモートリポジトリ名 ブランチ名 pull = fetch + rebase git pull --rebase リモートリポジトリ名 ブランチ名
push
指定したリモートリポジトリのブランチにローカルのアクティブブランチの情報を送信する git push リモートリポジトリ名 ブランチ名 指定のtagをリモートリポジトリに送信する git push リモートリポジトリ名 タグ名 全てのtag情報をpushする git push リモートリポジトリ名 --tags 指定のtag情報をリモートリポジトリ上から削除する git push リモートリポジトリ名 :タグ名
pull request
リモートリポジトリは自由にマージすることはできないのでpull requestで他のメンバーに確認する
init
スクラッチからgitリポジトリを作成する git init フォルダ名 カレントディレクトリをgitリポジトリにする git init
reset or restore
stageに追加した変更をキャンセルする(リポジトリのファイルで上書きする) git reset HEAD ファイル名 git restore --staged ファイル名
checkout or restore
編集内容を破棄する(stageのファイルで上書きする) git checkout -- ファイル名 git restore ファイル名
mv
ファイル名の変更 git mv 変更前ファイル名 変更後ファイル名
merge
ブランチを現在のブランチにマージする git merge ブランチ名 コンフリクトが発生した際に指定のツールを起動する git mergetool
diff
ブランチの差分を確認する git diff ベースブランチ 差分ブランチ コミット間の差分を確認する git diff コミットID コミットID git diff HEAD^(^の数だけコミットを遡る) HEAD ツールを使用して差分を確認する git difftool ワーキングディレクトとstageの差分を確認する git diff stageとリポジトリの差分を確認する git diff --staged ワーキングディレクトリとリポジトリの差分を確認する git diff HEAD
fetch
リモートリポジトリから情報を取得する git fetch リモートリポジトリ情報 ブランチ名 全てのtag情報をローカルに取得する git fetch --tags --all
rebase
push済みのコミットをrebaseしてはいけない
rebeseを行う git rebase ブランチ名 rebase時にconflictが発生した場合 git mergetool git rebase continue
stash
今の作業を一時的に退避させる git stash untrackファイルも退避させる git stash -u .gitignoreで指定されたファイルも退避する git stash -a メッセージ付きでstashする git stash save "" stashした内容を表示する git stash list stashした内容をワーキングディレクトリに戻す git stash apply stashした内容を削除する git stash drop git stash applyとgit stash dropを同時に行う git stash pop stashしたファイルの情報を表示する git stash show stash@{i} i=数字
tag
最新のコミットにタグを付与する git tag タグ名 最新のコミットにアノテーションタグを付与する git tag -a タグ名 特定のコミットにタグを付与する git tag タグ名 コミットID tagの一覧を表示する git tag --list 指定したtagを削除する git tag --delete タグ名
何年もやってると覚えられるものなんですかね…
初投稿(自己紹介)
おはようございます
まずは自己紹介を…
関西でSEをしております、むると申します
SEと言ってもこの初投稿時点では2年も経っていないのでド新人です
プログラムが書きたいと思いIT企業に就職したのですが、
人手不足で中々プログラムに触らせてもらえず
お客様のところへ訪問する毎日を送っております。
本ブログでは
仕事で学んだ知識や感じたこと、
また個人的に興味があり勉強したことを
独り言のごとくアウトプットします。
長々と書くのもあれなのでこれぐらいにしておきます。
それでは…