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

サイト内検索

最近の投稿

アイキャッチ
そろそろvuejs始める

最近はjQueryよりvueで書いた方が楽ではないかと思い学習中です。 そもそもVuejsはドキュメントが日本語対応なので試しやすいし情報も豊富なので学習しやすいです。 3大フレームワークと呼...

02 May 2021

アイキャッチ
追い風CSS(tailwindcss)が結局楽かも

最初にtailwindcssのv1が出た頃はまだbootstrapで良いかな。 htmlに入れるクラスタグが多過ぎと思っていました。あまり良い印象はなかったです。 時は過ぎいろいろと触っていると...

29 Apr 2021

アイキャッチ
エラー処理について

COJPドメンを取得する際に「登記年月日」という項目があります。 その項目通り登記した年月日を入れる訳ですが、なぜかエラーが出ました。 半角英数字にして下さいというよくあるエラーです。当然半角英...

24 Jan 2021

アイキャッチ
javascriptのundefinedの判定

jqueryで高さの数値をとって足し算をしていたらエラーも出ずに動かないということになったので調べてみました。 ワードプレスで管理画面のアドミンバーが一度ログインするとフロント画面でも表示される...

17 Jan 2021

アイキャッチ
Webpack5にアップデートしてエラーの対処方法2つ

webpack4(4.41.5)から webpack5(5.12.1)にあげました。 特に難しい設定は行っておらず主にscssと共通モジュールの設定だけで使っているのですがそれでもエラーが出たの...

09 Jan 2021

著者

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

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

タグクラウド

git web developer
フッターイメージ