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

最近の投稿

アイキャッチ
画面共有中だけ通知を一時的にオフ機能のMac用アプリMuzzle

本日はアプリのご紹介、画面を共有しているときやビデオ通話などをしているときに通知を一時的にオフにするアプリのご紹介です。 プレゼンの発表中などスクリーン共有やビデオ通話などの際に役立ちます。S...

13 Aug 2017

アイキャッチ
お盆休みのお知らせ

毎日の残暑、暑いですね。暑中お見舞い申し上げます。 平素より、大変お世話になっております。 さて、弊社では下記の予定で夏期休暇を実施させていただきますので、ご了承のほどよろしくお願い申し上げ...

10 Aug 2017

アイキャッチ
マルチOSのコマンドライン型ランチャーアプリzazu

Macには圧倒的な使いやすさのalfredがあるのですがそのようなランチャーがWindows環境でないか探してみたところありましたのでご紹介します。ただalfredにはまだ遠く及ばない気がします...

05 Aug 2017

アイキャッチ
MacでWinSCPを使う方法

Wine(ワイン)とは macOS上でWindowsソフトを動かすためのプログラムです。今年初めに2.0にアップデートされたようです。[Wine 2.0が公開](http://forest.wa...

30 Jul 2017

アイキャッチ
とっても簡単なReally Simple CSV Importerの使い方

エクセルやCSVデータでブログ記事を保存していたりする場合にこのプラグインがとても便利です。 大量にデータがあるときに1件1件ちまちま入れていくのはとても大変です。そこでこのプラグインで一括で...

22 Jul 2017

著者

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

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

タグクラウド

git web developer
フッターイメージ