Git最初の一歩

Git最初の一歩

  • 2017-03-18  最終更新日:2017-03-18

今回は分散型バージョン管理システムのgitについてです。ギットと読みます。

公式サイト

ファイルのバージョン管理と思っていただければいいと思います。エクセルでもファイル1、ファイル2、ファイル3、ファイル4とかつけていきますね、これだとどのファイルが新しいのか古いのかがわからなくなりますが同じファイルで管理していけるのは良いですよね。

gitを使うとファイルを作ったり修正したりある程度のまとまりになったら履歴データベースに保存しておくと良いです。

  1. 作業ディレクトリ ここで作業する

  2. ステージングエリア(インデックス) 作業経過を保存

  3. リポジトリ(ローカル、リモート) 保存先、履歴データベースに入る

こちらのサイトがわかりやすいですね。⇒サルでもわかるGit入門 〜バージョン管理を使いこなそう〜

今回の保存先はBitbucketに入れますのであらかじめアカウントを作成する必要があります。


スポンサーリンク


インストール

まずはgitをインストールしましょう! Gitがインストールされているかどうかを確認するには、ターミナルで

$ git --version

と入れてみてください、なければ公式サイトからダウンロードしてインストールしてください

設定ファイルを更新します

gitの初期設定です。データを保存する際に必要になる名前とE-mailを設定します。

$ git config --global user.name "Tadashi Suyama"
$ git config --global user.email "suyama@its-office.jp"

改行コードの自動変換を設定

なんとなくしなくても良さそうな気がしますが、設定するなら以下のコマンド

$ git config --global core.autocrlf true # Windows
$ git config --global core.autocrlf input # Mac,Linux

Bitbucket設定

1. 公開鍵の作成

ターミナル起動します。それから公開鍵を作成します。

$ cd ~/.ssh
$ ssh-keygen -t rsa -C suyama@its-office.jp
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/#{ユーザー名}/.ssh/id_rsa): #{enterを押す}
Enter passphrase (empty for no passphrase): #{enterを押す}
Enter same passphrase again: #{enterを押す}

パスフレーズはなくても良いです。

Your identification has been saved in /Users/#{ユーザー名}/.ssh/id_rsa.
Your public key has been saved in /Users/#{ユーザー名}/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256: c3V5YW1hQGl0cy1vZmZpY2UuanA= suyama@its-office.jp
The key's randomart image is:

このように表示されればOKです。

2. 公開鍵をBitbucketに登録

Bitbucketにログインして一番右のユーザーアイコンをクリックしてアカウントの管理を選択します。

bitbucket

すると左側にセキュリティという項目の下にSSHキーというのがありますのでクリックします。

bitbucket

鍵を追加をクリックするとモーダルウィンドウが出てきます。 ターミナルに戻り下記を入力するとkeyがクリップボードにコピーされるので

$ cat ~/.ssh/id_rsa.pub | pbcopy

モーダルウィンドウにキーを貼り付けます。labelは何でも良いです。そして鍵を追加します。

リポジトリ作成

bitbucket

アカウントとった時点で作成しておいても良いですね。リポジトリは上のメニューからリポジトリからリポジトリ作成で作成しておいてください。

3. config作成

$ cd ~/.ssh
$ touch config
$ chmod 700 config
$ vim config

configを以下の通り設定します。

Host bitbucket.org
  HostName bitbucket.org
  IdentityFile ~/.ssh/id_rsa
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

ローカルディレクトリを設定する

新規の場合

$ mkdir /path/to/your/project
$ cd /path/to/your/project
$ git init
$ git remote add origin git@bitbucket.org:test/sample.git
$ git remote -v

最初のファイルをコミットしましょう!

$ echo "# My project's README" >> README.md
$ git add README.md
$ git commit -m "Initial commit"
$ git push -u origin master
$ git remote -v

これで完了!あとはファイルを修正したり作成するたびにコミットしていきましょう!

すでにプロジェクトがある場合

cd /path/to/your/repo
$ git remote add origin ssh://git@bitbucket.org/test/sample.git
$ git push -u origin master
$ git remote -v

これで完了です!ファイルができているか確認しましょう!

以下はコマンドリスト

ベーシックコマンドリスト

よく使うコマンドリストです。覚え書き

リポジトリをチェックアウト

$ git clone /path/to/repository # ローカルリポジトリへ作業コピーを作成します。
$ git clone username@host:/path/to/repository # リモートサーバーの場合。

追加ファイル

$ git add <filename>
$ git add * # インデックスをステージングエリアに1つ以上のファイルを追加します。

コミット

$ git commit -m "Commit message" # ヘッドへの変更をコミットします。
$ git commit -a # 変更したすべてのファイルをコミットします。
$ git commit --amend # ログを増やさないコミット編集

プッシュ

$ git push origin master # リモートリポジトリのmasterブランチへの変更を送信します

ステータス

$ git status # 変更したファイルと、まだ追加またはコミットする必要があり、それらを一覧表示します。

リモートリポジトリに接続

$ git remote add origin <server> # リモートサーバーにローカルリポジトリを接続していない場合は、それにプッシュすることができるようにサーバーを追加します。
$ git remote -v # 現在構成されているすべてのリモートリポジトリをリストします。

ブランチ

$ git checkout -b <branchname> # 新しいブランチを作成し、それに切り替えます。
$ git checkout <branchname> # 一方のブランチから別のものに切り替えます。
$ git branch # すべてのブランチの一覧を表示し、現在作業しているブランチを教えてくれます。
$ git branch -d <branchname> # ブランチを削除します。
$ git push origin <branchname> # 他の人がそれを使用することができるように、リモートリポジトリにブランチを送信
$ git push --all origin # リモートリポジトリにすべてのブランチをプッシュ
$ git push origin :<branchname> # リモートリポジトリ上のブランチを削除します。

リモートリポジトリからのアップデート

$ git pull # 作業ディレクトリにリモートサーバー上の変更をマージする。
$ git merge <branchname> # アクティブなブランチに別のブランチをマージする。
$ git diff # すべてのマージの競合を表示します。
$ git diff --base <filename> # ベースファイルに対する競合を表示します。
$ git diff <sourcebranch> <targetbranch> # 合併前のプレビューの変更
$ git diff --cached # ステージングエリア後
$ git add <filename> # 手動で任意の競合を解決したら、変更されたファイルをマーク

タグとログ

$ git tag <tag_name> <commitID> # このようなリリースとして、大幅なチェンジセットをマークするためにタグ付けを使用することができます。
$ git log # CommitIdは10まで、チェンジセットIDの先頭の文字ですが、一意である必要があります。使用してIDを取得します。
$ git log --oneline # 一行参照
$ git log --stat # どのファイルが何カ所変わったか
$ git push --tags origin # リモートリポジトリにすべてのタグをプッシュ
$ git tag -d <tag_name> # タグ削除
$ git show <tag_name> # タグ名から中身を見ることができる

ローカルの変更を元に戻します

$ git checkout -- <filename> # ヘッド内に最後の内容と作業ツリーの変更を置き換えることができます。すでにインデックスだけでなく、新しいファイルに追加された変更は、保持されます。
$ git fetch origin
$ git reset --hard origin/master # 代わりに、すべてのローカルの変更を削除し、コミットし、サーバーから最新の履歴を取得し、それをローカルのmasterブランチを指して、実行する

検索

$ git grep "foo()" # 作業ディレクトリを検索foo():

エイリアス作成

$ git config --global alias.co checkout # チェックアウトをco
$ git config --global alias.st status # ステータスをst
$ git config --global alias.br branch # ブランチをbr
$ git config --global alias.ci commit # コミットをci

参考になれば幸いです。


∞Tadashi Suyama∞

git web developer
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

サイト内検索

最近の投稿

アイキャッチ
ワードプレスでのカテゴリごとのページング方法

ワードプレスの投稿ページはカテゴリー関係なくページングされてしまいます。投稿順で表示されるのですが、これを同一カテゴリー内だけでページング、ページ送りをする方法をご紹介します。 お知らせ、ブロ...

09 Dec 2017

アイキャッチ
小学一年生のためのひらがなカタカナ神経衰弱

私の娘は遊ぶことが大好きです。でいつも何して遊ぶが口癖になっているほど遊びが大好き、当然勉強は嫌い。。。それでゲーム感覚で勉強が出来る方法がないかと思案したわけですが、カードゲームが好きなのでカ...

02 Dec 2017

アイキャッチ
グーグルマップのdirections APIを使ってバス貸切料金算出方法

グーグルマップのdirections apiは距離と時間を調べるときに役立ちます。複数の経由地も入れることが可能で[コチラ](https://developers.google.com/maps...

25 Nov 2017

アイキャッチ
日本語のwebフォントを作成する方法

Webフォントを使うといえば[Google Fonts](https://fonts.google.com/)を使って利用している人が多いかもしれません。 そのほか、アドビ社の[Typekit]...

18 Nov 2017

アイキャッチ
chromeのデフォルト機能でキャッシュ削除する方法

つい先日、クロームのcache killerというエクステンションが使えなくなりました。。。常にキャッシュを削除してくれるので良かったのですが、代わりの物を探していたらデフォルトでキャッシュを削...

11 Nov 2017

著者

ウェブエンジニアのSUYAMAのブログです。

WEBに関することや個人的に関心のあることについて書きます。主に技術系ブログです。

タグクラウド

git web developer
フッターイメージ