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 commit --amend) - Git やり直し: 直前のコミットを取り消す (
git reset --soft HEAD~) - Git やり直し: main ブランチに入れてしまったコミットを別のブランチに移す
- Git やり直し: 最近のコミットを歴史から抹消する (
git rebase -i) - Git やり直し: コミット履歴を書き換えてディレクトリ階層を変更する (
git filter-branch) - 変更の一部だけをコミットする (
git add -p)
ログ (git log)
- コミットログ表示の基本
- コミットログの書き方
- コミットログを絞り込んで表示する
- コミットログにファイル名や変更行数を表示する (
git log --name-only, --stat) - コミットログの出力形式をカスタマイズする (
git log --pretty, --date) - コミットログにある文字列が含まれているコミットを検索する (
git log --grep) - 変更内容にある文字列が含まれているコミットを検索する (
git log -G/-S) - 指定したディレクトリ以下の変更に関連するコミットログのみ表示する
- ブランチ間の差分を調べる
- リモートブランチとローカルブランチの差分を調べる
- コミットログを標準出力へ出力する (
git log --no-pager) - 統計情報
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つのコミットとしてスカッシュマージする (
git merge --squash) - マージのためのコミットを revert する(取り消す) (
git revert -m) - マージ作業に失敗したときにやり直す (
git reset) - マージで競合解決が必要なファイルを調べる (
git ls-files -u) - マージベースとなったコミットを見つける(fast-forward の関係になっているか調べる) (
git merge-base) - 別の Git リポジトリの内容を強引にマージする
差分・パッチファイル (git diff / patch)
- git diff でファイルの差分を調べる
- git diff で改行コードの違いを無視する (
git diff -w) - git diff で単語単位で差分を表示する (
git diff --word-diff) - git diff の出力で相対パスを使うようにする (
git diff --relative) - git diff で
package-lock.jsonの差分が表示されるのを防ぐ (:(exclude)) - Git でパッチファイルを作成する (
git diff/apply/format-patch/am)
ファイル操作
- git clean で追跡されていないファイルを削除する (
git clean -df) - ファイルを削除せずに Git によるバージョン管理の対象から外す (
git rm --cached) - ファイルの変更を取り消してコミットやインデックスの内容に戻す (
git checkout,git checkout HEAD) - 特定バージョンのファイルの内容を確認する (
git show,git cat-file -p)
タグ (git tag)
リポジトリ/サーバー/バックアップ
- 共有リポジトリを作成する (
git init --bare,git clone --bare) - 共有リポジトリとやりとりする (
git fetch,git push) - git-daemon でリポジトリを読み取り専用で公開する
- Git リポジトリを移行する (
git clone --mirror,git push --mirror) - リポジトリ内のディレクトリを別リポジトリに切り出す
- ローカルディレクトリをリモートリポジトリとして使用する
- リモートリポジトリに略称を付ける (
git remote add) - ソースコードのアーカイブファイル (ZIP/TAR) を作成する (
git archive)