MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Gitの基礎 - Gitの概要のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Gitの基礎 - Gitの概要
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Gitとは、オープンソースの分散型バージョン管理システムである。(ファイルの変更履歴を管理する)<br> GPLライセンスの下で公開されていて、自己責任の下で、誰もがGitを使用することができる。<br> <br> バージョン管理システムというと、CVSやSubversion等が有名だが、Gitは最近注目のバージョン管理システムである。<br> <br> Gitの産みの親は、Linuxカーネルの産みの親でもあるLinus Torvalds氏である。<br> Linux kernelは、全世界に多数の開発者がいる大きなプロジェクトであるが、そのLinux kernelのソース管理にGitが使用されている。<br> また、X.orgやRuby on Rails、Perl、Google Android等もGitを使用しており、<br> 特にオープンソースのプロジェクトのバージョン管理にGitが使用されるケースが増えている。<br> <br><br> == Gitの特徴 == Gitの特徴は、分散型のバージョン管理システムであるということ、<br> それから何といっても、Linuxカーネルの開発で培われたノウハウが凝縮された高機能なバージョン管理システムであるという点である。<br> <br> 分散型とは、リポジトリが1箇所に集中していないという意味である。<br> Subversion等は1箇所のリポジトリに開発者全員が変更履歴を記録する方式ということから、リポジトリは1箇所に集中している。<br> <br> 一方、分散型では各開発者が自分専用のローカルリポジトリを持ってそこにコミットする。<br> そしてコミットした内容を、push / pullという仕組みを使って皆で共有してソフトウェアの開発を進めていく。<br> リポジトリが1箇所に集中せず、開発者ごとにリポジトリが分散されているから分散型ということである。<br> <br> 分散型のメリットは、リポジトリをWeb上で公開すれば、誰でもそのリポジトリを複製して開発に参加できるという点にある。<br> そこには、CVSやSubversionのようなコミッターとそれ以外といった区別はない。<br> 誰もがリポジトリを複製して開発に参加でき、その変更が優れていれば、皆がその結果をpullしてくれる。<br> <br> OSSプロジェクトで、ここ数年で爆発的にGitが使われるようになったのは、そういう理由からである。<br> <br> なお、分散型のバージョン管理システムには、Gitの他にも、Bazzar、Mercurial、monotone、darcs等がある。<br> Gitはその中でも大変良く使用されているツールである。<br> <br><br> == Gitの基礎用語 == 下表に、Gitを使用する上で必要な用語を示す。<br> <center> {| class="wikitable" | style="background-color:#fefefe;" |- ! style="background-color:#00ffff;" | 用語 ! style="background-color:#00ffff;" | 説明 |- | リポジトリ || データを保存する場所。<br>Gitでは、このリポジトリ単位でデータを管理する。<br>修正履歴も保存されている。 |- | リモートリポジトリ || サーバにあるリポジトリ。<br>サーバに保存され、共有される。 |- | ローカルリポジトリ || ローカルに保存されているリポジトリ。 |- | クローン || リモートリポジトリを複製すること。<br>修正履歴なども複製される。 |- | ブランチ || 一連の修正を、主流から枝のように分岐させて管理するもの。<br>ブランチでの修正内容は他のブランチの影響を受けないため、<br>同じリポジトリで同時に複数の開発を行うことができる。 |- | チェックアウト || 他のブランチへ移動し、作業ディレクトリを任意のコミット状態にすること。 |- | コミット || 修正内容をローカルリポジトリに反映すること。 |- | プッシュ || ローカルリポジトリの修正内容をリモートリポジトリに反映すること。 |- | プル || リモートリポジトリの修正内容をローカルリポジトリに反映すること。 |- | マージ || 異なるブランチの修正内容を反映すること。<br>マージ先とマージ元の両方に変更履歴が残る。 |- | コンフリクト || マージの際に、リモートとローカルで同じファイルの同じ箇所に対して修正がされており、自動でマージできないこと。<br>手動で、両方の修正を合わせた内容に編集する必要がある。 |} </center> <br><br> == Gitのインストール == Gitを使用するためには、ローカル環境でのGitの構築が必要である。<br> <br> まず、Gitをローカル環境で使用できるように、Gitをインストールする。<br> * Windows *: [https://git-for-windows.github.io/ Git for Windows]からGit for Windowsをダウンロードして、インストールする。 * Linux *: ほとんどのLinuxでは、標準でGitがインストールされている。 *: もしインストールされていなかったり、より新しいバージョンのGitを利用する場合は、 *: [[インストール - Git|こちらのページ]]を参照してインストールする。 <br> 次に、Gitコマンドを操作するコマンドライン環境を準備する。<br> * Windows *: Gitコマンド付属のGit Bashを起動後、以下のコマンドを実行して、Gitのバージョンが表示されることを確認する。 *: <code>git --version</code> * Linux *: 以下のコマンドを実行して、Gitのバージョンが表示されることを確認する。 *: <code>git --version</code> <br><br> == Gitの設定 == <code>git config</code>コマンドは、Gitの設定ファイルにある変数の値を設定するものである。<br> <br> Gitの設定ファイルは3種類ある。<br> * システム全体に対する設定 *: /etc/gitconfig * ユーザごとの設定 *: ~/.gitconfig * プロジェクトごとの設定 *: .git/config <br> <code>--global</code>オプションは、~/.gitconfigファイルに設定する。<br> <code>--system</code>オプションは、/etc/gitconfigファイルに設定するが、使用する頻度はほとんどない。<br> 上記のオプションを付加しない場合は、現在の作業ツリーにある.git/configファイルに設定する。<br> <br> ==== ユーザ名 / メールアドレスの設定 ==== Gitを使用し始める場合は、まず、2つの変数user.nameと変数user.emailを~/.gitconfigに設定する。<br> これらの情報は、各コミットに書き込まれる名前とメールアドレスである。 <br> ユーザ名とメールアドレスを登録する。<br> git config --global user.name <ユーザ名> git config --global user.email <メールアドレス> <br> 設定内容を確認する。<br> git config --list または git config --global -l # 出力 user.name=<ユーザ名> user.email=<メールアドレス> ... <br> ==== エディタの設定 ==== この設定は、コミット時において、変更および記録を記述する時に指定したエディタが自動的に立ち上がる。<br> <br> ===== CLIエディタ ===== git config --global core.editor <エディタ名> # Nanoを設定する場合 git config --global core.editor nano <br> ===== GUIエディタ ===== git config --global gui.editor <エディタ名> # Kateを設定する場合 git config --global gui.editor kate <br> ==== カラーの設定 ==== 変数color.uiをautoに指定することにより、画面表示に色が付いて視認性がよくなる。<br> git config --global color.ui auto <br> ==== 初期ブランチ ==== Git 2.28以降では、初期ブランチ名を<u>master</u>という名前に設定するとよい。<br> git config --global init.defaultBranch master <br><br> == SSH接続 == 例えば、以下の状況で運用しているGitのリモートリポジトリに接続する。<br> * リモートリポジトリがあるサーバ *: repository.example.jp (192.168.1.10) * リモートリポジトリのディレクトリ *: /home/ユーザ名/repository/repo.git * ユーザ名 *: hoge * 接続方法 *: SSH * ポート番号 *: 22 <br> この時、以下のコマンドを実行することで、リモートリポジトリにアクセスできる。<br> git clone ssh://hoge@repository.example.jp:22/home/ユーザ名/repository/repo.git <br> ここで、SSHログイン時にパスワード認証ではなく鍵認証している場合、<br> 秘密鍵のファイル名が標準のid_rsaファイルであるならば、上記のコマンドでアクセスできる。<br> <br> しかし、運用上の都合で秘密鍵がid_rsaファイル以外にも複数存在している時がある。<br> そこで、秘密鍵が複数存在している場合は、サーバごとの秘密鍵の名前を示すための設定ファイルを作成する。<br> <br> 以下の内容で、設定ファイルである~/.ssh/configファイルを作成する。<br> このファイルでは、複数のサーバの設定が記載できる。<br> <br> また、~/.ssh/configの設定は、Gitに限らず、全てのSSH接続で参照される。<br> # ~/.ssh/configファイル Host repo.remote HostName repository.example.jp User hoge IdentityFile ~/.ssh/id_rsa.repo.remote Port 22 Host repo.local HostName 192.168.1.100 User huga IdentityFile ~/.ssh/id_rsa.repo.local Port 22 <br> 以下に、設定項目の説明を記載する。<br> * Host *: 任意の名前(エイリアスとして使用する) * HostName *: 接続するサーバのIPアドレスやFQDN * User *: サーバのユーザ名 * IdentityFile *: 秘密鍵ファイルのフルパス * Port *: SSHのポート番号 <br> ~/.ssh/configファイルの作成後は、アクセス権限を変更する。<br> chmod 600 ~/.ssh/config chmod 700 ~/.ssh <br> ~/.ssh/configファイルの作成後は、以下のコマンドで接続できる。<br> git clone ssh://repo.remote/home/ユーザ名/repository/repo.git <br> 単純にサーバへSSH接続するだけなら、以下のようにコマンドを実行する。<br> # repository.example.jpへssh接続 ssh repo.remote # 192.168.1.100へssh接続 ssh repo.local <br><br> __FORCETOC__ [[カテゴリ:Git]]
Gitの基礎 - Gitの概要
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse