Git チュートリアル
Gitを使い始める
サーチ…
備考
Gitは無料の分散バージョン管理システムであり、プログラマは現在の状態で「スナップショット」(コミット)を介してコードの変更を追跡することができます。コミットを利用することで、プログラマは新しい機能を共同でテスト、デバッグ、作成することができます。すべてのコミットは、コンピュータ、プライベートサーバ、オープンソースのウェブサイト(Githubなど)でホストできる "Gitリポジトリ"として知られています。
Gitでは、コードの新しい「ブランチ(branch)」を作成することもできます。これにより、異なるバージョンのコードが互いに並んで生きることができます。これにより、1つのブランチに最新の安定バージョンが含まれ、別のブランチに開発中の新機能が含まれ、さらに別のブランチに異なる機能セットが含まれるシナリオが可能になります。 Gitはこれらのブランチを作成し、その後それらをまとめて、ほとんど無痛にするプロセスを作ります。
Gitはあなたのコードに3つの異なる "領域"を持っています:
- ワーキングディレクトリ :すべての作業(ファイルの作成、編集、削除、および整理)を行う領域です。
- ステージング領域 :作業ディレクトリに加えた変更を一覧表示する領域
- リポジトリ :Gitはプロジェクトの異なるバージョンとして行った変更を永続的に保存します
GitはもともとはLinuxカーネルソースを管理するために作られました。それらをより簡単にすることで、小さなコミット、プロジェクトのフォーク、フォーク間のマージ、短命のブランチをたくさん持たせることができます。
CVSやSubversionに慣れている人にとっての最大の変化は、すべてのチェックアウトにソースツリーだけでなく、プロジェクトの全履歴が含まれていることです。リビジョンの比較、古いリビジョンのチェック、ローカル履歴へのコミット、ブランチの作成、別のブランチのチェック、ブランチやパッチファイルのマージなどの一般的な操作は、すべて中央サーバーと通信することなくローカルで実行できます。したがって、待ち時間と信頼性の最大の原因は取り除かれます。最新の変更を取得し、ローカルの変更を他の開発者に公開するには、「上流」リポジトリとの通信が必要です。これは以前は技術的な制約(リポジトリを所有している者は誰でも)を組織の選択肢に変えました(あなたの「上流」はあなたが誰と同期するかを決めるものです)。
バージョン
バージョン | 発売日 |
---|---|
2.13 | 2017-05-10 |
2.12 | 2017-02-24 |
2.11.1 | 2017-02-02 |
2.11 | 2016-11-29 |
2.10.2 | 2016-10-28 |
2.10 | 2016-09-02 |
2.9 | 2016年6月13日 |
2.8 | 2016-03-28 |
2.7 | 2015-10-04 |
2.6 | 2015-09-28 |
2.5 | 2015-07-27 |
2.4 | 2015-04-30 |
2.3 | 2015-02-05 |
2.2 | 2014-11-26 |
2.1 | 2014-08-16 |
2.0 | 2014-05-28 |
1.9 | 2014-02-14 |
1.8.3 | 2013-05-24 |
1.8 | 2012-10-21 |
1.7.10 | 2012-04-06 |
1.7 | 2010-02-13 |
1.6.5 | 2009-10-10 |
1.6.3 | 2009-05-07 |
1.6 | 2008-08-17 |
1.5.3 | 2007-09-02 |
1.5 | 2007-02-14 |
1.4 | 2006年06月10日 |
1.3 | 2006-04-18 |
1.2 | 2006-02-12 |
1.1 | 2006-01-08 |
1.0 | 2005年12月21日 |
0.99 | 2005-07-11 |
最初のリポジトリを作成し、ファイルを追加してコミットする
コマンドラインでまずGitがインストールされていることを確認します:
すべてのオペレーティングシステムで:
git --version
UNIXのようなオペレーティングシステムの場合:
which git
何も返されないか、コマンドが認識されない場合は、インストーラをダウンロードして実行することによってシステムにGitをインストールする必要があります。非常に明確で簡単なインストール手順については、 Gitのホームページを参照してください。
Gitをインストールしたら、ユーザ名と電子メールアドレスを設定します 。コミットする前にこれを行います。
Gitがインストールされたら、バージョン管理下に置くディレクトリに移動し、空のGitリポジトリを作成します:
git init
これは、Gitが動作するために必要な配管を含む隠しフォルダ.git
作成します。
次に、Gitがあなたの新しいリポジトリに追加するファイルを確認します。このステップは特別な配慮が必要です。
git status
結果のファイル一覧を確認します。 Gitにどのファイルをバージョン管理するかを伝えることができます(パスワードなどの機密情報を含むファイルやレポを混乱させるファイルの追加を避ける):
git add <file/directory name #1> <file/directory name #2> < ... >
リスト内のすべてのファイルをリポジトリにアクセスできるすべての人と共有する必要がある場合は、現在のディレクトリとそのサブディレクトリのすべてを1つのコマンドで追加します。
git add .
これは意志「のステージを」すべてのファイルがあなたの最初のコミットにコミットするためにそれらを準備し、バージョン管理に追加します。
バージョン管理の対象にならないファイルの場合は、 add
コマンドを実行する前に.gitignore
という名前のファイルを作成して作成します 。
コミットメッセージとともに、追加されたすべてのファイルをコミットします。
git commit -m "Initial commit"
これにより、指定されたメッセージで新しいコミットが作成されます。コミットは、プロジェクト全体の保存またはスナップショットのようなものです。これでリモートリポジトリにプッシュまたはアップロードすることができ、必要に応じて後でそれに戻ることができます。
-m
パラメータを省略すると、デフォルトのエディタが開き、そこでコミットメッセージを編集して保存することができます。
リモートを追加する
新しいリモートを追加するには、ターミナル、リポジトリが格納されているディレクトリのgit remote add
コマンドを使用します。
git remote add
コマンドは2つの引数をとります:
- リモート名(例:
origin
- リモートURL(例
https://<your-git-service-address>/user/repo.git
git remote add origin https://<your-git-service-address>/owner/repository.git
注:リモートを追加する前に、gitサービスで必要なリポジトリを作成する必要があります。リモートを追加した後に、コミットをプッシュ/プルできるようになります。
リポジトリのクローン作成
git clone
コマンドは、既存のGitリポジトリをサーバからローカルマシンにコピーするために使用します。
たとえば、GitHubプロジェクトをクローンするには:
cd <path where you'd like the clone to create a directory>
git clone https://github.com/username/projectname.git
BitBucketプロジェクトを複製するには:
cd <path where you'd like the clone to create a directory>
git clone https://[email protected]/username/projectname.git
これにより、ローカルマシン上にprojectname
というディレクトリが作成され、リモートGitリポジトリ内のすべてのファイルが格納されます。これには、プロジェクトのソースファイルと、プロジェクトの履歴と構成全体を含む.git
サブディレクトリが含まれます。
MyFolder
など、別のディレクトリ名を指定するには:
git clone https://github.com/username/projectname.git MyFolder
または、現在のディレクトリで複製する:
git clone https://github.com/username/projectname.git .
注意:
指定されたディレクトリに複製する場合、ディレクトリは空でも存在しなくてもかまいません。
次のコマンドの
ssh
バージョンを使用することもできssh
。git clone [email protected]:username/projectname.git
https
バージョンとssh
バージョンは同等です。しかし、GitHubなどのホスティングサービスの中には、 ssh
ではなくhttps
を使用することをお勧めします。
アップストリームリモートを設定する
フォーク(例:Github上のオープンソースプロジェクト)をクローンしている場合は、アップストリームリポジトリへのプッシュアクセスがない可能性がありますので、両方のフォークが必要ですが、アップストリームリポジトリをフェッチできる必要があります。
最初にリモート名を確認してください:
$ git remote -v
origin https://github.com/myusername/repo.git (fetch)
origin https://github.com/myusername/repo.git (push)
upstream # this line may or may not be here
upstream
が既にある場合(それはいくつかのバージョンがあります)、URLを設定する必要があります(現在は空です):
$ git remote set-url upstream https://github.com/projectusername/repo.git
アップストリームが存在しない場合、または友人/同僚のフォークを追加したい場合(現在は存在しません):
$ git remote add upstream https://github.com/projectusername/repo.git
$ git remote add dave https://github.com/dave/repo.git
コードの共有
あなたのコードを共有するには、ローカルリポジトリをコピーするリポジトリをリモートサーバ上に作成します。
リモートサーバー上のスペースの使用を最小限に抑えるため、裸のリポジトリを作成します.1つは.git
オブジェクトのみを持ち、ファイルシステムに作業コピーを作成しません。ボーナスとして、 このリモートをアップストリームサーバーとして設定して、他のプログラマーと簡単にアップデートを共有します。
リモートサーバーで:
git init --bare /path/to/repo.git
ローカルマシン上:
git remote add origin ssh://username@server:/path/to/repo.git
( ssh:
はリモートリポジトリにアクセスする方法の1つに過ぎないことに注意してください)。
次に、ローカルリポジトリをリモートにコピーします。
git push --set-upstream origin master
--set-upstream
(または-u
)を追加すると、引数のないGitコマンドで使用される上流参照(トラッキング)参照が作成されます(例: git pull
。
ユーザー名と電子メールの設定
You need to set who you are *before* creating any commit. That will allow commits to have the right author name and email associated to them.
リモートリポジトリにプッシュする際に認証とは何の関係もありません (例えば、GitHub、BitBucket、GitLabアカウントを使用してリモートリポジトリにプッシュする場合)
すべてのリポジトリのアイデンティティを宣言するには、 git config --global
使います
これにより、ユーザーの.gitconfig
ファイルに設定が保存されます(例: $HOME/.gitconfig
場合は%USERPROFILE%\.gitconfig
。
git config --global user.name "Your Name"
git config --global user.email [email protected]
単一リポジトリのIDを宣言するには、リポジトリ内でgit config
を使用します。
これは、個々のリポジトリ内の設定を$GIT_DIR/config
ファイルに保存します。例: /path/to/your/repo/.git/config
cd /path/to/my/repo
git config user.name "Your Login At Work"
git config user.email [email protected]
リポジトリの設定ファイルに格納されている設定は、そのリポジトリを使用するときにグローバル設定よりも優先されます。
ヒント:異なるアイデンティティ(オープンソースプロジェクト、職場、プライベートレポなど)を持っていて、自分が作業している別のリポジトリごとに正しいIDを設定するのを忘れたくはない:
グローバルIDを削除する
git config --global --remove-section user.name git config --global --remove-section user.email
グローバル設定ではなく、リポジトリの設定内でのみあなたの身元を探すように強制するには:
git config --global user.useConfigOnly true
そうすることで、与えられたリポジトリに対してuser.name
とuser.email
を設定してコミットしようとするのを忘れると、次のように表示されます:
no name was given and auto-detection is disabled
no email was given and auto-detection is disabled
コマンドについて学ぶ
gitコマンドの詳細、つまりコマンドの動作、使用可能なオプション、その他のドキュメントの詳細については、-- --help
オプションまたはhelp
コマンドを使用してください。
たとえば、 git diff
コマンドに関する利用可能な情報をすべて取得するには、次のようにします。
git diff --help
git help diff
同様に、 status
コマンドに関する利用可能なすべての情報を取得するには、次のようにします。
git status --help
git help status
最も使用されているコマンドラインフラグの意味を簡単に表示するには、 -h
使用します。
git checkout -h
SSH for Gitをセットアップする
Windowsを使用している場合は、 Git Bashを開きます 。 MacまたはLinuxを使用している場合は、端末を開きます。
SSH鍵を生成する前に、既存のSSH鍵があるかどうかを確認することができます。
~/.ssh
ディレクトリの内容を一覧表示する:
$ ls -al ~/.ssh
# Lists all the files in your ~/.ssh directory
公開されているSSHキーが既にあるかどうかを確認するには、ディレクトリ一覧を確認してください。デフォルトでは、公開鍵のファイル名は次のいずれかです。
id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
id_rsa.pub
Bitbucket、GitHub(または同様の)アカウントで使用したい既存の公開鍵と秘密鍵のペアが表示されている場合は、 id_*.pub
ファイルの内容をコピーできます。
それ以外の場合は、次のコマンドで新しい公開鍵と秘密鍵のペアを作成できます。
$ ssh-keygen
EnterまたはReturnキーを押して、デフォルトの場所を受け入れます。プロンプトが表示されたらパスフレーズを入力して再入力するか、空のままにします。
SSH鍵がssh-agentに追加されていることを確認してください。バックグラウンドで起動していない場合は、ssh-agentをバックグラウンドで起動します。
$ eval "$(ssh-agent -s)"
SSH鍵をssh-agentに追加します。コマンドのid_rsa
を秘密鍵ファイルの名前で置き換える必要があることに注意してください。
$ ssh-add ~/.ssh/id_rsa
既存のリポジトリの上流をHTTPSからSSHに変更する場合は、次のコマンドを実行します。
$ git remote set-url origin ssh://[email protected]:7999/projects/your_project.git
SSHで新しいリポジトリをクローンするには、次のコマンドを実行します:
$ git clone ssh://[email protected]:7999/projects/your_project.git
Gitのインストール
Gitを使ってみましょう。まず最初に、インストールする必要があります。あなたはそれをいくつかの方法で得ることができます。 2つの主なものは、ソースからインストールするか、ご使用のプラットフォーム用の既存のパッケージをインストールすることです。
ソースからのインストール
できれば、ソースからGitをインストールするのが一般的に便利です。なぜなら、最新のバージョンを手に入れるからです。 Gitの各バージョンには便利なUI拡張機能が組み込まれているので、ソースからソフトウェアをコンパイルするのが快適であると感じる場合は、最新バージョンを入手するのが最善の方法です。また、多くのLinuxディストリビューションには非常に古いパッケージが含まれている場合もあります。非常に最新のディストリビューションやバックポートを使用していない限り、ソースからのインストールが最善の策かもしれません。
Gitをインストールするには、curl、zlib、openssl、expat、およびlibiconvに依存する以下のライブラリが必要です。たとえば、yum(Fedoraなど)またはapt-get(Debianベースのシステムなど)を使用しているシステムを使用している場合は、次のコマンドのいずれかを使用してすべての依存関係をインストールできます。
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
必要な依存関係がすべて整ったら、Git Webサイトから最新のスナップショットを取得することができます:
http://git-scm.com/download次に、コンパイルしてインストールします。
$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install
これが行われた後、あなたはGit自身でアップデートのためにGitを入手することもできます:
$ git clone git://git.kernel.org/pub/scm/git/git.git
Linuxへのインストール
バイナリインストーラを使ってGitをLinuxにインストールしたいのであれば、配布物に付属している基本的なパッケージ管理ツールを使ってGitをインストールすることができます。 Fedoraを使っているなら、yumを使うことができます:
$ yum install git
あるいは、あなたがUbuntuのようなDebianベースのディストリビューションを使っているなら、apt-getを試してみてください:
$ apt-get install git
Macにインストールする
MacにGitをインストールするには簡単な3つの方法があります。最も簡単なのはグラフィカルなGitインストーラを使用することです。これはSourceForgeページからダウンロードできます。
http://sourceforge.net/projects/git-osx-installer/
図1-7。 Git OS Xインストーラ。他の主な方法は、GitをMacPorts( http://www.macports.org)でインストールすることです。 MacPortsがインストールされている場合、経由でGitをインストールしてください
$ sudo port install git +svn +doc +bash_completion +gitweb
すべてのエキストラを追加する必要はありませんが、SubversionリポジトリでGitを使う必要がある場合(8章を参照)には、+ svnを組み込むことをお勧めします。
Homebrew( http://brew.sh/)はGitをインストールするもう一つの方法です。あなたがHomebrewをインストールしている場合、経由でGitをインストールしてください
$ brew install git
Windowsへのインストール
WindowsにGitをインストールするのはとても簡単です。 msysGitプロジェクトには、インストール手順が簡単です。インストーラのexeファイルをGitHubページからダウンロードして実行してください:
http://msysgit.github.io
それがインストールされた後、コマンドラインのバージョン(後で便利になるSSHクライアントを含む)と標準のGUIの両方があります。
Windowsの使用上の注意:提供されているmsysGitシェル(Unixスタイル)を使ってGitを使用する必要があります。このマニュアルでは複雑なコマンドラインを使用できます。なんらかの理由で、ネイティブのWindowsシェル/コマンドラインコンソールを使用する必要がある場合は、一重引用符(スペースを含むパラメータの場合)の代わりに二重引用符を使用する必要があります。また、サーカンフレックスアクセントで終わるパラメータを引用する必要があります)がWindows上の継続記号であるため、最後に行がある場合