MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Gitの基礎 - Gitコマンドのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Gitの基礎 - Gitコマンド
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == initコマンド == <code>init</code>コマンドは、新しいGitリポジトリを作成するために使用する。<br> リポジトリとは、「ファイルやディレクトリの状態を管理する場所」のことである。<br> <br> 一連のGitコマンドは、Gitリポジトリが管理しているディレクトリ内で使用することができる。<br> <br> <code>init</code>コマンドを実行すると、現在のディレクトリに.gitディレクトリ(Gitリポジトリ)が作成される。<br> リポジトリが作成されることにより、Gitコマンドでリポジトリを管理できるようになる。<br> <br> * <code>-q</code> / <code>--quiet</code>オプション *: <code>init</code>コマンドの実行時に表示されるメッセージを省略する。 *: ただし、警告とエラーメッセージは表示される。 *: <br> * <code>--bare</code>オプション *: ベアリポジトリと呼ばれる特殊なGitリポジトリを作成する。 *: <code>--bare</code>を使用することで、対象のディレクトリを.gitディレクトリそのものとして扱う。 *: ベアリポジトリには、実際のディレクトリやファイルを持たないが、.gitディレクトリ内にあるファイルのみを持つ。 *: ベアリポジトリはpush先となる集約されるようなリポジトリに対して作成する。 *: <br> *:* ベアリポジトリの特徴 *:*: 作業用ディレクトリを持たない。 *:*: 管理用ディレクトリ(リポジトリ)のみを持つ。 *:*: ベアリポジトリでは、現在のディレクトリが.gitディレクトリそのものになる。 *: <br> * <code>--shared=<パーミッション></code> *: <br> *: 作成しようとしているリポジトリは共有リポジトリとして作成される。 *: デフォルトではリポジトリは作成したユーザーのみpushできる。 *: 複数人で1つのプロジェクトをGitで運用する場合、<code>--shared</code>オプションで権限を追加します。 *: <br> *: 指定できるパーミッション : <code>false</code>、<code>true</code>、<code>umask</code>、<code>group</code>、<code>all</code>、<code>world</code>、<code>everybody</code>、<code>0xxx</code> *:: false / umask : umaskの値を利用する。<code>--shared</code>オプションを使用しない場合も適用される。 *:: true / group : グループに対して書き込み権限を追加する。 *:: all / world / everybody : グループに対して書き込み権限を追加して、その他のユーザに対して読み込み権限を追加する。 *:: 0xxx : 4桁の数値でパーミッションを指定する。 *: <br> * <code>-b <ブランチ名></code> または <code>--initial-branch=<ブランチ名></code> *: 初期化時に自動で作成されるブランチ名を指定する。 *: デフォルトでは、masterブランチが自動的に作成されるが、それ以外のブランチ名にする場合はこのオプションを使用する。 *: デフォルトのブランチ名は環境変数<code>init.defaultBranch</code>で設定されているため、これを変更することにより、デフォルトのブランチ名を設定することもできる。 *: <br> * <code>--object-format=<ハッシュ関数名></code>オプション *: 例. 使用できるハッシュ関数 : sha1(デフォルト)、sha256 *: gitはプロジェクトの状態をオブジェクトで管理している。 *: 数種類のオブジェクトがあるが、オブジェクトは全てzlibで圧縮されハッシュ値が生成されている。 *: <code>--object-format</code>オプションでは、ハッシュ値のハッシュ関数を指定することができる。 *: <br> * <code>--template=<テンプレートディレクトリ名></code>オプション *: テンプレートとなるディレクトリ(<code>TEMPLATE DIRECTORY</code>)を指定する。 *: <code>TEMPLATE DIRECTORY</code>を事前に設定することにより、同じような状態を再現することができる。 *: <br> * <code>--separate-git-dir=<Gitリポジトリにするディレクトリ></code> *: <code>init</code>コマンドの実行時では.gitディレクトリが自動的に作成されるが、<code>--separate-git-dir</code>オプションを指定することにより、.gitディレクトリの代わりに.gitテキストファイルを作成される。 *: .gitテキストファイルには<Gitリポジトリにするディレクトリ>で指定されたディレクトリのパスが記載されている。 *: .gitディレクトリに作成されていた一連のファイルは全てこの指定したディレクトリに置かれる。 *: <br> *: 既に存在するGitリポジトリ内において、<code>git init --separate-git-dir</code>を実行すると、Gitリポジトリは<Gitリポジトリにするディレクトリ>に移動する。 *: <br> *: <Gitリポジトリにするディレクトリ>をGitリポジトリとして扱い、<通常のGitディレクトリ>をワーキングディレクトリとして扱うことができる。 *: ワーキングディレクトリではGitコマンドが使用できるが、.gitディレクトリが存在しないため、ファイル検索をスムーズに行うことができる。 *: <br> *: また、.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> git commit <br> コミットに関するメッセージ (コミットメッセージ) を記述するため、Gitで指定したエディタが起動する。<br> 表示されたファイルの上部に、コミット内容を記載する。<br> # ここにコミット内容を記載する <コミット内容 例: hoge.txtファイルを追加> # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch master # # Initial commit # # Changes to be committed: # new file: hoge.txt # <br> ==== コミットメッセージの記述方法 ==== コミットメッセージは、該当するコミットでの変更を後から知るための情報である。<br> 以前のコミットに戻す場合、コミットメッセージが不明瞭だとチェックアウトして確認しなければならない。<br> <br> コミットメッセージは、慣習的に以下に示すような形式で記述する。<br> * 1行目は、要約を記述する。 * 2行目は、空行を1つ入れる。 * 3行目以降は、詳しい説明を記述する。 <br> # コミットメッセージの例 hoge.txtファイルを作成 このプロジェクトを説明するhoge.txtファイルを作成した。 このファイルは、◯◯をするものである。 <br> もし、コミットメッセージが1行の場合は、<code>git commit -m "<コミットメッセージ>"</code>コマンドを実行する。<br> git commit -m "<コミットメッセージ>" <br> ==== コミットの中止 ==== 編集中のコミットメッセージの全ての行を削除・保存してエディタを終了する場合、Gitはコミットの中止と判断してコミットを取りやめる。<br> ただし、#で始まる行は残っていても構わない。<br> <br> ==== コミットの閲覧 ==== 直近のコミット履歴を見る。<br> git log <br> 各コミットを1行で表示する。<br> git log --oneline <br> ブランチの分岐も表示する。<br> git log --graph --oneline --all --decorate <br> 詳細情報を含めて表示する。<br> # 変更されたファイルと行数を表示 git log --stat # 実際の変更内容 (差分) も表示 git log -p <br> 特定の条件で検索する。<br> # 直近のN件だけ表示 git log -n 5 <br> 特定の日付以降のコミットを見る。<br> git log --since="2024-01-01" <br> 特定の著者のコミットを見る。<br> git log --author="ユーザー名" <br> コミットメッセージで検索する。<br> git log --grep="<検索するコミットメッセージ>" <br> 特定のコミットの詳細を見る。<br> # コミットハッシュを指定 git show <コミットハッシュ> <br> 変更されたファイルだけを見る。<br> git log --name-only <br> コミット履歴が長い場合は、[スペース]キーで次のページに進み、[q]キーで終了できる。<br> <br> より視覚的に確認する場合は、gitkというGUIツールを使用する。<br> gitk --all <br> ==== コミットのハッシュ ==== コミットを特定する場合、そのコミットのハッシュを使用する。<br> これは、コミットの内容をSHA-1ハッシュ関数に掛けて得られる値である。<br> <br> Gitは、このハッシュ値をコミットを識別するIDとして使用する。<br> コミット時に表示される16進数の値は、コミットのハッシュの先頭の7桁である。<br> <br> Gitは、現在のコミット (最新のコミット) を指すポインタを保持しており、このポインタをHEADという。<br> <br> コミットを行った場合は、HEADは自動的に該当するコミットに移動する。<br> <br><br> == ブランチ == ==== 過去のコミットに戻る ==== 例えば、不具合等が発生した時、発生箇所を突き止めるため一時的に過去のコミットに戻りたい場合がある。<br> また、併せて、最新のコミットに戻す場合も記載する。<br> <br> まず、操作するブランチを確認する。<br> git branch # 出力例 * master dev <br> 次に、戻りたいコミット名を確認する。<br> 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 <br> 次に、戻りたいコミット名を指定して<code>git checkout</code>コマンドを実行する。<br> コミット名は、先頭から5文字目以降は省略可能である。<br> git checkout <コミット名> <br> 過去のコミットに戻した状態で、現在のブランチを確認する。<br> <br> 過去のコミットに戻ると、操作しているブランチとは異なるブランチが一時的に作成される。<br> そのため、最新のコミットに戻す場合は、ブランチを変更すればよい。<br> git branch # 出力例 * (HEAD detached コミット名) master dev <br> 最新のコミットに戻す。<br> git checkout <ブランチ名> <br> ==== ブランチの非アクティブ (削除) ==== ブランチを削除する前に、以下に示す事柄を確認することを推奨する。<br> * 削除するブランチの変更が必要ないことを確認する。 * 重要な変更が他のブランチにマージされていることを確認する。 * 現在使用しているブランチでないことを確認する。<br><code>git branch</code>コマンドで確認可能 <br> ===== ローカルブランチの削除 ===== # ブランチ hoge を削除 git branch -d hoge # ブランチ piyo を削除 git branch -d piyo <br> もし、変更がマージされていない場合は、-dオプションでは削除できずに警告が表示される。<br> 強制的に削除する場合は、-Dオプションを使用する。<br> # 強制削除する場合 git branch -D hoge git branch -D piyo <br> ===== リモートブランチの削除 ===== # リモートブランチの削除 git push origin --delete hoge git push origin --delete piyo <br><br> __FORCETOC__ [[カテゴリ:Git]]
Gitの基礎 - Gitコマンド
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse