.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Gitコマンドの覚書

用語

repository

  • ファイルやディレクトリの変更履歴を記録して管理する場所。
  • 管理対象のファイルやディレクトリはrepositoryの下に置く。

http://www.backlog.jp/git-guide/intro/intro1_2.html

local / remote

  • remote repository
    • サーバに配置して複数人で共有するためのrepository。
  • local repository
    • ユーザ一人が利用する、自分の手元のマシン上に配置するrepository。
    • local repositoryの内容はremote repositoryを経由して公開・取得する。

http://www.backlog.jp/git-guide/intro/intro1_3.html

bare / non-bare

  • non-bare repository
    ワーキングディレクトリを持つ。
  • bare repository
    ワーキングディレクトリを持たない。更新情報だけを持っている。

http://www.nekotricolor.com/entry/theory-of-bare-and-non-bare-repository-manage-wordpress-themes-with-git

branch

http://www.backlog.jp/git-guide/stepup/stepup1_1.html

branch名

  • (remote)/(branch)
    remoteのrepositoryのbranch
  • (origin)/(branch)
    cloneしたremoteのrepositoryのbranch

HEAD

現在使用しているbranchの先頭を表す名前

stash

ファイルの変更内容を一時的に記録しておく領域。

commit

ファイルやディレクトリの追加・変更を、Repositoryに記録する

編集/ステージ/コミットプロセス

branch

branch

branchする

  • command
    • 現在のbranchから<new-branch>をbranchする
       git branch <new-branch>

checkout

branchをcheckoutする(切り替える)。

  • command
    • 既存branch <existing-branch> に切り替える。
      git checkout <existing-branch>
    • 新規branch <new-branch> を作成して即時checkout
      git checkout -b <new-branch>
    • 既存branch <existing-branch>から新規branch <new-branch> を作成して即時checkout
      git checkout -b <new-branch> <existing-branch>

merge

branchをmergeする。

  • command
    • 指定したbranchを現在のbranchにmergeする
      git merge <branch>
    • 「早送り」可能であっても、常にmerge commitを作成してmerge
      git merge --no-ff <branch>

削除

branchを削除する。

  • mergeされたbranchを削除する
    git branch -d <experimental>
  • mergeされたかどうかにかまわず削除する
    git branch -D <experimental>

repository

clone

git clone は既存の git repositoryのclone (コピー) を作成する

  • Git clone | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/git-basics#!clone
    • 既存の Git repositoryのコピーを作成する
    • コピー元repositoryをポイントする origin という名称のremote接続を自動で作成。
    • svn checkout と異なり、作業コピーがそれ自身で
      • 完全な git repositoryを構成する。
      • 履歴を持ってファイルを管理する。
  • command
    • local or remoteのrepositoryをcloneする。
      git clone <repo> 
    • クローン先のdirectoryを指定してcloneする。
      git clone <repo> <directory>

repository間

git remote

git fetch

remote repositoryからfetchする。

  • Git fetch | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/remote-repositories#!fetch
    • remote repositoryからlocal repositoryにbranchをインポートする。
    • local branchとしてではなく、remote branchとして保存される。
    • pullと異なりlocal repositoryにmergeする前に変更内容を確認できる。
  • commit
    • remoteのすべてのbranchをfetchする。
      git fetch <remote>
    • remoteの特定のbranchをfetchする。
      git fetch <remote> <branch>

git pull

remote repositoryからpull(fetch & merge)する。

  • command
    • 現在のbranchにremote branchをfetchして即時merge
      git pull <remote>
    • remote branchを現在のbranchにmergeする際に git rebase commandを使用
      git pull --rebase <remote>

git push

remote repositoryへpushする。

  • Git push | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/remote-repositories#!push
    • local repositoryからremote repositoryにbranchをエクスポートする。
      • localな変更の中央repositoryへの公開
      • remote repository内で git merge master commandを実行する場合と同等
      • push先は --bare フラグを指定して作成したrepositoryに限定するべき。
  • command
    • 指定したbranchを <remote> にpushする
      git push <remote> <branch>
    • すべてのlocal branchを指定したremote repositoryにpush
      git push <remote> --all
    • すべてのlocal tagをremote repositoryに送る
      git push <remote> --tags

ステージングの操作

git add

ステージング・エリアにaddする。

  • Git add | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/git-basics#!add
    • 作業ディレクトリ内の変更をステージングエリアに追加する
    • 個々のファイルの変更内容を次回commitの対象とすることを Git に指示する。
    • git commit を実行するまでは変更がは実際に記録されない。
  • command
    • <file> に加えられたすべての変更をステージして次回のコミットの対象とする。
      git add <file>
    • <directory> 内のすべての変更をステージして次回のコミットの対象とする。
      git add <directory>
    • インタラクティブなステージングセッションを開始する。
      git add -p

git clean

ステージング・エリアからcleanする。

  • Git clean | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/undoing-changes#!clean
    • 作業ディレクトリから追跡対象外のファイルを削除する
    • 通常の rm コマンド同様 git clean コマンドも元に戻すことはできない。
    • git reset --hardコマンドと併用される。
      reset コマンドが作用するのは追跡対象となっているファイルのみであるため、
      追跡対象外のファイルをクリーンアップする。
  • command
    • git clean の「予行演習」を行うコマンドで削除されるファイルを表示する。
      git clean -n
    • 追跡対象外のファイルをカレントディレクトリから削除する。
      ただし、.gitignore. で指定したファイルは削除しない。
      git clean -f
    • 追跡対象外のファイルを指定したパスから削除する。
      git clean -f <path>
    • 追跡対象外のファイルとディレクトリをカレントディレクトリから削除する。
      git clean -df
    • 追跡対象外ファイルと通常無視されるファイルをカレントディレクトリから削除する。
      git clean -xf

git reset

commitのreset

  • command
    • 作業ディレクトリに変更も加えずに、指定したファイルをステージングエリアから削除する
      git reset <file>
    • 作業ディレクトリに何の変更も加えることなくステージエリアをresetして直前のcommit時の状態と一致させる
      git reset
    • ステージエリアと作業ディレクトリをresetして直前のcommit時の状態と一致させる
      git reset --hard

commitの操作

<commit> = commit の"SHA-1 id"

git commit

変更のcommit

  • Git commit | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/git-basics#!commit
    • ステージされたスナップショットを取り込んでlocal repositoryにcommitする。
    • スナップショットは常にlocal repositoryにcommitされ、他のrepositoryには影響を与えない。
  • command
    • ステージされたスナップショットをcommit。
      git commit
    • commit メッセージ付きでcommit。
      git commit -m "<message>"

git revert

commitのrevert

  • Git revert | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/undoing-changes#!revert
    • commitされたスナップショットを元に戻す。
    • commitがなかったものとするのではなくそのcommitによって加えられた変更を
      元に戻す方法を見出してその結果を新しいcommitとして追加する。
    • 履歴を保全し、履歴の完全性とコラボレーションの信頼性を維持・確保する。
  • command
    • 特定のcommitのrevert
      git revert <commit>

git reset

commitのreset

  • Git reset | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/undoing-changes#!reset
    • commit済みのスナップショットを削除する目的でも使用される。
    • git revert コマンドは変更を元に戻す「安全な」方法
    • コレに対し、git reset コマンドは変更を元に戻す「危険な」方法。
    • 復元方法が無いため、ローカルな変更を元に戻す場合に限るべき。
  • command
  • 現在のbranchの先端を <commit> の位置に戻した上でステージングエリアをその状態と一致するように元に戻すが、作業ディレクトリのみはそのままにしておく。
    これにより、変更規模が小さく整理されたスナップショットを作成してlocal repositoryへ再commitできる。
    git reset <commit>
  • 現在のbranchの先端を <commit> の位置に戻した上でステージングエリアおよび作業ディレクトリをその状態と一致するように元に戻す。
    commit前の変更に加えて <commit> の後に行われたすべてのcommitも全くなかったものとなる。
    git reset --hard <commit>

確認

branch

git branch

branchの確認

  • command
    • local branchの確認
      git branch
    • remote追跡branchを表示
      git branch -r
    • local branchとremote追跡branchの両方のbranchを表示
      git branch -a
    • 名称の変更
      git branch -m <branch>

commit

git log

logの確認

  • Git log | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/git-basics#!log
    • commit済みのスナップショットを表示するcommand
    • commit済みの履歴 (commit履歴) のみが対象
      • commit済み変更履歴の一覧表示
      • それに対するフィルター処理
      • 特定の変更内容の検索
  • command
    • commit履歴全体をデフォルトの形式で表示
      git log
    • 表示するcommit数を <limit> に制限する。
      git log -n <limit> 
    • commit履歴を概観する(各々のcommitの内容を1行に圧縮して表示)
      git log --oneline
    • 改変されたファイルおよびその中での追加行数と削除行数を増減数で表示
      git log --stat
    • 各々のcommitに対応するパッチ(commitの完全な差分情報)を表示します。
      git log -p

ステージング

git status

statusの確認

  • Git status | アトラシアン Git チュートリアル
    https://www.atlassian.com/ja/git/tutorial/git-basics#!status
    • 作業ディレクトリとステージングエリア(ステージされたスナップショット)の状態を確認
      • ステージされた変更内容、
      • ステージされていない変更内容
      • Git による追跡の対象外となっているファイル
  • command
    • ステージされたファイル、されていないファイル、追跡対象外のファイルを一覧表示。
      git status

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-06-04 (木) 08:59:28 (66d)