📡
gitコマンドまとめ
普段はvscodeを使っているので、ボタンクリックでgit操作しています。
これはこれで便利なのですが
コマンドを使う機会もあるので個人的によく使うものをまとめました。
資産をローカルにおとす
git clone https://..../example.git
すべてのブランチ資産をおとす
git fetch
特定のブランチ資産をおとす
git fetch origin ブランチ名
リモートの資産と同期する
git pull
リモートに資産を反映する
# すべての変更をローカルリポジトリに反映
git add .
# コメントをつけてコミット
git commit -m "コメント"
# リモートに反映
git push
タグをつける
半角スペースをコメントに入れたい場合はダブルクォーテーションで囲む
git tag タグ名 -m "コメント"
git push origin タグ名
改行コードの変換をLFのままにする
linux環境下だとCRLFは読み取らないのでLFでpull・pushされるように変更する
ほかプロジェクトと競合しないように各リポジトリごとに設定しておく
git config --local core.autocrlf input
ローカル上での変更をもとにもどす/ブランチ(タグ)の切り替え
コミットせずに変更を破棄する
# すべての変更を破棄する
git checkout .
# 特定のファイルの変更を破棄
git checkout ファイル名
# ブランチを切り替える
git checkout ブランチ名(タグ名)
コミットまえの編集状態を表示
git status
設定値の表示
.gitフォルダがある場合はローカルの設定値も表示される
git config --list
特定リポジトリのみに適用
gitアカウントを複数もっているとなにかと面倒(個人アカウントが仕事でばれたくないとか...)なので
基本リポジトリごとに設定している
git config --local user.name ユーザー名
git config --local user.email メールアドレス
グローバル設定から除外
git config --global --unset user.name
他ブランチのコミットを取り込む
取り込みたいブランチにチェックアウトした状態で実行
git cherry-pick <ほかブランチのコミット番号>
コミット番号を知るには
- ログをみる
git log
終了はq
2. github.comのコミット詳細ページのURL
github.com/<ユーザー名>/<リポジトリ名>/commit/<コミット番号>
他ブランチへのマージコミットを取り込む
git cherry-pick -m 1 <コミット番号>
例)A, B, C の3ブランチがあり、AからBへマージした内容をCにも反映させたいとき
Cブランチにチェックアウトしたのち、上記コマンドを実行
コミット取り消し
# マージしたコミットを取り消したい
git show コミット番号
# > commit <コミット番号>
# > Merge: <マージ元の親> <マージ先の親>
# > Author: <コミット者>
# > Date: <コミット日時>
# > コミットメッセージ
# マージコミットを取り消し
# 1を指定するとマージ元の変更にもどす
git revert -m 1 <コミット番号>
# 2を指定するとマージ先の変更に戻す
git revert -m 2 <コミット番号>
現在のブランチ名表示
git branch --show-current
ブランチ切り分け時のコミット番号を取得
git merge-base <切り分けたブランチ名> <作成したブランチ名>
# mainブランチから作成したtestブランチはどのコミットで作成したブランチか
# testブランチの初回コミット番号がわかる
# git merge-base main test
別ブランチのgit資産をまるごと取得する
git worktree add <ファイルパス> <対象ブランチ名>
# ファイルパスは新規作成されるため、事前に用意不要
# 作業ブランチのコミットを考えずに、別ブランチを用意できる
# ブランチのチェックアウトが不要なので並列開発が可能
# 例 develop, mainブランチ専用を用意
git worktree add ./prj-develop develop
# 不要になったら削除
(リモートは削除されない)
git worktree remove ./prj-develop
Discussion