パッチとアーカイブ
パッチとアーカイブ
Section titled “パッチとアーカイブ”変更をパッチファイルとして共有したり、リポジトリをアーカイブする方法について詳しく解説します。
パッチ(Patch)
Section titled “パッチ(Patch)”定義:
patchは、変更をファイルとして保存し、他のリポジトリに適用できる形式です。
基本的な使い方:
# 変更をパッチファイルとして作成git format-patch <コミット範囲>
# 例: 最新のコミットをパッチとして作成git format-patch HEAD~1
# 例: 複数のコミットをパッチとして作成git format-patch HEAD~3
# 例: 2つのコミット間の変更をパッチとして作成git format-patch abc1234..def5678パッチの作成
Section titled “パッチの作成”実践例:
# 1. 変更をコミットgit add .git commit -m "新機能を実装"
# 2. パッチファイルを作成git format-patch HEAD~1# 0001-新機能を実装.patch が作成される
# 3. パッチファイルを確認cat 0001-新機能を実装.patch
# 4. パッチファイルを送信(メールなど)パッチの適用
Section titled “パッチの適用”実践例:
# 1. パッチファイルを取得# 0001-新機能を実装.patch
# 2. パッチを適用git apply 0001-新機能を実装.patch
# 3. または、コミットとして適用git am 0001-新機能を実装.patch
# 4. 複数のパッチを適用git am *.patchアーカイブ(Archive)
Section titled “アーカイブ(Archive)”アーカイブとは
Section titled “アーカイブとは”定義:
archiveは、リポジトリの特定の状態をアーカイブファイルとして作成するコマンドです。
基本的な使い方:
# 現在の状態をアーカイブgit archive --format=tar --output=archive.tar HEAD
# ZIP形式でアーカイブgit archive --format=zip --output=archive.zip HEAD
# 特定のブランチをアーカイブgit archive --format=zip --output=archive.zip main
# 特定のディレクトリのみをアーカイブgit archive --format=zip --output=archive.zip HEAD -- src/リリース用のアーカイブ:
# 1. タグを付けるgit tag -a v1.0.0 -m "リリース v1.0.0"
# 2. タグの状態をアーカイブgit archive --format=zip --output=v1.0.0.zip v1.0.0
# 3. アーカイブを確認unzip -l v1.0.0.zip特定のファイルのみをアーカイブ:
# ソースコードのみをアーカイブgit archive --format=zip --output=source.zip HEAD -- src/ lib/
# ドキュメントのみをアーカイブgit archive --format=zip --output=docs.zip HEAD -- docs/パッチとアーカイブのポイント:
- パッチ: 変更をファイルとして保存、他のリポジトリに適用可能
- パッチの作成: format-patch、複数のコミット、範囲指定
- パッチの適用: apply、am、複数のパッチ
- アーカイブ: リポジトリの特定の状態をアーカイブ、タグ、特定のファイル
適切にパッチとアーカイブを使用することで、変更の共有とリリース管理が容易になります。