通常の使い方(TortoiseGit)

はじめに_

リモートリポジトリおよび作業ディレクトリの作業が終わったあとに日々のバックアップ作業について説明します。リモートリポジトリおよび作業ディレクトリの作業が終わっていなければバージョン管理開始(TortoiseGit)を参照のこと。

用語定義_

PC上のファイル編集を行うフォルダのことを「作業ディレクトリ」、複数のPC間で持ち運ぶためにGitのデータを保管しておくフォルダのことを「リモートリポジトリ」と呼ぶことにします。

日々のバックアップの流れ_

基本的には以下を繰り返すだけで簡単にバックアップできます。

  1. そのPCで作業を始めるとき:Pull(プル)
  2. 以下を作業するたびに繰り返す
    1. ファイルやフォルダを新たに追加するとき:Add(追加)
    2. ファイルに修正を加えたとき:Commit(コミット)
  3. そのPCで作業を終えるとき or 一息つくとき:Push(プッシュ)

Pull(プル)_

リモートリポジトリから作業ディレクトリに変更履歴の差分を持ってくる。作業ディレクトリにて、マウスの右ボタンをクリックし、「Git 同期」を選択する。

開いたウィンドウにて「プル」をクリックする。

Add(追加)_

作業ディレクトリ以下に配置したファイルやフォルダがGitの管理対象であることを指定する。 たとえばFirstFile.txtが新たなファイルであるとき、FirstFile.txt を選択した状態で、マウスの右ボタンをクリックする。すると以下の表示になる。「TortoiseGit」→「追加」を選択する。

すると、以下のウィンドウが開き、追加するファイルの一覧が表示される。「OK」をクリックする。なお、Gitでは空フォルダを管理対象にはできないので注意すること。

Commit(コミット)_

バックアップをとるコマンド。このコマンドを実行した時点での変更結果が保存される。 編集したファイルがあると以下のようなアイコンになる。

コミットを行う場合には、そのファイルがあるフォルダでマウスの右ボタンをクリックし、以下の表示を出し、「コミット」を選択する。

コミットを行う際には、必ずその変更に関するメモを入力しなければいけない。以下のウィンドウのメッセージ欄に今回の変更についてのメモを入力する。入力したら、「OK」をクリックする。

すると、コミットの進捗状況が以下のウィンドウで表示される。今回は、コミットが終了したら「クローズ」をクリックする。

コミットが終わると、アイコンが以下のように変化する。

Push(プッシュ)_

作業ディレクトリの変更履歴をリモートリポジトリに保存するコマンド。作業ディレクトリにてマウスの右ボタンをクリックし「Git 同期」を選択する。

すると、以下のウィンドウが開く。「リモートブランチ」という欄には「master」と入力する。その後、「プッシュ」ボタンをクリックする。

プッシュの進捗状況が以下のウィンドウで表示される。プッシュが成功したら「閉じる」をクリックしてリモートリポジトリとの同期を終わる。

競合の解消_

競合の発生_

次のときに競合が起こる。

  • リモートリポジトリの最新変更状態N
  • 作業ディレクトリWorkDirにて状態Nをプル→ファイルaを編集→コミット
  • 作業ディレクトリWorkDir2にて状態Newestをプル→ファイルaを編集→コミット→リモートリポジトリにプッシュ(最新状態N'に変更)
  • 作業ディレクトリWorkDirにてN'をプル→競合発生

作業終了時にプッシュ、作業開始時にプルをしていないと競合が発生しやすい。

テキストファイルの競合_

WorkDirとWorkDir2は同じリポジトリの同じ変更状態から取得しているとする。このとき、WorkDirとWorkDir2にてFirstFile.txtを編集し、双方でコミットを行う。

WorkDirにてプッシュし、WorkDir2でもプッシュしようとすると以下のようにプッシュ失敗の表示がでる。

そこで、WorkDir2にてプルをしてみると以下のように競合が発生していることが知らされる。

競合が発生しているファイルには以下のようなアイコンが表示される。

テキストファイルの場合、競合が発生しているファイルでは競合発生箇所が以下のように明示される。

編集を行い競合を解消する。

当該ファイルを選択し、右クリック「TortoiseGit」を選択し「競合の解決」をクリックする。

競合を解決したファイルが列挙されているかどうかをチェックする。これらのファイルでよければ「OK」をクリックする。

以下のメッセージが表示される。

次にコミットを行う。コミットメッセージは以下のように自動で入力される。

以上で競合が解消される。

バイナリファイルの競合_

WorkDirとWorkDir2は同じリポジトリの同じ変更状態から取得しているとする。このとき、WorkDirとWorkDir2にてconflict.addbを編集し、双方でコミットを行う。WorkDirにてプッシュし、WorkDir2でプルすると以下のように競合していることが報告される。

競合が発生しているファイルを選択し、右クリックで「TortoiseGit」→「競合の編集」をクリックする。

競合しているファイルがテキストファイルの場合は衝突箇所が表示されるが、バイナリファイルの場合は以下のようにメッセージが表示される。

バイナリファイルは直接編集できないが、以下のように編集前のバージョン(.BASE)、手元で編集していたファイル(.LOCAL)、リモートリポジトリに保存されているバージョン(.REMOTE)が生成されるので、適宜置き換え or 編集し、正しい conflict.accdb を用意する。

その後、当該ファイルを選択し、「TortoiseGit」を選択し「競合の解決」をクリックする。以後、コミットすれば競合は解消する。

作業を終えるときにはリモートリポジトリに変更履歴を反映させる(プッシュ)のをわすれないこと。

戻る_