Gitが便利すぎてもうなくてはならないもの。
本日は仕事でも毎日利用している、バージョン管理システム、gitのコマンドについてまとめます。
GitHubやBitBucketを中心に 複数人の共同制作にはGitを導入
Git(ギット)とは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。
分散型と呼ばれるのは、ネットワーク環境が無くても構築作業ができる点にあります。
リモートサーバにあるメインのリポジトリをもとに、複数人がローカルにそのリポジトリを複製し作業することができます。
そのローカルでのファイルの変更内容をリモートサーバに反映させることで、共同作業が可能となります。
また、その変更内容はログとして残る形となり、競合した場合もGitでの解決またはGitより競合のアラートが通知されるため、複数人でのプロジェクトに最適なシステムとなります。
もちろん一人での構築にも便利な機能です。
僕は一人でも頻繁に使用しています。
Gitを使用した共有ウェブサービスとして、GitHubやBitBucketがあります。
Gitの基本コマンド
Gitの使い方は色々なところで書かれているので、ここではコマンドを中心に書かせてもらいます。
まずはよく使う基本コマンドの一覧です。
git init | リポジトリの作成 |
git clone | 既存のリポジトリの複製を作成 |
git status | 変更が加えられたファイルなどの状態を表示する |
git diff | ファイルの差分を表示する(git diff ブランチ名 ブランチ名 でbranch間の差分も表示できる) |
git add | commitするファイルを指定 |
git commit | コミットする |
git log | コミットログを表示 |
git branch | ブランチ情報の表示(git branch ブランチ名 でbranchの作成) |
git checkout | ブランチの切り替え |
git merge | ブランチのマージ |
git tag | コミットにタグを付与 |
git pull | リポジトリの変更点をローカルリポジトリにマージ |
git push | リモートリポジトリにローカルリポジトリの内容をアップロード |
結構使うのが諸々削除コマンド
色々作業をしていると、必要になってくるのが削除コマンドです。
結構忘れがちなのでメモしておきます。
直前のコミットを取り消す
1 |
git reset --soft HEAD |
gitでファイルの変更をすべて取り消し前回コミットした時の状態に戻す
1 |
git reset --hard HEAD |
特定のコミットを取り消す
1 |
git revert コミットID |
自分の環境だけで除外したいファイルの設定
1 |
.git/info/excludeにファイルpathを記入する |
ローカルブランチの削除
1 |
git branch -d ブランチ名 |
リモートブランチの削除
1 |
git push origin :ブランチ名 |
既に削除したリモートブランチを一覧から削除する
1 |
git remote prune origin |
共同作業の場合に特に便利なコマンドstash
複数人で共同作業をしているときに便利なコマンドとしてstashがあります。
ここではstashコマンド内容について説明します。
1 |
git stash |
現在のワークツリーを一時的に保存するコマンドです。
コミットするまででもないローカルリポジトリでの変更点を保存しておけます。
例えば、共同作業中に共同作成者に「ちょっと俺の書いたとこ確認して」と言われた時に、ちょっと手を動かしていた自分の変更を保存して共同作成者の分をpullして確認する、といったことができます。
使い方は簡単で、
1 |
git stash save |
とコマンドするだけです。
これだけで、変更内容は保存されて一時的に直近のコミット状態に戻ります。
また、
1 |
git stash save “ここにメッセージを入力” |
とするとその保存にメッセージがつけられます。
これをしておくと、複数stashした場合に困らなくなります。
保存状態を一覧で見る場合には、
1 |
git stash list |
とします。
一番最後に保存した状態に戻すには
1 |
git stash pop |
とします。
また、複数保存している場合は、特定の stash を指定して
1 |
git stash pop stash@{1} |
とすることもできます。
注意点は、popをすると保存されている状態からは削除されます。
保存状態から削除したくない場合は、popではなくapplyを使用します。
保存を削除するには、
1 |
git stash drop stash@{1} |
などとしますが、
全てクリアする場合は、
1 |
git stash clear |
が便利です。
また、stashでの保存状態とその親コミットとの差を表示することもできます。
1 |
git stash show stash@{1} |
さらにstashで保存した状態をそのままブランチとして作成することも可能です。
1 |
git stash branch ブランチ名 |
とすると最新の保存からブランチを作成します。
保存を指定するにはブランチ名の後に記述します。
1 |
git stash branch ブランチ名 stash@{1} |
複数人で作業をする際には結構使っています。
そして使いすぎてたまに混乱しています。
ご使用・ご用法にはご注意を。
まとめ
GithubもBitbucketも便利で一度使っちゃうと離れられなくなります。
日頃から一番使っているサービスですね。
ちなみにGitHubとBitBucketの違いは、非公開が有料か無料かの違いくらいしかわかりません(調べたけど忘れた)が、非公開が有料であろうとGitHubになれちゃっているので、僕はGithub派です。
バージョン管理を使い始めたら、使っていない環境では怖くて構築できないですよね。