gitの使い方をブログしていないなと思い、それにGitLabもハマったのでブログしていきます。このブログを読んで、
「クローンからプルしてマージ、コミットしてプッシュする」の意味が分かるようになって頂ければ幸いでございます。早速概念からいきませう。
■共有リポジトリとは
まずは運用するときに共有リポジトリを理解しないとダメなので。。
これは複数人でリポジトリを共有して開発を行うときに、
開発者全員が参照し、開発の元になるリポジトリのこと。
は!?と思いますが簡単に言うと、
ファイルの倉庫です。イメージはこんな感じ。じゃあGitって?
■Gitとは
バージョン管理システムのこと。
そもそもバージョン管理システムってなんなのよ・・・(・∀・汗)
サービスができるまでプログラムは一度開発して終了〜乙でした!!
んなわけがありませんよね。
改善されたり機能の追加などたくさんの更新があるわけです。
で、うっかりバグが出ちゃった場合、バージョン管理があれば前のプログラムに戻せるのです。
簡単に言うと
「プログラムの修正や追加など、更新するたびに、ソースコードの状態を日時やコメントと一緒に記録する」
と言った感じです。複数人いる会社は非常に役に立つのかと。
■Git用語について
・commit(保存)
Git管理しているプログラムの更新を確定、記録させること。
・clone(コピー)
リポジトリを複製すること。
リポジトリの中身を、丸っと手元に持っていく。Githubに置いてあるのもOK。
・branch(オブジェクトの集まり)
Gitでの履歴を分岐させて記録していくためのオブジェクト群。
同じリポジトリ内で、複数の変更を同時に進めていくことができる。
・checkout(切り替え)
作業するbranchを、今作業中のものから別branchに切り替える時に利用。
移動先のbranch内の最後のcommitの内容が作業場所に展開される。
・push(反映)
ローカルにあるリポジトリの中身を、
別のリポジトリに送り、そのリポジトリ上に反映させること。
自分が開発したものを、push先のリポジトリを通じて共有させる。
・pull(取り込み)
リモートリポジトリの更新部分を自分のリポジトリに取り込み、
さらに現在checkoutしているbranchに対してマージ(融合)すること。
他のリポジトリの中身を,ローカルのリポジトリに持っていける。
■Gitlabとは
Gitlabとはなんなのか。狐なのか猫なのか分かりませんが、GitHubありますね!
プログラムをネットで共有して使ったりコメントしてもらったりなど。
それのローカル版オープンソースです。社内のみでプログラム共有しようじゃないかというイメージ。GitHubも似たようなdeveloper版とかあるみたいで使ってる会社も多いはず。
■GitLabを使ってgitコマンドを駆使する
とりあえずユーザ作ったらSSHKey(公開鍵を登録する)
今回はMac(ローカル内)でやります。
gitコマンドはbrew install gitで。
Homebrewのダウンロード方法はこちら
1.鍵の作り方/.sshのconfig追加
1 |
$ ssh-keygen -f gitlab -t rsa |
パスフレーズとかいらない。エンター押しまくる。
1 2 3 4 |
$ ll total 8 -rw------- 1 root root 1675 Feb 7 09:32 gitlab -rw-r--r-- 1 root root 408 Feb 7 09:32 gitlab.pub |
でけた。
configファイルの設定は鍵を名前指定して作っていなければ設定しなくてもOKです。
今回はgitlabという名前なので、
1 2 3 4 |
$ cat .ssh/config Host gitlab-server HostName gitlab-server IdentifyFile ~/.ssh/gitlab |
※Host名は必ずドメイン名と同じにしましょう。pushができないので。
2.gitlab.pub(公開鍵)を貼り付け
プロフィールにSSHKeyという項目があるので貼り付けします。
3.新規にプロジェクトを作成
作成するとMacでこんなのをやれと言われるので、上から順にコマンド実行しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ vim ~/.gitconfig [user] name = ユーザ名 email = メールアドレス [color] ui = auto $ mkdir git $ cd git $ git clone リポジトリURL $ git init $ vim README.md $ git add README.md #(ローカルに追加) $ git commit -m "first commit" #ローカルにファイルをコミット $ git push -u origin master #サーバにpush |
とりあえず今回はREADME.mdをpushしました。
これでプロジェクトにファイルが追加されているかと思います。
■そのほかのGitコマンド(少し紹介)
・gitの状況確認、エラーとかも表示される/変更したものを差異を確認
1 2 |
$ git status $ git diff |
・ローカルに追加した使わなくなったファイルを一括消去
1 |
$ git rm $(git ls-files --deleted) |
・よく使うgitコマンド(masterに直接pushするまで)
1 |
$ git pull |
1 2 3 4 5 6 7 |
$ git status $ git diff #差異を確認 $ git add -A ./ #ディレクトリ内 $ git add . #今いるディレクトリからすべて $ git add /test/test.sh #testディレクトリのtest.shを変更 $ git commit -m "何を修正したのかコメント" $ git push -u origin master |
・ブランチを作成し、プルリクエストを出すまで
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
git branch 好きなブランチ名 git checkout 好きなブランチ名 コード修正する git add . git commit -m "何を変更したのか書く" git push origin 好きなブランチ名 プルリクを出す レビューしてもらう 修正はadd,commit,pushをする レビューOKもらったらmasterマージボタンを押す git chechout master git pull git branch -D 好きなブランチ名 また開発したいときは git branch 好きなブランチ名 から行う |
・その他 wiki.adachin.meを参考に
https://wiki.adachin.me/archives/category/git
■まとめ
gitは使ってると奥深くてむずい。。今回はGitLabの方法でしたが、GitHubも変わりません。今回は基礎的な部分を紹介したので、次回はよく使うgitコマンドをブログしたいと思います。
参考資料:http://tracpath.com/bootcamp/learning_git_firststep.html
http://gihyo.jp/dev/serial/01/hackgirlsgit/0002
0件のコメント