はじめに
GithubはGithub for Windowsというグラフィカルなプログラムからも操作できるそうなので、どうなっているのか調査してみました。結果、GUIだけからレポジトリ追記やコンフリクトの解決など、Gitの基本操作をすることができましたので、記事にしてみます。
なお、オンライン書籍ニューラルネットワークと機械学習の翻訳プロジェクトを操作の題材にしています。
(参考にした記事: https://gist.github.com/wizard-paso/4246134)
Gitレポジトリをローカルに取得し、内容を編集する
まず、左側のパネルからGithubでアクセス権のあるレポジトリを、ローカルにクローンとかできます。この後保存先のフォルダを聞かれます。
保存先のファイルには「Open in Explorer」でアクセスできます。
さてローカルで何か変更を加えたら、変更を「Show」して
右側にCommit(追加)しようとしている変更がでるので、チェックしてコメントしてCommitを押します。
Commitした結果は、左側のSyncボタンを押すとGithubにpushできます。このSyncボタンの側には、ローカル(手元のパソコン)とリモート(Github)、それぞれのリポジトリの状態が表示されています。下の画像ですと「ローカルはリモートより2コミットぶん進んでいるが、他の2コミットぶん遅れている」と表示されており、このままSyncしてしまうと衝突しそうですが、先に進むには仕方ないのでSyncを押します。
ローカルとリモートの変更が独立ならば自動的にmerge(統合)されるのですが、今回は運悪く衝突してしまいました。
Conflict(衝突)の解決
衝突箇所は、ソースファイルに以下のような記号で挟まれて記入されます。衝突箇所が複数の場合は、衝突したと解釈されたすべての箇所に以下のメッセージが記入されます。
<<<<<<<<<<<< HEAD
ローカルの変更内容
============
リモートの変更内容
>>>>>>>>>>>> リモートブランチの名前
そこで、衝突しているファイルを好みのエディタで開き、衝突している個所を修復していきます。
両方の変更を勘案しながらいいとこどりして、<<<<<<
記号なども消し、HTMLファイルとして読める状態にしておきます。ローカルのブラウザで開くなどして、うまく統合できたか動作確認をしましょう。
統合できたらふたたびCommit操作をします。これまでの作業で、ローカルの状態から統合された状態へ遷移するパッチが作れたので、コミットします。
すると、ローカルレポジトリがリモートレポジトリにくらべて純粋に「進んでいる」状態まで来ました。こうなったら「Sync」を押せば・・・
変更がGithubに送信され、統合完了です!
Githubにもちゃんと投稿されていることを確認できます。