3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitとGitHubを最低限使えるようにするためのロードマップ

Last updated at Posted at 2021-12-18

#はじめに
こちらの記事は、Udemyの講義で使用したコマンドや手順を記録するための備忘録です。
本記事で書かれている内容は、講義の要点をまとめたり、バージョンアップに伴う対応を記録していますが、詳細な手順を知りたい方は、以下の講義を受講してください。(無料です)
Git:はじめてのGitとGitHub 

#Gitとは
##Gitとは何?
Gitはバージョン管理システム。
複数人で同じファイルを編集したときに、誤って編集を上書きしたりしてしまうことを防いだり、最新のバージョンがすぐに分かるようにすることができる。

#事前準備
##Gitのインストール(MacOS)
Macには、すでにGitが入っている。インストールされているか確認する。

user@mbp ~ % git version

##Gitの初期設定
GitHubに登録したユーザー名とメールアドレスを登録していく。

user@mbp ~ % git config --global user.name "自分が登録したユーザ名"   
user@mbp ~ % git config --global user.email 自分が登録したメールアドレス

ここで登録しているメールアドレス(以下、コミットメールアドレス)は、公開されてしまうので要注意です。
私用で使っているアドレスを設定してしまい、公開されたくないという方は、以下のサイトを参考にメールアドレスを変更(削除)しましょう!

メールアドレスの削除
メールアドレスを公開・非公開にしよう(noreplyの設定)

#GitとGitHubの基本的なワークフロー
##新規プロジェクトから始める場合
Gitリポジトリを作るところから始める。リポジトリとは、ファイルやディレクトリの状態、変更履歴を記録する場所。
まずは、今回の練習で管理したいテキストファイルをあらかじめ作る。
続いて、ターミナルでcdコマンドを使いながら移動する。
lsコマンドで見ると、GitIntroフォルダの中にGitPracticeファイルが入っていることがわかる。

user@mbp ~ % cd ~/Desktop
user@mbp Desktop % cd GitIntro
user@mbp GitIntro % ls
GitPractice

ここまでできたら、git initコマンドを使って、「.gitディレクトリ」を作る。
Gitはバージョン管理システムだから、システムの状態を時系列順に保持しておく必要がある。
その保存のための場所が.gitディレクトリである。

user@mbp GitIntro % git init
Reinitialized existing Git repository in /Users/user/Desktop/GitIntro/.git/

ちゃんと作れたか確かめるため、lsコマンドでフォルダの中身を見る。
隠しフォルダまで見るには、オプション[-a]をつける。

user@mbp GitIntro % ls
GitPractice
user@mbp GitIntro % ls -a
.		..		.DS_Store	.git		GitPractice

試しにgitディレクトリの中身を見てみよう。

user@mbp GitIntro % ls -a .git/
.		HEAD		description	info		refs
..		config		hooks		objects

##既存プロジェクトから始める場合
もともとあるプロジェクトをバージョン管理する方法を記載する。
予め作ってあるファイルにcdコマンドで移動し、そこでgit initするだけ。
基本的に上記と同じ。

##基本的なワークフローを理解しよう
基本のワークフローは以下の通り。
①ファイルの変更をステージングエリア(コミットする前の控室)へ追加する
②ローカルリポジトリにコミットする
③リモートリポジトリにプッシュする

対象ファイルのあるフォルダにcdで移動する。
続いてgit addコマンドでステージングエリアに追加し、コミットする。

user@mbp GitIntro % git add GitPractice
user@mbp GitIntro % git commit

コミットメッセージが書けるこのようなエディタ画面になるので、半角英数字に切り替えて[i]を押す

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#       new file:   GitPractice
#
# Untracked files:
#       .DS_Store
#       sample_git/
#
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                                                                                                    
~                       

一番上の行にコメントを書いて[esc]を押し、[:wq]を押してEnterを押すと元の画面に戻る。

ここまでできたらブラウザのGitHubに移動し、新しいリポジトリを作成する。
(リポジトリ名はわかりやすいものにする。)
完了したら、「…or push an existing repository from the command line」に書かれているコードを実行する。

以下のコードでGitにGitHubを登録する。

user@mbp GitIntro % git remote add origin https://github.com/codarcodar/intro-git.git

続いて、以下のコードを実行する。

user@mbp GitIntro % git branch -M main
user@mbp GitIntro % git push -u origin main

すると、UsernameとPasswordが聞かれるが、PasswordにはTokenが必要らしい。
以下のサイトの手順で解消したので、参考にしてください。
GitHubでhttpsのパスワードが聞かれたときの対処法

##変更をコミットする
ファイルを変更したら、以下の2ステップを踏む。

①ステージングエリアに追加する(git add ファイル名)
→複数のファイルを変更した場合、コミットするファイルを選択するためにあるのがステージングエリア
  →ステージングエリアにあるファイルすべてをコミットする場合は**git add.**とする。

②リポジトリにメッセージを付けてコミットする(git commit)
  →コミットとは、変更にメッセージを付けて記録・保存すること。
  →コミットすることで、変更が時系列でリポジトリ内に記録される。

コミットメッセージは、共同で作業している他のメンバーが「何をどうして変更したか」がわかる内容にする。
1行目:変更内容の要約
2行目:空行
3行目:変更理由・変更の背景

