「Gitの基礎 - Gitコマンド」の版間の差分
65行目: | 65行目: | ||
*: <br> | *: <br> | ||
*: また、.gitディレクトリを隠すことにより、誤ってファイルを書き換えてしまうことを防ぐこともできる。 | *: また、.gitディレクトリを隠すことにより、誤ってファイルを書き換えてしまうことを防ぐこともできる。 | ||
<br><br> | |||
== ステージング == | |||
<code>git add</code>コマンドは、作業ツリーにあるファイルやディレクトリをステージする。<br> | |||
<br> | |||
==== ファイルのステージング ==== | |||
# 各ファイルを1つずつステージする場合 | |||
git add README.txt | |||
<br> | |||
既にステージされているファイルやディレクトリにおいて、作業ツリーから全てステージする場合は、<code>-u</code>オプションを付加する。<br> | |||
これは、作業ツリーから全てステージするファイル名を指定せずに、現在、Gitの管理下にあるファイルが作業ツリーから全てステージすることができる。<br> | |||
git add -u | |||
# または | |||
git add -u . | |||
<br> | |||
==== ディレクトリのステージング ==== | |||
<code>git add</code>コマンドの引数にディレクトリを指定する場合、そのディレクトリ直下にある全てのファイルとディレクトリをステージに入れる。<br> | |||
<br> | |||
<u>ただし、Gitは空のディレクトリを管理しない。</u><br> | |||
<u>空のディレクトリを管理する場合は、そのディレクトリに空のダミーファイル (.gitkeepという名前にすることが多い)、あるいは、.gitignoreファイルを入れてステージするとよい。</u><br> | |||
<br> | |||
==== 全てのステージング ==== | |||
プロジェクト内の全てのファイルとディレクトリをGitの管理下に置くことができる。<br> | |||
<u>ただし、バージョン管理しないファイルおよびディレクトリ (自動的に生成されるファイルやログファイル等) も管理下に入ることに注意する。</u><br> | |||
git add . | |||
<br><br> | <br><br> | ||
2024年11月8日 (金) 13:01時点における版
概要
initコマンド
init
コマンドは、新しいGitリポジトリを作成するために使用する。
リポジトリとは、「ファイルやディレクトリの状態を管理する場所」のことである。
一連のGitコマンドは、Gitリポジトリが管理しているディレクトリ内で使用することができる。
init
コマンドを実行すると、現在のディレクトリに.gitディレクトリ(Gitリポジトリ)が作成される。
リポジトリが作成されることにより、Gitコマンドでリポジトリを管理できるようになる。
-q
/--quiet
オプションinit
コマンドの実行時に表示されるメッセージを省略する。- ただし、警告とエラーメッセージは表示される。
--bare
オプション- ベアリポジトリと呼ばれる特殊なGitリポジトリを作成する。
--bare
を使用することで、対象のディレクトリを.gitディレクトリそのものとして扱う。- ベアリポジトリには、実際のディレクトリやファイルを持たないが、.gitディレクトリ内にあるファイルのみを持つ。
- ベアリポジトリはpush先となる集約されるようなリポジトリに対して作成する。
- ベアリポジトリの特徴
- 作業用ディレクトリを持たない。
- 管理用ディレクトリ(リポジトリ)のみを持つ。
- ベアリポジトリでは、現在のディレクトリが.gitディレクトリそのものになる。
- ベアリポジトリの特徴
--shared=<パーミッション>
- 作成しようとしているリポジトリは共有リポジトリとして作成される。
- デフォルトではリポジトリは作成したユーザーのみpushできる。
- 複数人で1つのプロジェクトをGitで運用する場合、
--shared
オプションで権限を追加します。 - 指定できるパーミッション :
false
、true
、umask
、group
、all
、world
、everybody
、0xxx
- false / umask : umaskの値を利用する。
--shared
オプションを使用しない場合も適用される。 - true / group : グループに対して書き込み権限を追加する。
- all / world / everybody : グループに対して書き込み権限を追加して、その他のユーザに対して読み込み権限を追加する。
- 0xxx : 4桁の数値でパーミッションを指定する。
- false / umask : umaskの値を利用する。
-b <ブランチ名>
または--initial-branch=<ブランチ名>
- 初期化時に自動で作成されるブランチ名を指定する。
- デフォルトでは、masterブランチが自動的に作成されるが、それ以外のブランチ名にする場合はこのオプションを使用する。
- デフォルトのブランチ名は環境変数
init.defaultBranch
で設定されているため、これを変更することにより、デフォルトのブランチ名を設定することもできる。
--object-format=<ハッシュ関数名>
オプション- 例. 使用できるハッシュ関数 : sha1(デフォルト)、sha256
- gitはプロジェクトの状態をオブジェクトで管理している。
- 数種類のオブジェクトがあるが、オブジェクトは全てzlibで圧縮されハッシュ値が生成されている。
--object-format
オプションでは、ハッシュ値のハッシュ関数を指定することができる。
--template=<テンプレートディレクトリ名>
オプション- テンプレートとなるディレクトリ(
TEMPLATE DIRECTORY
)を指定する。 TEMPLATE DIRECTORY
を事前に設定することにより、同じような状態を再現することができる。
- テンプレートとなるディレクトリ(
--separate-git-dir=<Gitリポジトリにするディレクトリ>
init
コマンドの実行時では.gitディレクトリが自動的に作成されるが、--separate-git-dir
オプションを指定することにより、.gitディレクトリの代わりに.gitテキストファイルを作成される。- .gitテキストファイルには<Gitリポジトリにするディレクトリ>で指定されたディレクトリのパスが記載されている。
- .gitディレクトリに作成されていた一連のファイルは全てこの指定したディレクトリに置かれる。
- 既に存在するGitリポジトリ内において、
git init --separate-git-dir
を実行すると、Gitリポジトリは<Gitリポジトリにするディレクトリ>に移動する。 - <Gitリポジトリにするディレクトリ>をGitリポジトリとして扱い、<通常のGitディレクトリ>をワーキングディレクトリとして扱うことができる。
- ワーキングディレクトリではGitコマンドが使用できるが、.gitディレクトリが存在しないため、ファイル検索をスムーズに行うことができる。
- また、.gitディレクトリを隠すことにより、誤ってファイルを書き換えてしまうことを防ぐこともできる。
ステージング
git add
コマンドは、作業ツリーにあるファイルやディレクトリをステージする。
ファイルのステージング
# 各ファイルを1つずつステージする場合 git add README.txt
既にステージされているファイルやディレクトリにおいて、作業ツリーから全てステージする場合は、-u
オプションを付加する。
これは、作業ツリーから全てステージするファイル名を指定せずに、現在、Gitの管理下にあるファイルが作業ツリーから全てステージすることができる。
git add -u # または git add -u .
ディレクトリのステージング
git add
コマンドの引数にディレクトリを指定する場合、そのディレクトリ直下にある全てのファイルとディレクトリをステージに入れる。
ただし、Gitは空のディレクトリを管理しない。
空のディレクトリを管理する場合は、そのディレクトリに空のダミーファイル (.gitkeepという名前にすることが多い)、あるいは、.gitignoreファイルを入れてステージするとよい。
全てのステージング
プロジェクト内の全てのファイルとディレクトリをGitの管理下に置くことができる。
ただし、バージョン管理しないファイルおよびディレクトリ (自動的に生成されるファイルやログファイル等) も管理下に入ることに注意する。
git add .
過去のコミットに戻る
例えば、不具合等が発生した時、発生箇所を突き止めるため一時的に過去のコミットに戻りたい場合がある。
また、併せて、最新のコミットに戻す場合も記載する。
まず、操作するブランチを確認する。
git branch # 出力例 * master dev
次に、戻りたいコミット名を確認する。
git log # 出力例 commit 13gsd8g9skegjaosdjgnaewiura7g (HEAD) Author: name <name@google.com> Date: Tue Jul 13 13:00:00 2021 + 0900 commit ckawijsgs863462wijngoasgeni1a Author: name <name@google.com> Date: Tue Jul 13 10:00:00 2021 + 0900
次に、戻りたいコミット名を指定してgit checkout
コマンドを実行する。
コミット名は、先頭から5文字目以降は省略可能である。
git checkout <コミット名>
過去のコミットに戻した状態で、現在のブランチを確認する。
過去のコミットに戻ると、操作しているブランチとは異なるブランチが一時的に作成される。
そのため、最新のコミットに戻す場合は、ブランチを変更すればよい。
git branch # 出力例 * (HEAD detached コミット名) master dev
最新のコミットに戻す。
git checkout <ブランチ名>