前回はGitのローカルリポジトリとリモートリポジトリについて説明しました。
今回は実際にローカルリポジトリを使って作業をする手順を紹介します。
準備
リモートリポジトリとローカルリポジトリを用意します。今回はローカルPC内にリモートリポジトリも作成します。
リモートリポジトリの作成
Git Bashを開き、リモートリポジトリを作成したいディレクトリに移動します。そして、以下コマンドを実行します。
git init --bare --share
git remote add リポジトリ名 パス(URL)
git remote add sample C:/Project/git/0.Remote_Repository/
以下のようなフォルダが作成されるはずです。
ローカルリポジトリの作成
ローカルリポジトリを作成したいディレクトリに移動します。今回は、C:/Project/git/1.Local_Repository/に作成します。
そして、以下コマンドを実行します。
git clone リモートリポジトリのURL(またはパス)
git clone C:/Project/git/0.Remote_Repository/
Github等からクローンする場合はURLを指定します。が、今回はローカルPC内に作成したリポジトリからクローンするので、パスで指定します。
すると、0.Remote_Repositoryフォルダ(リモートリポジトリの名称)が作成されます。
C:\Project\git\1.Local_Repository\0.Remote_Repositoryにてファイルを管理します。リモートリポジトリにてすでにファイル管理がなされている場合、git cloneをするとそのファイルも併せて取得されますが、まっさらなリモートリポジトリからクローンした場合は.gitフォルダのみ作成されます。
今回はローカルリポジトリにpdf2text.pyというPythonファイルを置いて、ソース管理をやってみます。
ローカルリポジトリでの操作
ここからもGit Bashにて操作します。ディレクトリは、ローカルリポジトリに移動しているのが前提です。
管理対象ファイルの追加
ローカルリポジトリにファイルを置いただけではGitの管理対象にはなりません。ファイルを配置した後、以下コマンドを実行します。
git add .
これで、ディレクトリ内の全ファイルをGitの管理対象に追加することができます。特定のファイルのみを追加したい場合はドット(.)をファイル名に変更します。
管理対象ファイルの状態確認
管理対象ファイルの状態(コミットされているのか、未コミットなのか)を知るためには以下コマンドを実行しまうす。
git status
キャプチャの場合、pdf2text.pyはまだコミットされていないことがわかります。
コミット
変更があったファイルについて、コミットしてリポジトリに履歴として登録します。コミットは以下コマンドで実行しますが、コミットする際のコメントが必須です。
git commit -m "何かコメントを書く"
git commit -m "commit1"
コメントには、そのコミットでの変更点等を残しておくのが一般的です。あとから見返してどんな変更を実施したかがすぐにわかるようなコメントを意識すればよいと思います。
今回は”commit1″というコメントを残していますが、くれぐれもこんなコメントは残さないようにご注意ください。
履歴の確認
過去にコミットした結果は履歴として確認することができます。
git log
誰がいつコミットしたかという情報と、コミット時のコメントを確認することができます。
リモートリポジトリへのpush
これまでの手順では、ローカルリポジトリにコミットしただけですが、その変更をリモートリポジトリにも反映するには、別途pushを実施する必要があります。
以下は、リモートリポジトリのmasterブランチにpushするコマンドです。
git push origin master
リモートリポジトリで履歴の確認
pushした結果がリモートリポジトリに反映されているか確認します。リモートリポジトリに移動し、git logで履歴を確認します。
ローカルリポジトリでの変更が反映されていることがわかります。(キャプチャ1行目のパスでリモートリポジトリと判断できます)
Gitを学ぶ
Gitに関する書籍はいくつも出版されていますが、以下がわかりやすく個人的におすすめです。
まとめ
ローカルリポジトリでのコマンド操作について紹介しました。
commit~pushは日常的に実施するコマンドなので、是非覚えておいてください。また、コメントは絶対に意味のあるコメントを残す意識を持ってください。将来の自分をがっかりさせないようにしてくださいね。
ではでは👋