GitHubを始める為に - その4.GitHubを触ってみる

2020年7月16日木曜日

Git

t f B! P L

GitHub

引き続き2つ目のカテゴリ、GitHubを触っていきます。

  • Git
  • GitHub
  • Gist

おさらい

実際にGitHubを触る前に概念のおさらいをしましょう。

Remote Repository / Local Repository

GitHubを始める為に - その2.Gitを触ってみるGitHubを始める為に - その3.GitHub?で経験した事を踏まえ、この2つは以下の様に表せます。


Repositories
Remote RepositoriesGitHub
Local Repositories自分のPC

commit / push

commitとpushは以下の様にまとめました。






コマンド説明
commitファイルの追加や変更の履歴をRepositoryに保存すること
pushファイルの追加や変更の履歴をRemote Repositoryにアップロードするための操作



branch

branchの運用に関しては奥が深い(正解がない)ので、基本概念は公式の資料を読むと一番分かりやすかったです。

Pro Git Book3章.Git のブランチ機能を読みましょう。

時間のないor難しい人はこの一文がなんとなく分かっていれば大丈夫。

ブランチとは、開発の本流から分岐し、本流の開発を邪魔することなく作業を続ける機能のことです。


いざ、体験GitHub

では、早速前回作成したGitHub上のRepository、testrepoを触っていきましょう。

Local PCでの準備

ターミナルで作業環境を整えます。

まずは作業ディレクトリの作成

$ mkdir githubtest
$ cd githubtest
$ git init
Initialized empty Git repository in /***/***/***/githubtest/.git

この $ git init コマンドでカレントディレクトリをGit Repositoryにしていします。

そしてGitHubで管理するファイルの作成です。

$ vi mojatest.html

内容はこんな感じの物を用意してみました。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>mojatest</title>
</head>
<body>
mojage is testing now.
</body>
</html>

Local Repositoryへcommit

まずは $ git status コマンドで現状を確認しましょう。

$ git status
On branch master

Initial commit

Untracked files:
(use "git add <file>..." to include in what will be committed)

mojatest.html

nothing added to commit but untracked files present (use "git add" to track)

mojatest.html がトラッキングされてないから、 $ git add して下さいって出ましたね。

では

$ git add mojatest.html
$ git status
On branch master

Initial commit

Changes to be committed:
(use "git rm --cached <file>..." to unstage)

new file:   mojatest.html

Indexに登録されました。

では、IndexとLocal Repositoryの差分を見てみましょう。
$ git diff --cached です。

$ git diff --cached
diff --git a/mojatest.html b/mojatest.html
new file mode 100644
index 0000000..9172e66
--- /dev/null
+++ b/mojatest.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>mojatest</title>
+</head>
+<body>
+   mojage is testing now.
+</body>
+</html>

まだLocal Repositoryには反映されていないことがわかりますね。
そして $ git commit

$ git commit -m "add mojatest.html"
[master (root-commit) b08f53a] add mojatest.html
1 file changed, 10 insertions(+)
create mode 100644 mojatest.html

成功!

でも一応確認します。

$ git status
On branch master
nothing to commit, working directory clean

問題なさそうですね。


GitHubのRemote Repositoryへpush

前回作成したtestrepoをRemote Repositoryとして登録します。

$ git remote add origin https://github.com/mojagehub/testrepo

最後に $ git push コマンドでGitHub上のRemote Repository testrepo上へ送り出します。

$ git push origin master
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 616 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://github.com/mojagehub/testrepo
47012c4..7e64796  master -> master

成功です!

もし、以下の様なエラーが出た場合は、Remote Repository上にREADMEファイル等がある為に先に $ git pull コマンドでRemoto Repositoryの情報を引っ張ってこいと言っているので、先に $ git pull しましょう。

! [rejected] master -> master (non-fast-forward)

error: failed to push some refs to ‘https://github.com/[account]/[reponame]’

hint: Updates were rejected because the tip of your current branch is behind
$ git pull origin master

$ git push にせよ $ git pull にせよ、初回のGitHubとの接続時はユーザ/パスワード認証があります。


GitHubの上で確認



ちゃんとmojatest.htmlがpushされてますね!

今回はここまで。

QooQ