Help us understand the problem. What is going on with this article?

【GitHub超初心者入門】この前初めてGitHubを使い始めたエンジニア見習いが書くGitHubの使い方と実践~とりあえず一緒に動かしてみようぜ!~

More than 1 year has passed since last update.

たくさんの「いいね」ありがとうございます。
ちょっと別視点からバージョン管理システムの記事を書いてみました。
そちらもよろしければごらんくださいませ。
【Git】オレならこう説明する!Git初心者への用語説明

後、個人ブログもはじめましたのでよろしければ(宣伝)

3年ぶりにこの記事の続きをnoteで書きました。
https://note.mu/nahito/n/nded6e4dd7382

はじめに

「勝利にコミットせよ!」「結果にコミットせよ!」
……は?
何を言ってるかさっぱりわかりません.
コミットって何?つーかコミットって日本語で言うと何?言ってみろよ!!!
そんなエンジニア見習いがとうとうGitHubを勉強し始めました.
一緒にターミナルをいじりながら読んでいくと,理解が深まるかもしれません.

GitHubとは?

要は自分の書いたコードを公開するツールです.
企業では,その会社の中だけで公開し,バグやセキュリティ上の問題がないかなどを他の社員に見てもらい,レビューしてもらったりもしています.

GitHubのおおまかな仕組み

大まなかな仕組み

用語の説明

まず先に,訳の分からない用語の説明からしておきます.
すべて私なりの解釈なので,間違っていたら,ご指摘をお願い致します.

インデックス
これから登録するファイルが,以前とどう変わったかを登録する一時的な場所です

リポジトリ
貯蔵庫.データなどを保存しておく場所です

リモートリポジトリ
GitHub上の,データを保存している場所を指します

ローカルリポジトリ
GitHubに送信するデータを登録しておく,自身のPC上の場所を指します

コミット
GitHubでは,GitHubにデータを送信する前に一時的にローカル環境にデータを登録し,その後一気にGitHub上に送信します.
そのローカル環境にデータを登録することをコミットといいます.

プッシュ
ローカル環境に登録していた(コミットされた)データをGitHubに送信&公開することを言います.

GitHubの流れ

ここでは,GitHubにデータを送信するまでの大まかな流れと仕組みを説明します.

1)あなたのPCで開発した物を,ローカルリポジトリのインデックスに追加(アッド)します.
2)あなたのPCで開発した物を,ローカルリポジトリに登録(コミット)します
3)全て登録し終えた後,それらをGitHubに送信(プッシュ)します

以上です

実際に使ってみる

とりあえずMacintoshでやってみます.
GitHubのアカウントは適当に作れると思いますので,割愛します.

GitHubにリポジトリを作る(リモートリポジトリ)

ではまず,GitHub上にリポジトリを作ります.
TOPページ右下の,「+New Repository」を押してください・
+New Repository

次に,項目をうめて,「Create Repository」を押します.
これでリポジトリの作成が完了です.
Create Repository

表示されたページのURIを使いますので,とりあえずそのことを覚えておいてください.
URI

ローカル環境にリポジトリを作る(ローカルリポジトリ)

次にローカルリポジトリを作成します.
作る場所はどこでも良いのですが,とりあえずHOMEディレクトリの下にでも作っておきましょうか.

ターミナルで以下のコマンドを叩いていきます

terminal
$ mkdir github
$ cd github
$ mkdir gittest
$ cd gittest
$ git init

$ git initを叩くと,ローカルリポジトリが作成されます.

ファイルをローカルリポジトリに登録(コミット)してみる

では実際にファイルをローカルリポジトリに登録してみましょう.
適当にテキストファイルを作成します.
私はこれを作成したホームディレクトリ/github/gittestフォルダに保存しました.

test.txt
hello git!

次に,データの変更点を追加します.
今回の場合は「新規作成」ということになりますね.
これらはgitのコマンドで全部勝手にやってくれます.

$ git add test.txt

上記のコマンドを叩くと,変更点を勝手にインデックスに追加してくれます.
何もエラーが表示されなければ成功です.
例えば
fatal: Not a git repository (or any of the parent directories): .git
が表示されたら,git initが失敗している(ローカルリポジトリが作成できてない)ということになります.

インデックスにデータを追加したら,登録(コミット)します.

$ git commit -m "初めてのGitHub!"

このコマンドで,インデックスの内容が全てローカルリポジトリに登録されます.
ワオ簡単!

この時点では,『ローカル』リポジトリなので,GitHub上には反映されておりません.

GitHubにデータを送信する(リモートリポジトリにデータをプッシュする)

では,GitHubにデータを公開してみましょう.
先ほどのURIを使います.
URI

まず,インデックス(ファイルの変更点などのリスト?)をGitHubに作成.
$ git remote add origin https://github.com/あなたのUSER_ID/HelloGit.git

そしてコミットされたデータをGitHubに送信(プッシュ)します.
$ git push origin master

ここまでエラーなく進めると,GitHubにデータが登録されていると思います.
Push

とりあえずここまでのまとめ

さあ,いろいろコマンドが出てきたのでまとめてみます.(自分用も兼ねて

1)ローカルリポジトリを作成する
$ git init

2)ローカルリポジトリにファイルの変更点を追加(インデックスに追加)
$ git add ファイル名

3)ローカルリポジトリにインデックスに追加したファイルを登録
$ git commit -m "変更点などのコメント"

4)追加したインデックス(ファイルの変更点など)をGitHubに作成
$ git remote add origin リポジトリのURI

5)ローカルリポジトリのファイルをGitHubのリポジトリに送信
$ git push origin master

勝利にコミットせよ!
勝利に,ローカルリポジトリにデータを追加せよ!
うん,やっぱり意味わかりませんね.

プッシュしたデータを変更・更新してみる

せっかくGitHubにデータを公開したのですから,変更してみましょうか.
先ほどのtest.txtを編集してからプッシュしてみましょう.

test.txt
hello git!
Edit test!

1)変更をインデックスに追加
$ git add test.txt

2)ファイルを登録(コミット)
$ git commit -m "変更してみたよ"

3)データの送信
$ git push origin master

エラーなく進めたら,更新出来ていると思います.
変更

ブランチ(枝)とは?

ブランチを切る……マージする……これまたGitにはよく出てくるワードではないでしょうか?
枝を切って結合する?
ってか,「マージ」ってそもそも動詞だから「マージする」 = 「結合するする」じゃねーの?

用語説明

マージ
「結合する」という意味.
複数に分岐させた物をつなぎます

ブランチ
その名の通り「枝」.
一気にバージョンを上げる時などに,失敗した時用にコピーを作っておくイメージ

06.png

実際にブランチを作ってみる

まあ,まずはブランチを作ってみましょうか.

$ git branch testbranch

これで「testbranch」という名前のブランチが作成されます.
上図で言うところの「Ver.2.0β」のイメージですね.

なお,今ある(存在する)ブランチは,

$ git branch

で確認できます.

ブランチを移動する

$ git branchでブランチを確認すると,
「master」と「testbranch」というブランチがありますね?

ブランチを作ってチェックしてみた

今は「master」というブランチに「*」がついています.
これは今プッシュ(GitHubにデータを送信)すると,
masterブランチに全部データが書き込まれますよという意味になります.

いやいや,せっかくコピーを取ったのだからそっちに書き込んでいってもらわないと
困りますよね?

参照&書き換え先のブランチをtestbranchに変えてみます.

$ git checkout testbranch

これで再度$ git branchをすると,「*」の位置がtestbranchに移っていることが確認できます.

ブランチの移動の確認

作ったブランチにデータを送信してみる

では,testbranchにデータを送信(プッシュ)してみます.
まずはテキストを書き換えましょうか…

test.txt
hello git!
Edit test!
branch test!

1)インデックスに変更点を登録
$ git add test.txt

2)ファイルをローカルリポジトリに登録(コミット)
$ git commit -m "ブランチを作ってそのブランチにプッシュ!"

3)GitHubにローカルリポジトリのデータを送信(プッシュ)
$ git push origin testbranch
!注意!
今回は「testbranch」にデータを送信するので,
$ git push origin testbranch
です!

ではGitHub上に送信されているかどうかを確認してみます.
左のブランチのプルダウンから「testbranch」を選んでください.

ブランチの確認

すると,先ほどプッシュしたものが反映されていると思います.

ブランチの確認

ブランチを本筋に統合する

所謂「マージ」と言うものをしてみます.
ブランチを本筋に反映させます.

masterブランチに,testbranchを取り込みます.

1)まずは取り込み先のブランチを選択します.
$ git checkout master

2)そして,materにtestbranchを結合します.
$ git merge testbranch

3)最後に,結合情報をGitHubに送ります(プッシュ)
$ git push origin master
今回は「master」ブランチにデータをプッシュするため,コマンドは「master」になっています.

では反映されているかを確認してみます.
ブランチの確認

反映されていますね!
このようにしてバージョンデータを管理できるっぽいです.
いやー…便利!!
なのかな?

ここまでのまとめ

今回もコマンドをまとめてみます.

1)新しいブランチを作る
$ git branch ブランチ名

2)今あるブランチを確認する
$ git branch

3)ブランチを移動する
$ git checkout ブランチ名

4)ブランチを結合(マージ)する
$ git checkoutで,結合したいブランチに移動して…
$ git merge 取り込むブランチ名

で,「ブランチを切る」ってどのことですか…?

一旦ここまで

次はGitHub上のデータをローカルリポジトリにダウンロードする「プル(pull)」というのをやってみます.

続きをnoteで書きました!
よかったらぜひ!!
https://note.mu/nahito/n/nded6e4dd7382

nnahito
基本的に技術メモを発信しています。 Qiitaにも書きますが、最近は自分のブログ作ってみました。 そちらもぜひ御覧ください。 PHP書きます。 まれにJSも書きます。Svelteにはまってます。 Nimも書きます。 C言語出身(もうかけないと思うけど)なので、型付き言語に抵抗はそこまでありません。 おっさんです。
https://nnahito.com
nim-in-japan
Nim言語の日本コミュニティです。
https://nim-lang.org/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away