今回は分散型バージョン管理システムのgitについてです。ギットと読みます。
ファイルのバージョン管理と思っていただければいいと思います。エクセルでもファイル1、ファイル2、ファイル3、ファイル4とかつけていきますね、これだとどのファイルが新しいのか古いのかがわからなくなりますが同じファイルで管理していけるのは良いですよね。
gitを使うとファイルを作ったり修正したりある程度のまとまりになったら履歴データベースに保存しておくと良いです。
作業ディレクトリ ここで作業する
ステージングエリア(インデックス) 作業経過を保存
リポジトリ(ローカル、リモート) 保存先、履歴データベースに入る
こちらのサイトがわかりやすいですね。⇒サルでもわかる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
ターミナル起動します。それから公開鍵を作成します。
$ 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です。
Bitbucketにログインして一番右のユーザーアイコンをクリックしてアカウントの管理を選択します。
すると左側にセキュリティという項目の下にSSHキーというのがありますのでクリックします。
鍵を追加をクリックするとモーダルウィンドウが出てきます。 ターミナルに戻り下記を入力するとkeyがクリップボードにコピーされるので
$ cat ~/.ssh/id_rsa.pub | pbcopy
モーダルウィンドウにキーを貼り付けます。labelは何でも良いです。そして鍵を追加します。
アカウントとった時点で作成しておいても良いですね。リポジトリは上のメニューからリポジトリからリポジトリ作成で作成しておいてください。
$ 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∞
あまりcgiは使いたくないのですが使わざるを得ない時があります。仕方なく設置するのですがエラーが出ちゃうんです。なんか知らないけど。 ありがちなのがパーミッションとかパスが問題になるんのですけど...
19 Feb 2022
今回はワードプレス専用のアドレス変更方法をご紹介します。ワードプレスのアドレスはwordpress@~という形で送られてきますが変更可能です。 functions.phpに記載するのですがプラグ...
12 Feb 2022
Sassの遷移は多すぎる今日この頃 Ruby Sass→LibSass→DartSass(いまここ) Ruby SassはSassの最初の実装でしたが、2019年3月26日にサポートが終了しま...
22 Jan 2022
明けましておめでとうございます。 本年も何卒よろしくお願いいたします。 年末年始は雪でしたね、そこまで積もっていませんが。 {% include adsensearticle.html...
10 Jan 2022
最近はjQueryよりvueで書いた方が楽ではないかと思い学習中です。 そもそもVuejsはドキュメントが日本語対応なので試しやすいし情報も豊富なので学習しやすいです。 3大フレームワークと呼...
02 May 2021
ウェブエンジニアの須山のブログです。
WEBに関することや個人的に関心のあることについて書きます。主に技術系ブログです。