gitのメモ
2020-08-25
こんにちは、0371です。
今回は、git
のコマンドをまとめて、いつでも見返せるようにしたいと思います。
主要なコマンドを羅列してみましたので、Ctrl + F
で記事内検索をして使ってください。
場面ごとのコマンドセット
git
のインストールmacOS
編
// Homebrewのインストール
// インストール中に Press RETURN to continue or any other key to abort と表示されたらEnterを押してください。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
// gitのインストール
brew update
brew install git
// gitがインストールされたかの確認
git --version
// gitのバージョンがインストールしたものと一致しない場合
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshenv
source ~/.zshenv
// gitのアップグレード
brew upgrade git
git
のインストールwindows
編
下記のURLからインストーラーをダウンロードして起動してください。
Git for Windows
"https://gitforwindows.org/"
基本的には設定はデフォルトでいいのですが、Configuring the line ending conversion
の選択肢では、三番目を選択してください。
PCで初めてgitを使用し、pushする時
git init
git add .
git commit -m "[init] first-commit"
ls -al ~/.ssh
// ssh鍵の確認 id_rsa.pub id_rsa があればOK
// ssh鍵がなければ以下の作業を行う
ssh-keygen -t rsa -C "githubやbitbucket等で作成したメールアドレス"
// 入力する部分は全て空欄でEnter
// passphrase はお好みで
pbcopy < ~/.ssh/id_rsa.pub
// githubやbitbucket等のアカウントのsettingsで、ssh公開鍵を設定してください
// githubやbitbucket等でリモートリポジトリを作成
git remote add origin 作成したリモートリポジトリのURL
git push -u origin master
// origin はURLのショートカットのような役目をする。
// git push -u origin master は、次回以降からは git push でリモートリポジトリに変更を送信することができるようになる
プロジェクトでの作業を保存
git add .
git commit -m "コミットメッセージ"
git push
// git add .
// 変更されたファイルをステージングする
// git commit -m "コミットメッセージ"
// エディターを開かずに、一行でコミットメッセージを入力できる
// git commit -v
// コミットの変更箇所の確認ができる
// git push
// リモートリポジトリに変更箇所をスナップショットで記録する。
他人のコードをクローンして、ブランチを切ってプルリクを送る
// 事前に代表のリモートリポジトリでチームを作り、アクセス権限を許可してください。
git clone リモートリポジトリのURL
git checkout -b ブランチ名
// ファイル変更をする
git add .
git commit -m "コミットメッセージ"
git push origin ブランチ名
// プッシュ後にターミナル上で表示されるURLにアクセスし、プルリクを作成する
// コードレビューを経て、マージされる
// master ブランチに移動
git checkout master
// リモート側の新しくなったmasterブランチをpullする
git pull origin master
// マージ後はブランチが不要になるので、削除する。
git branch -d ブランチ名
// 二回目以降
git checkout -b ブランチ名
// ファイル変更をする
git add .
git commit -m "コミットメッセージ"
git push origin ブランチ名
// プッシュ後にターミナル上で表示されるURLにアクセスし、プルリクを作成する
git pull origin master
git branch -d ブランチ名
コマンド集
ユーザーネームとメールアドレス、エディターの登録
この情報は、.gitconfig
に保存されます。
git config --global user.name "登録したユーザーネーム"
git config --global user.email 登録したメールアドレス
git config --global core.editor "エディター --wait"
// エディターの設定は任意
ローカルリポジトリを作成
cd プロジェクトディレクトリ
git init
// git init
// ローカルリポジトリの作成。.gitディレクトリが作成される。
リモートリポジトリから、プロジェクトをコピーする
git clone プロジェクトのURL
// git clone プロジェクトのURL
// リモートリポジトリから、URLのプロジェクトをコピー
ブランチを新規作成する
git branch ブランチ名
// git branch feature
// ブランチを作成するだけでは、ブランチの切り替えは行われない
ブランチを切り替える
git checkout 既存ブランチ名
// git checkout feature
ブランチを新規作成して切り替える
git checkout -b 新ブランチ名
// git checkout -b feature
全てのブランチを表示する
git branch -a
現在位置のブランチの名前を変更する
git branch -m ブランチ名
// git branch -m feature
ブランチを削除する
git branch -d ブランチ名
// git branch -d feature
// 強制削除 (マージされてない変更がある場合は削除されない)
// git branch -D ブランチ名
変更差分を確認
// git addする前
git diff
git diff ファイル名
// git add した後
git diff --staged
変更履歴の確認
git log
// 一行で表示
// git log --oneline
// ファイル単体の変更差分
// git log -p ファイル名
// コミット数の制限をして表示
// git log -n コミット数
ファイルへの変更を取り消す
git checkout -- ファイル名
git checkout -- ディレクトリ名
// 全ての変更を取り消す
git checkout -- .
addを取り消す
git reset HEAD ファイル名
git reset HEAD ディレクトリ名
// 全ての変更を取り消す
git reset HEAD .
直前のコミットをやり直す
// pushした後のコミットは絶対に--amendで修正しないでください!
git commit --amend
コミットにタグをつける
git tag -a タグ名 -m "メッセージ"
コミットにタグをつける(簡易版)
git tag タグ名
過去のコミットにタグをつける
git tag タグ名 過去のコミット名
タグをリモートリポジトリに送信する
git push リモート名 タグ名
// git push origin new_tag
タグをリモートリポジトリに一斉送信する
git push origin --tags
タグの一覧を表示する
git tag
// 検索パターンを指定する
// git tag -l 検索ワード
ファイルの削除
git rm ファイル名
git rm -r ディレクトリ名
// ファイルは残して、gitの記録からは削除する
git rm --cached ファイル名
記録の送信
git push origin master
// origin はURLのショートカットのような役目をする。
// 例: git remote add origin リモートリポジトリのURL
最新の状態を取得する
git pull
リモートリポジトリを新規追加する
git remote add リモート名 リモートURL
リモートを表示する
git remote
// URLの表示
git remote -v
リモートリポジトリから情報を取得する
git fetch リモート名
// git fetch origin
変更履歴を統合する
git merge ブランチ名
git merge リモート名/ブランチ名
// git merge origin/master
リモートリポジトリから情報を取得する(プル)
git pull リモート名 ブランチ名
// git pull origin master
// pullは fetchと mergeを一度に行っている
// 基本的には pull よりも fetch を使用する
リモートリポジトリの詳細情報を表示する
git remote show リモート名
// git remote show origin
リモートを変更する
git remote rename 旧リモート名 新リモート名
// git remote rename old new
リモートを削除する
git remote rm 旧リモート名 新リモート名
// git remote rm old new
コマンドにエイリアスをつける
git config --global alias.短縮コマンド名 正規コマンド名
// 例: git config --global alias.br branch
続きはまた今度
用語集
コミットの粒度
コミットする際の修正量のこと
目安としては、1機能ができたらなどが望ましい
例: headerができたからコミット
footerができたからコミット
navbarができたからコミット
ブランチ
作業を並行して行うために、ブランチを使って分岐開発していく
ブランチはコミットを指しているポインタ
HEAD
現在作業中のブランチへのポインタを指す
コンフリクト(衝突)
コンフリクトが発生すると、対象のファイルにコードが自動的に追加される
<<<<<<< HEAD
自分の編集した部分
======
他の人が編集した部分
>>>>>>> feature
どちらかの編集した部分を残す
git add 対象のファイル
git commit -m "[fix] confrict"
コンフリクトを防ぐには
・複数人で同じファイルを変更しない
・pullや mergeする前に、変更中の状態を無くしておく(commitやstashをしておく)
・pullするときは、pullするブランチに移動してからpullする
プルリクエスト
自分の変更したコードをリポジトリに取り込んでもらえるように依頼する機能
ブランチをpushした後に発行できる
今日の一言
ひよこをなでなでしたい。