Git
リモートリポジトリ

Gitのリモートリポジトリを作成したいお話

対象者

gitをインストール済みの環境であること。
$ git --versionでバージョンが表示される)
gitの概念は知ってること。
gitリモートリポジトリを作成したい人。

Gitホスティングサービス選び

リモートリポジトリの設置場所Gitホスティングサービスと呼称するそうです。

GitといえばGitHubにリモートリポジトリを作るものかと思っていましたが、
よくよく調べてみたら色々ありました。

以下、メジャー?なGitホスティングサービスを調べました。
自分の基準は無料か有料か、プライベートかフルオープンか。

GitHub

無料でリポジトリを作成できる。
プライベートリポジトリは有料。(学生、先生なら無料)
プライベートじゃない場合は他の人がリモートリポジトリを触り放題です。
プルリクエストも出せる。

Bitbucket

無料でリポジトリを作成できる。
プライベートリポジトリも5つまで無料。
プライベートリポジトリはSSH接続、https接続選択できます。
プルリクエストも出せる。
1GBを超えるとソフトリミットになり、2GBを超えるとハードリミット。

GitLab

GitLabはGitHubのクローンプロジェクトらしい。(オープンソースのGithub)
セルフホスト。(自前のサーバーに自分でホスティングする必要あり)
自分で設定する必要あるが、サーバーから自前で用意したものになるのでサーバー次第で特に制限なし。

Assembla

プライベートリポジトリを無償で持つことができる。
プライベートリポジトリ無制限。
メンバー無制限
プルリクエストも出せる。
SSHなし。
→よくわからない。わかりにくい。

その他

他にも色々ありましたが下記の記事を参照。
無料で使える! Gitのホスティングサービス5つ
https://www.find-job.net/startup/5-git-hosting

というわけでプライベートリポジトリが欲しい自分はGitといえばGitHubという概念を捨て、サーバー持つ予定なのでGitLabにしようと思いました!

gitの設定(ローカル側)

履歴に残る名前を設定

$ git config --global user.name "自分の名前"
$ git config --global user.email "xxxxx@xxxxxxx.co.jp"

初期化

gitが設定されていないディレクトリで以下を実行するとgitが適用される

$ git init

適当にファイルを変更

初期化した後にファイルの変更を行うと差分が生まれる。

$ git status #差分ファイルの表示

変更の記録

差分ファイルをステージングにあげてgit履歴に記録する。

$ git add -A
$ git commit -m "first commit"

設定などについては後日追記予定(まだ途中)

gitの設定(リモート側)

リモートリポジトリの作成

調査中

リモートリポジトリとローカルのGitブランチを紐付け

以下のコマンドで紐付けされます。

$ git remote add origin <リモートリポジトリURL~httpsから始まるところ~>

紐付けしたらローカルでコミットしてある変更履歴をリモートリポジトリにPUSHしましょう。

$ git push -u origin master
ここからまだ作成中
あとがき

はじめてgitをコマンドで触ったとき、リモートへpushするときのoriginって何?と思って調べてみました。
originとはリモートリポジトリの名前の別名
(なにそれ)
例えばgit push origin masteroriginリポジトリのmasterブランチを指している。
(それでいうと今回の場合git push study masterになるのでは?)

よく分からないけどoriginリモートのことを指しているんだな〜ということで理解することにしました。
リモートブランチにプッシュするとき、git push originまでがセットになっている認識です。

よく使うgitコマンドを惰性でメモ

ブランチの確認

現在いるブランチの確認

$ git branch

ブランチの切り替え

ブランチを切り替える

$ git checkout 切り替え先のブランチ名

ブランチの同期(リモートとローカル)

$ git fetch && git pull

ブランチの作成

現在いるブランチにて以下のコマンドで新しいブランチを派生させる
feature/は新しく作るとき
hotfix/は急ぎ対応するとき
個人でやる分には結構自由

$ git checkout -b feature/ブランチ名

ブランチの削除

不要なローカルのブランチは削除、断捨離大事

$ git branch -D feature/ブランチ名

差分のあるファイルの確認

ステージングにあげる前にやっておいた方がいい

$ git status

差分の詳細確認

ステージングにあげる前にやっておいた方がいい

$ git diff

qで出れます。

差分を帳消しにする

わけわからなくなったらリセットできちゃう

$ git checkout .

上記がダメならgit add -Aしてからコミットを行い、別ブランチに切り替えてそのブランチを消したり、git reset HEAD^git revert方法もあり。

差分をステージングにあげる

1つずつあげる

$ git add ファイル名パス

一気に全てあげる(大体こっちを使用)

$ git add -A

ステージングにあげた履歴を登録する(commitという)

ステージングにあげてないとコミットできないので注意

$ git commit -m "なんかコメント"

ブランチをリモートにあげる(PUSHという)

コミットしてないとプッシュできないので注意

$ git push origin ブランチ名

git rebaseとかしたりしていると、ここでよくエラーが起こりがち。
以下のコマンドで全てを無視して強制的にあげることが可能。

$ git push -f origin ブランチ名

参考

https://web-camp.io/magazine/archives/17672#GitGitHubBitbucket