業務で使用するGitコマンドのメモ。

ブランチ関連

リモートブランチ変更

git remote set-url origin [変更対象のURL]
git remote set-url codecommit-origin [変更対象のURL]

// push URL のみ変更する場合
git remote set-url --push

ローカルブランチの削除

↓ マージ済みのブランチを削除できる

git branch -d ブランチ名
git branch --delete ブランチ名

↓ マージの有無に関係なくブランチを削除

git branch -d ブランチ名

コミット関連

コミットログの確認

git log
// 一行で出力
git log --oneline

特定のコミット時に状態を戻す

git reset --hard [取り込むコミットID]

直前のコミットを取り消し

git reset --soft HEAD^
git reset --hard HEAD^
  • –soft : ワーキングディレクトリの内容はそのままで、コミットだけを取り消したい場合に使用
  • –hard : コミットを取り消した上で、ワーキングディレクトリの内容も置き換える際に使用
  • HEAD^ : 直前のコミットを意味する
  • HEAD~{n} : n個前のコミットを意味する
  • 特定のコミットを取り消し
git revert [取り込むコミットID]
  • 直前のコミットメッセージを修正
git commit --amend

上記を実行すると、デフォルトのテキストエディタ(例:vinanoemacsなど)が開き、現在のコミットメッセージを編集することができる。編集が完了したら保存して閉じると、最後のコミットのメッセージが新しいものに置き換わる。

viエディタの場合は以下の手順で編集 => 保存する。

  1. デフォルトではコマンドモードになっているので、iキーを押して挿入モードする。これによってテキストの挿入・編集が可能になる。
  2. 挿入モードでの編集が完了したら、Escキーを押してコマンドモードに戻る。

viでの保存と終了

  • 保存して終了: コマンドモードで:wqと入力し、Enter
  • 保存せずに終了: コマンドモードで:q!と入力し、Enter
  • 保存のみ: コマンドモードで:wと入力し、Enter

ローカルリポジトリから、.gitignoreに記載されているがリモートリポジトリに存在するファイルを削除

$ git rm -r --cached node_modules
$ git rm -r --cached .env

--cachedオプションは、ファイルをローカルファイルシステムからは削除せずに、Gitのインデックスからのみ削除する。

リポジトリの履歴をフィルタリングして書き換える

git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch ファイルのパス" \
  --prune-empty --tag-name-filter cat -- --all

このコマンドは、指定されたファイルをリポジトリのすべてのコミットから削除する。

別ブランチにあげている特定コミットのみを取り込む

チーム開発などで別々のブランチで開発を進めている場合に、特定のコミットのみを取り込みたいことがある。その場合はgit margeではなく、git cherry-pickを使用する。mergeの場合は他のコミットも取り込んでしまうため。

git cherry-pick [取り込むコミットID]

複数のコミットをcherry-pickで取り込む場合は、コミットIDを..で連結する

git cherry-pick [コミットID(A)]..[コミットID(B)]

ディレクトリ操作

ディレクトリを削除する。オプションは下記。

  • -r または --recursive: ディレクトリとその内容を再帰的に削除します。
  • -f または --force: エラーメッセージを抑制し、存在するすべてのファイルを強制的に削除します。
rm -r my_directory/

特定のフォルダ(ディレクトリ)を別の位置に移動する

mv source_directory destination_directory

特定のファイルを一つ上のディレクトリに移動する

mv コマンドを使用し、移動先を .. で指定すること

mv your_file.txt ..

ディレクトリの所有者と権限を確認

ls -l

もしくは、以下のコマンドで、ディレクトリの所有者(owner)とグループ(group)、さらにはその他のユーザー(others)に与えられた権限(permissions)を確認できる

ls -ld directory_name

特定のディレクトリとその下の全てのファイル・ディレクトリに対して一括でパーミッションを変更する

chmod コマンドに -R オプション(再帰的変更)を使用する。以下は、2023 ディレクトリとその下にある全てのファイル・ディレクトリに対して読み書き実行権限を付与したい場合の例。

chmod -R 777 2023

Amazon CodeCommitにローカルのGitリポジトリをpushする手順

  1. AWS CLIをインストール
  2. AWS CLIを設定。AWS Access Key ID、Secret Access Key、およびDefault Region Nameを設定
  3. HTTPS Git認証を設定

AWS CLIをインストール

AWS CLIは公式サイトからダウンロード。インストールが完了したら、ターミナルで以下のコマンドを実行し、バージョンを確認。

aws --version

AWS CLIを設定

AWS CLIがインストールされていることを確認したら、以下のコマンドを実行してAWS CLIを設定

aws configure

プロンプトに従ってAWS Access Key ID、Secret Access Key、Default Region Name(通常は ap-northeast-1)、Default output format(通常は json)を入力

カテゴリー: 開発・運用