GitHub
- Pull Request のコードレビューワーを自動でアサインする
- GitHub でソフトウェア配布用にプロジェクトの Web サイトを作成する (GitHub Pages)
- GitHub Pages で独自の 404 ページを用意する
- GitHub の Organization を構成したときのチームの権限について理解する
- GitHub の新しい Organization パーミッションモデル(2015年10月リリース)について理解する
- GitHub の Markdown でメールアドレスへのリンクを記述する
- (旧)GitHub のプランと GitHub ライクなツールの比較など
- GitHub の REST API を使用する
- GitHub で管理している社内リポジトリをトピックで分類する (topics)
- GitHub のオートリンク機能で外部サイトへ ID ベースでリンクする (autolink)
- GitHub Actions
- GitHub で複数アカウントの SSH キーを使い分ける (
~/.ssh/config
)
Git の基本
- Git の作業ツリーを作成する (
git init
,git clone
) - Git でファイルの変更をステージする(コミットの印をつける)(
git add
,git rm
,git mv
) - Git で変更をローカルリポジトリにコミットする
- コミット対象になっているファイルを確認する (
git status
) - Git コマンドの長いオプション名を省略して入力する小技
Git の設定
- 設定全般
- コミット時に使用するユーザ名とメールアドレスを設定する (
user.name
,user.email
) - コミット、チェックアウト時に改行コードを自動変換する (
core.autocrlf
,core.safecrlf
) - コミット時にコメント記述に使用するエディタを設定する (
core.editor
) - Git コマンドの出力をカラフルにする (
color.ui
) - Git コマンドのエイリアスを作成する (
alias.xxx
) - Git コマンドで使用するプロキシを設定する (
http.proxy
) - git プロトコルではなく強制的に https プロトコルで
git clone
するようにする (url.xxx
) - Git ユーザーをディレクトリごとに自動で切り替える (
.gitconfig
,includeIf
) git diff
やgit status
での日本語の文字化けを防ぐ (core.page
,core.quotepath
)- Windows 用の設定
- プロンプト設定
- .gitignore
コミット/履歴の書き換え
- Git やり直し: 直前のコミットのコメントを修正する
- Git やり直し: 直前のコミットを取り消す
- Git やり直し: main ブランチに入れてしまったコミットを別のブランチに移す
- Git やり直し: 最近のコミットを歴史から抹消する
- Git やり直し: コミット履歴を書き換えてディレクトリ階層を変更する
- 変更の一部だけをコミットする
ログ (git log)
- コミットログ表示の基本
- コミットログの書き方
- コミットログを絞り込んで表示する
- コミットログにファイル名や変更行数を表示する
- コミットログの出力形式をカスタマイズする (git log –pretty, –date)
- コミットログにある文字列が含まれているコミットを検索する (git log –grep)
- 変更内容にある文字列が含まれているコミットを検索する (git log -G/-S)
- 指定したディレクトリ以下の変更に関連するコミットログのみ表示する
- ブランチ間の差分を調べる
- リモートブランチとローカルブランチの差分を調べる
- コミットログを標準出力へ出力する
- 統計情報
grep 検索 (git grep)
ブランチ (git branch)
- ブランチを作成する (
git branch
) - ブランチをチェックアウトする(作業対象のブランチを切り替える)(
git switch/checkout
) - ブランチの作成とチェックアウトを同時に行う (
git switch -c
,git checkout -b
) - ブランチを削除する (
git branch -d/D
) - ブランチ名を変更する (
git branch -m
) - ブランチやタグの作者を調べる (
git for-each-ref
) - 他の人が作成したブランチ上で作業する
- リモートブランチを削除する (
git push origin :xxx
,git fetch --prune
) - 他のブランチの最新ファイルを現在のブランチにコピーする (
git checkout
) - detached HEAD 状態へのチェックアウトとは
マージ (git merge, git cherry-pick)
- ブランチでの変更をマージする(直接マージ、スカッシュマージ、チェリーピック)
- マージ時のコンフリクトを解決する
- 別ブランチへの複数のコミットを1つのコミットとしてマージする (squash merge)
- マージのためのコミットを revert する(取り消す)
- マージ作業に失敗したときにやり直す
- マージで競合解決が必要なファイルを調べる
- マージベースとなったコミットを見つける(fast-forward の関係になっているか調べる)
- 別の Git リポジトリの内容を強引にマージする
差分・パッチファイル (git diff / patch)
- git diff でファイルの差分を調べる
- git diff で改行コードの違いを無視する
- git diff で単語単位で差分を表示する
- git diff の出力で相対パスを使うようにする
- git diff で package-lock.json の差分が表示されるのを防ぐ
- Git でパッチファイルを作成する
ファイル操作
- git clean で追跡されていないファイルを削除する
- ファイルを削除せずに Git によるバージョン管理の対象から外す (git rm –cached)
- コミットからファイルをチェックアウトする(ファイルを元に戻す)
- インデックスからファイルをチェックアウトする(ファイルを元に戻す)
- 特定のバージョンのファイルの内容を確認する (cat-file)
タグ (git tag)
リポジトリ/サーバー/バックアップ
- 共有リポジトリを作成する
- git-daemon による読み取り専用リポジトリの公開
- Git リポジトリを移行する
- リポジトリ内のディレクトリを別リポジトリに切り出す
- ローカルディレクトリをリモートリポジトリとして使用する
- リモートリポジトリに略称を付ける
- 共有リポジトリからの fetch と push
- ソースコードのアーカイブを作成する
hook スクリプト
その他
- Git 用語集
- Git で N 個前のコミットを表現する
- Git で管理するシェルスクリプトに実行権限(パーミッション)を付ける(chmod +x 相当)
- git pull の引数省略の仕組み
- 二要素認証を設定した後に git コマンドが Authentication failed になる場合
- Git サブモジュールで別リポジトリの内容を組み込む (
git submodule
)
GitLab(GitHub クローン)
- GitLab をインストールする
- GitLab 関連サービスを起動/停止する
- GitLab のデータをバックアップ/リストアする
- 起動中の GitLab 関連サービスを調べる
- GitLab からの通知メールを設定する
- GitLab リポジトリの Clone URL として表示されるホスト名を変更する
- GitLab 用 nginx サーバの設定ファイルの場所
- GitLab が使用する Unicorn 用のポート番号を変更する
- GitLab サーバのアクセスログを調べる