【前提】
ローカルにリモートリポジトリ(GitHub)をクローンしている状態からスタートします。
TortoiseGitを用いての操作方法となります。
もし、TortoiseGitのインストールや、クローンが終わっていない場合は、こちらを参考にしてください。
【環境】
windows
GitHub
TortoiseGit
【基本的に使う機能】
普段から使う機能は以下の4つだと思われます。
プル(Pull):ローカルリポジトリGit同期
アド(Add):新規ファイル、フォルダ追加
コミット(Commit):ローカルリポジトリへの変更の記録
プッシュ(Push):リモートリポジトリへの変更の反映
これを簡単に紹介していきます。
プル(Pull)
リモートリポジトリからローカルリポジトリに変更された差分を持ってくる。リモートを最新の状態として、ローカルを同期させる。
作業開始の際にはプルから始める癖をつけておくとよい。プルをしておかないと後々バージョンの競合が発生したりで結構めんどくさいことになりやすい。
作業するローカルリポジトリで右クリック「TortoiseGit」→「プル」をクリック。「OK」をクリック。
完了。エラーなどが出ていなければ基本的には問題ない。
アド(Add)
追加したファイル、フォルダがGitバージョン管理対象であることを指定する。
ファイルを追加する。今回は空の「test.txt」を作成して対応する。ファイルを追加した段階ではアイコンは「?」となっている。
フォルダの何もない部分で右クリック「TortoiseGit」→「追加」をクリック。
ファイルで右クリック「追加」をしてもよいが、選択中のファイルしか追加対象とはならない。
複数を一度に追加した場合は、何もない部分で右クリック「TortoiseGit」→「追加」とする。
追加するファイルにチェックを入れ、「OK」をクリック。
追加完了。このままコミットしてしまってもよいが、今回は「OK」で終了する。
アイコンが「+」マークになった。
コミット(Commit)
ファイルやフォルダの変更をローカルリポジトリに記録する。
フォルダの何もない部分で右クリック「Gitコミット(C)->"master"」をクリック。
初回コミット時など、コミットで使う情報を登録していない状態などのとき、以下の警告が出る。
ユーザ情報の「名前」、「メール」を入力して、「適用」を押した後、「OK」をクリック。
必ずしもGitHubアカウント情報と同じである必要はない。
「適用」をクリックせず、「OK」をクリックすると設定が適用されない。
コミット対象を選択。
コメントを記載して、「コミット」をクリック。
成功。
アイコンが緑のチェックマークになった。
この時点ではリモートリポジトリ(GitHub)に変更は未反映状態。
プッシュ(Push)
作業用ローカルリポジトリの変更をリモートリポジトリに反映させる。
「プッシュ」の対象となるのは、「コミット」済みのファイル、フォルダのみ。
フォルダの何もない部分で右クリック「TortoiseGit」→「プッシュ」をクリック。
そのまま「OK」をクリック。初回プッシュ時はGitHubのアクセス情報を聞かれるかもしれない。
成功。リモートリポジトリ(GitHub)にも変更が反映された。
おまけ
以前、職場で使っていた時期があり、曖昧な記憶とはなるがTipsとして残しておく。
コミット時のコメントについて
これは職場のルールなどによって異なるが、なるべく詳細に残したほうがよい。
残しておかないと何のためのコミットだったか忘れることが多い。
プルとフェッチの違い。
プル→リモートから変更履歴を持ってきて、同期させる。
フェッチ→リモートから変更履歴を持ってくる。同期させるには別途「マージ」をする必要がある。
つまり「プル=フェッチ+マージ」
ファイルを削除する場合
削除したいファイルで右クリック「TortoiseGit」→「削除」をクリック。
削除後「コミット」→「プッシュ」をする。
ファイルを「Delete」キーなどで削除することもできるが、その場合はコミット時のステータスが「行方不明」となる。管理的には好ましくないので、右クリック→削除のほうがよい。
コミット前の削除したファイルなどを元に戻したい場合。
フォルダの何もない部分で右クリック「TortoiseGit」→「変更の取り消し」をクリック。
ファイルの名前を変える場合。
ファイルで右クリック「TortoiseGit」→「名前を変更」をクリック。
変更後「コミット」→「プッシュ」をする。
直接名前を修正すると完全な新規ファイル扱いとなり、今までの修正履歴などが消える。
また、もともとのファイルは行方不明扱いとなる。
これで、基本的な操作は問題ないはず。プログラミングの勉強をちまちま再開させますかね。
以上。ありがとうございました!