Gitでソースコードを管理する方法をステップで説明します。
本記事のターゲット
・GitからGitHubまでのコマンドをさらっと確認したい人
・GitとGitHubで何をやっているのか知りたい人
・学習で使用したソースコードが管理できていない人
想定としてはローカルのデスクトップにあるフォルダをgitで管理してGitHubにあげるところまで考えます。
ローカルのデスクトップが学習用のフォルダでいっぱいになってしまっている人はGitHubにあげることによって整理することもできると思います。
本記事は次の流れで説明します。
- ローカルリポジトリを作成(git init)※最初の1回だけ
- 記録したい変更情報を選択(git add)
- 選択した変更情報を記録(git commit)
- GitHubにリモートリポジトリを作成(git remote add)※最初の1回だけ
- リモートリポジトリにローカルリポジトリの変更情報を反映(git push)
記事内で紹介しているコマンド一覧は下記のとおりです。
cd Desktop/Training #Gitで管理したいディレクトリに移動
git init #ローカルリポジトリを作成
ls -a #.gitが作成されたことを確認
git add filename #コミットするファイルを選択(ファイルごとに指定)
git add . #コミットするファイルを選択(すべての変更したファイルを指定)
git status #コミットするファイル一覧を確認
git reset filename #コミットの対象から外す
git commit -m “コメント” #コミット
git log #コミットの履歴を確認
# ---ここでリモートリポジトリを作成する(https://github.com/)---
# ---認証用のトークンを作成する---
git remote add origin https://github.com/<username>/<project_name>.git
#リモートリポジトリのアクセス先を設定する
git remote -v #アクセス先の設定を確認
git push origin master #リモートリポジトリにローカルリポジトリの変更情報を反映
git log origin/master #リモートリポジトリの変更履歴を確認
Gitでやること
まずはGit、つまりローカルリポジトリについて説明します。
Gitで管理するためにやることは次のとおりです。
- Gitで管理したいフォルダに移動する(cd)
- ローカルリポジトリを作成する(git init)※最初の1回だけ
- ローカルリポジトリに記録する変更情報を選択する(git add)
- 選択した変更情報をローカルリポジトリに記録する
それでは順に説明していきます。
Gitで管理したいフォルダに移動する
ターミナルでcdコマンドを使用して、Gitで管理したいフォルダに移動します。
例えば、DesktopにあるTrainingフォルダに移動する場合は次のようにコマンドを実行します。
cd Desktop/Training
ローカルリポジトリを作成する
Gitで管理したいフォルダに移動したら、そのフォルダにローカルリポジトリを作成します。
ターミナルで次のコマンドを実行します。
git init
このコマンドを実行すると、カレントディレクトリにローカルリポジトリが作成されます。
ローカルリポジトリを確認する
ターミナルでlsコマンドをaオプション付きで実行して、「.git」が作成されたことを確認してみましょう。
ls -a
「.git」がローカルリポジトリの正体だと思ってもらってもOKです。
「.git」がある = そのフォルダがGitでバージョン管理されている証拠になります。
「.git」は、奥が深いので、興味がある人はいろいろ調べてみてください。
オススメ記事:「.gitディレクトリを探検して本気でGitを理解する」
addする|ローカルリポジトリに記録する変更履歴を選択する
ローカルリポジトリに記録するまえに、記録する変更履歴を選択します。
これはコミット(記録)する前に行う準備の作業です。
コミット(ローカルリポジトリに変更履歴を記録)するファイルを選択することを「ステージングエリアに追加(add)する」と言います。
ファイル名を指定してaddする場合は、次のコマンドを実行します。
git add filename
このコマンドによって、指定してファイルの変更情報がステージエリアに追加されます。
この時点ではまだローカルリポジトリに変更履歴は記録されていません。
全ての変更情報を指定する場合は、次のコマンドを実行します。
git add .
ステージングエリアにaddしたファイルは、次のコマンドで確認できます。
git status
ステージングエリアから削除したいファイルがある場合は、次のコマンドを実行します。
git reset filename
commitする|ローカルリポジトリに変更履歴を記録する
次のコマンドを実行して、ステージングエリアにある変更履歴をローカルリポジトリに記録します。
git commit -m “コメント”
コメントにはどのような変更か分かるような説明を入れると良いでしょう。
ローカルリポジトリでコミット履歴を確認する方法
ターミナルで次のコマンドを実行します。
git log
コマンドを実行すると、コミットのログ情報が表示されますが、読みづらいのでいろいろなオプションを付けてみてください。各コミットを1行ずつで表示したり、ブランチを指定したりできます。
GitHubでやること
GitHubでやることは次のとおりです。
- リモートリポジトリを作成する(https://github.com/)※最初の1回だけ
- 認証用のトークンを作成する※トークンの有効期限が切れるたびに行う
- リモートリポジトリのアクセス先を設定する(git remote add)
- ローカルリポジトリの変更履歴情報をリモートリポジトリに反映させる(git push)
リモートリポジトリを作成する
※ここからの作業は、GitHubアカウントを作成しておく必要があります。
https://github.com/ にアクセスして、自分のGitHubアカウントでログインします。
画面右上のプラスボタンから「New repository」を押します。
Repository name にリポジトリ名を入力、Description にリポジトリの説明を入れます。
公開してもよければPublic、公開せずしたくなければ Private を選択します。
残りのチェック欄は、今回は入れません。後から設定することができるものなので気にしないでください。
緑色の「Create repository」ボタンを押すとリポジトリが作成されます。
認証用のトークンを作成する
Github上のリモートリポジトリに変更履歴を反映(push)させるときなどに使用する認証用のトークンを作成します。
https://github.com/ にアクセスして、自分のGitHubアカウントでログインします。
画面右上のアカウントアイコンから「Setting」をクリックします。
画面左側のリストの中から「Developer setting」をクリックします。
「Generate new token」をクリックします。
Githubアカウントのパスワードを入力して「Comfirm password」を押します。
「Note」に、自分がなんのために作成したトークンか分かるようなメモを書きます。(自分が分かればなんでもOK!)
「Expiration」で、トークンの有効期限を設定します。短く設定しすぎると切れるたびに再設定が必要なので注意です。長すぎるとセキュリティの問題で注意が必要になります。(30日とか60日とかでOK?...)
つぎに、たくさんあるチェックボックスから権限を設定します。(さしあたり、今回はrepoのみチェックを入れます)
「Generate token」を押して、トークンを作成します。※次の画面で表示されるトークンコードは必ずコピーしてください。
表示されるトークンコードをコピーしてメモします。
※1度でも別の画面を開いてしまうと再生成する必要があるので注意してください。
※つまり、同じ手順でまた作ればいいだけなので大丈夫です。
最後に、このトークンを使用するように設定します。
参考サイト:https://zenn.dev/yuri0427/articles/9587ae6a578ee9
リモートリポジトリのアクセス先を設定する
これは共有するためのリポジトリなのでネットワーク上に作成します。
ターミナルで次のコマンドを実行します。<>は入力不要です。
git remote add origin https://github.com/<username>/<project_name>.git
git remote add はリモートリポジトリを追加するコマンドです。
このコマンドは引数を2つとります。
1つ目の引数:アクセス先の名前(originの部分)
これはリモートリポジトリのアクセス先に対してつける名前を指定します。
ネットワーク上に作成するリモートリポジトリのアクセス先URLを毎回書くのは面倒なので、名前をつけるというイメージです。
2つ目の引数:アクセス先のURL(コマンドのURL部分)
これはリモートリポジトリのアクセス先のURLです。
アクセス先URLに名前を付けたことにより、pushやpullをするときにリモートリポジトリのURLを何度も入力する必要がなくなるわけです。
アクセス先のURLを確認する場合
アクセス先の名前の設定は、ターミナルで次のコマンドを実行すると確認できます。
git remote -v
これでリモートリポジトリが作成できたので、ローカルの変更履歴をリモートリポジトリに送ります(これをpushするといいます)
pushする|リモートリポジトリに変更情報を反映させる
ローカルリポジトリの変更履歴情報をリモートリポジトリに反映させます。
ターミナルで次のコマンドを実行してください。
git push origin master
git pushコマンドは、ローカルリポジトリの変更履歴情報をリモートリポジトリに反映させるコマンドです。
上記のコマンドの例だと、「カレントディレクトリに存在するリモートリポジトリの変更履歴を、originに設定したアクセス先URLに存在するリモートリポジトリのmasterというブランチに反映させる」という処理が行われます。
リモートリポジトリが持つ変更履歴を確認する方法
ターミナル上で次のコマンドを実行します。(例:アクセス先名originのmasterブランチ)
git log --oneline origin/master