テキストファイル(今回はGitPracticeというファイル)に変更を加えて保存し、ターミナルに移動する。
gitの状態をgit statusで確認すると、以下のように表示される。

user@mbp GitIntro % git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   GitPractice
no changes added to commit (use "git add" and/or "git commit -a")

要約すると、「GitPracticeというファイルの内容が書き換わったので、コミットできるよ!」という意味である。

変更をコミットするために、まずはステージングエリアに追加する。

user@mbp GitIntro % git add GitPractice

追加したあとに、再度「git status」を実行すると、今度はmodified: "ファイル名" が赤字ではなく緑になっている。
これは、ステージングエリアに追加できていると生じるので、OK。

コミットするときに[-v]をつけると、追加された変更点を見ることができるので、おすすめ。

user@mbp GitIntro % git commit -v

コミットメッセージを編集する画面で、+になっている部分が今回の変更点。

先程と同じ手順でコミットを完了させる。
ちなみに、ターミナルで以下のコマンドを実行すると、今までのコミット履歴が見れる。
上の方が最新で下に行くほど古い履歴になっている。

user@mbp GitIntro % git log
commit 1a0a8b9c872c6123cce03293c4b682b502f0da5d (HEAD -> main)
Author: codarcodar <rina.s2.tm.0115@gmail.com>
Date:   Sat Dec 18 16:41:16 2021 +0900

    変更点を追加した
    
    講座の練習のため

commit 836e1d0f560c437641c7b75427c5326c18cb7dd0 (origin/main)
Author: codarcodar <rina.s2.tm.0115@gmail.com>
Date:   Sat Dec 18 15:40:38 2021 +0900

    initial commit

##ファイルの削除をコミット
ファイルを削除するときは、rmコマンドを使う。
今回は、second.txtというファイルを削除する。

user@mbp GitIntro % rm second.txt

削除したファイルをステージングエリアに追加するときはrmを使う。

user@mbp GitIntro % git rm second.txt

コミットメッセージを書く編集画面になるので、同様にメッセージを書く。

##現在の状況を確認する
コミットしてからの状況を確認する。

user@mbp GitIntro % git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   GitPractice
no changes added to commit (use "git add" and/or "git commit -a")

git statusは頻繁に使うので、マスターしたい。

##変更履歴を確認する
コミットされたログはgit logで確認できる。
jで下に移動、kで上に移動。qで閉じる。

よく使うオプションは以下の通り。

  1. git log --oneline
      →一行で表示する。一瞬で何が変更されたかわかる。

  2. git log -p ファイル名
      →ファイルの差分を表示する。

  3. git log -n 数字
      →最初の「数字」分のコミットを確認できる。

##ファイルの変更差分を確認する
git diffで、ファイルの変更差分を表示する。
diffはdifferenceの略。
ローカル(実際のファイル)とステージングエリアにあるファイルの状態の差分を表示するため、
git addする前後の差分を表示してくれる。

##GitHubにプッシュする
git remote addでローカルリポジトリをリモートリポジトリに登録する。
「originとは?」と気になるが、これは「今後はoringinという名前でGitHubリポジトリにアクセスできるよ」ということ。

user@mbp ~ % git remote add origin リポジトリのURL

「リポジトリのURL」とは、GitHubのメニュータブから「YourProfile」>タブのRepositories>「対象のリポジトリをクリック」で画面遷移したときのURLをコピーして貼り付ける。

やってみたら、以下のエラーが出た

fatal: not a git repository (or any of the parent directories): .git

.gitディレクトリは前の手順で作ってるはずなのに、.gitディレクトリが存在しないと言われている。
これは、git initコマンドで初期化することで解消される。

参考リンクはこちら

ローカルリポジトリの内容をリモートリポジトリへ送信するのは、git pushコマンドを使う。
git push origin masterで、originリポジトリにmasterブランチを送信するという意味。
masterはデフォルトのブランチ名。

#Ruby on Railsチュートリアル的補足
本記事を記載後、RubyOnRailsチュートリアルでGitHubに公開するときに別途設定した項目があるので、記載する。

##編集エディタの設定
クラウドIDE(AWS Cloud9など)でデフォルトのエディタを設定するときのコマンド

Cloud9上で設定する
cloud9User:~/environment/hello_app (master) $ sudo ln -sf `which nano` /usr/bin

##エイリアス設定
これは必須ではありませんが、checkoutコマンドを短く入力できるので、設定しておくと便利です。
エイリアスとは別名という意味で、省略形を登録することで作業効率をアップできる。

git coをcheckoutのエイリアスに設定する
cloud9User:~/environment/hello_app (master) $ git config --global alias.co checkout

##Gitでパスワードを一定時間保持する設定
pushコマンドやpullコマンドを入力するたびにパスワードを入力しなくてよいようにする設定。

cloud9User:~/environment/hello_app (master) $ git config --global credential.helper "cache --timeout=86400"

上記の設定をすると、Gitはパスワードを86,400秒(つまり1日)の間保持してくれます。
セキュリティ意識の高い方は、デフォルトの900秒(つまり15分)のようにもっと短い時間にしてもよいでしょう。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?