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

目次

概要

「ステージング(ステージされたスナップショット)」
などの技術解説の意味が解らんかったので、やっぱ基本は大事。

基本操作

ほとんど全ての操作がローカル

チェックサムde完全性

Gitでは、すべてのオブジェクト(ファイル、ディレクトリ、コミットなど)にSHA-1ハッシュが関連付けられ、これを元にデータが管理される。

コミットはスナップショット

Gitのコミットはスナップショットで、差分ではない

これにより、過去のバージョンの取得やブランチの切り替えが高速になる。

ブランチの統合はマージ&コミット

プル、プッシュ、プルリクエスト

変更履歴の有向非巡回グラフ

用語集

基本概念

リポジトリ(Repository)Gitで管理されるプロジェクトのデータの保管場所。ローカルリポジトリとリモートリポジトリがある。
ワーキングツリー(Working Tree)実際に作業を行うディレクトリ。ここでファイルを編集し、変更を加える。
インデックス(Index, Staging Area)git add で追加された変更が一時的に保存される領域。コミット前の準備段階。
HEAD現在チェックアウトされているブランチの最新のコミットを指すポインタ。

ブランチとコミット関連

ブランチ(Branch)コミットの履歴を分岐させる機能。開発の並行作業を可能にする。
コミット(Commit)インデックスに追加された変更を記録する操作。リポジトリの履歴として保存される。
マージ(Merge)異なるブランチの変更を統合する操作。
リベース(Rebase)ブランチの基点を変更し、履歴を整理する操作。
チェリーピック(Cherry-pick)特定のコミットのみを別のブランチに適用する操作。
タグ(Tag)特定のコミットに名前を付ける機能。リリースバージョン管理などに使用される。

リモートリポジトリ関連

リモート(Remote)ネットワーク上にあるリポジトリ。GitHubGitLabなどを指す。
フェッチ(Fetch)リモートリポジトリの最新の変更を取得するが、ローカルのブランチには適用しない操作。
プル(Pull)fetch + merge を行い、リモートの変更をローカルに適用する操作。
プッシュ(Push)ローカルリポジトリの変更をリモートリポジトリへ送信する操作。
クローン(Clone)リモートリポジトリをローカルに複製する操作。

履歴管理とトラブルシューティング

ログ(Log)git log で過去のコミット履歴を表示するコマンド。
リセット(Reset)コミットの状態を過去の状態に戻す操作。--soft, --mixed, --hard などのオプションがある。
リバート(Revert)既存のコミットを打ち消す新しいコミットを作成する操作。履歴を残しつつ修正できる。
ステータス(Status)git status で作業ツリーの状態を確認するコマンド。
ディフ(Diff)git diff で変更点を比較するコマンド。
スタッシュ(Stash)作業中の変更を一時的に退避する機能。git stash で退避し、git stash pop で戻す。

仕組み

三つの状態

修正済

ファイルに変更を加えたが、databaseにそれがまだコミットされていない状態

ステージ済

次のスナップショットのコミットに加えるために、
現在のバージョンの修正されたファイルに印をつけている状態。

コミット済

local databaseにデータが安全に格納されている状態

ファイルの状態

git status でファイルの状態を確認できる。

gitに認識されているか、いないか?

追跡されているファイルの3つの状態

Gitプロジェクト(ディレクトリ内)

Gitディレクトリ

プロジェクトのためのメタデータとオブジェクトのdatabaseがあるところ。

作業ディレクトリ

プロジェクトの一つのバージョンの単一checkout

ステージング・エリア

参考

@IT

git-scm.com

リファレンス

Gitコマンド


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS