main() blog

プログラムやゲーム、旅、愛する家族について綴っていきます。

【Git】Gitをターミナルのコマンドラインで使ってみる(Mac編)

f:id:takezoh_1127:20181119000259p:plain

Gitをターミナルのコマンドラインで使ってみたいと思います。

Xcodeをインストールしていない、もしくは最新版をインストールしたい場合などはこちらのページを参考にインストールしてみてください。

www.main-function.com

www.main-function.com

ローカルPCのみで触ってみる

1.リモート(共有)リポジトリを作成してみる

リモートリポジトリとはプロジェクトで共同作業を行うためにサーバーやインターネットに存在するリポジトリです。
ここに対してみんながpushしたりpullしていきます。
そのリポジトリをローカルPCに作成して、そのリポジトリに対して操作していきます。

とりあえず git_test.git/ というフォルダを作成します。
(共有リポジトリは慣例的に .git をつけるようです)
そのフォルダ以下に共有リポジトリを作成します。

$ mkdir git_test.git
$ cd git_test.git/
$ ls
$ git init --bare --shared
Initialized empty shared Git repository in /Users/takezoh/Documents/product/git_test.git/
$ ls
HEAD        description info        refs
config      hooks       objects

これで共有リポジトリが作成できました。

2.クローンしてみる

任意のフォルダに作業用のフォルダを用意します。
今回は git_work というフォルダを作成して、
そのフォルに共有リポジトリをクローンしてみます。

git clone に続いて先程作成した共有リポジトリのパスを指定します。
次に作成するディレクトリを指定します。
これを省略すると共有リポジトリの git_test/ という名前のディレクトリが生成されます。
今回は同名ですが作成するディレクトリを指定してクローンを行いました。

$ git clone /Users/takezoh/Documents/product/git_test.git/ ./git_test
Cloning into './git_test'...
warning: You appear to have cloned an empty repository.
done.

git_test/ というディレクトリが作成されました。

$ ls
git_test

作成したディレクトに移動してディレクト中身を確認すると .git が作成されていることが確認できます。

$ cd git_test/
$ ls -a
.   ..  .git

リポジトリの状態を確認してみます。

$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

マスターブランチで何もコミットされていない事が確認できました。

3.クローンした作業リポジトリにaddしてみる

コミットするファイルを用意します。
とりあえず test.txt というファイルを用意します。
中身はなんでもよいです。

作業リポジトリに add します。

$ git add test.txt

add した状態を確認してみます。

$ git status
On branch master

No commits yet

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

    new file:   test.txt

4.作業リポジトリにcommitしてみる

addした状態が確認できたのでcommitしてみます。

$ git commit -m 'コミットのテスト'
[master (root-commit) 785805a] コミットのテスト
 Committer: XXXXXX <xxxx@xxxxxx.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly. Run the
following command and follow the instructions in your editor to edit
your configuration file:

    git config --global --edit

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+)
 create mode 100644 test.txt

名前とe-mailアドレスが設定されてないよといった内容の警告が出ていますが、とりあえずcommitはできました。

5.commitした履歴を確認してみる

$ git log
commit 785805aacfaf06dc8df87143283af5385de1a6e4 (HEAD -> master)
Author: XXXXXX <xxxx@xxxxxx.local>
Date:   Thu Nov 15 07:18:29 2018 +0900

    コミットのテスト

先程のコミットの内容が確認できました。

このコミットはまだ作業リポジトリです。
このまま作業リポジトリにコミットしていくことも可能です。
この場合、チームなど作業を行なっている時にリモート(共有)リポジトリを汚すことなくコミットを行うことができます。

6.共有リポジトリにpushしてみる

リポジトリの一覧を確認してみましょう。

$ git remote
origin

詳細を見るときは -v を付けます。

$ git remote -v
origin  /Users/takezoh/Documents/product/git_test.git/ (fetch)
origin  /Users/takezoh/Documents/product/git_test.git/ (push)

originのリポジトリに push してみます。

$ git push origin
Counting objects: 3, done.
Writing objects: 100% (3/3), 267 bytes | 267.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /Users/takezoh/Documents/product/git_test.git/
 * [new branch]      master -> master

無事に push されました。

pull してみましょう。

$ git pull origin
Already up to date.

update済みとなっています。

ログも確認してみます。

$ git log origin/master
commit 785805aacfaf06dc8df87143283af5385de1a6e4 (HEAD -> master, origin/master)
Author: XXXXXX <xxxx@xxxxxx.local>
Date:   Thu Nov 15 07:18:29 2018 +0900

    コミットのテスト

これでリモートリポジトリに対してpushすることが出来ました。