LoginSignup
6
7

More than 5 years have passed since last update.

リポジトリのメンテナンス法

Last updated at Posted at 2016-12-07

メンテナンスの必要性

Forkやcloneしてきたリポジトリは、装置していればリモートリポジトリに対して古くなってします。ここでは、ローカルリポジトリをいかにして最新に保つかを解説する。

単刀直入に言えば、開発者のローカルリポジトリに、リモートリポジトリとしてオリジナルのリポジトリを設定し、そこにリモートリポジトリを取り込んで(fetch)、自分のリポジトリにマージ(merge)する。こうすることによって最新のソースコードを保つことができる。

git fetchとは

git fetchとはリモートディポジトリからローカルリポジトリに最新情報をもってきて、ローカルリポジトリが更新されるコマンドのことである。

git mergeして最新に保つ実践

手順1:リポジトリをFork,cloneする(最初の一回に限る)

まず、GitHub上でのリモートリポジトリをFork,およびcloneする。

$git clone git@github.com:[ユーザー名]/[ディポジトリ名].git

手順2:オリジナルのリポジトリに名前を設定

自分のローカルリポジトリ(ここにリモートリポジトリの最新情報が格納される)として、オリジナルのリポジトリを「origin」という名前で設定する。

$git remote add origin git://github.com/{ユーザー名]/[ディレクトリ名].git

手順3:最新データの取得

最新データをfetchして、自分のリポジトリにmergeする。リポジトリの操作を最新状態にするには、この操作を継続的に行うだけ。

$git fetch origin
$git merge origin/master

もしmergeが上手くいかない場合は

$git merge --allow-unrelated-histories origin/master

をやってみたらいいです。mergeだけでいけないのはGit2.9からmergeコマンドとpullコマンドでは,--allow-unrelated-historiesを指定しない限り,無関係なヒストリを持つ2つのブランチをマージすることはできなくなった。

手順4:開発していく

これを行うことによってmasterが常に最新状態となる。開発者はブランチを切って開発を進めていく形になる

git pullと何が違うの

git pull は上の工程をすべてひとるのコマンドで行う方法である。便利なコマンドである一方で、conflictなどが起きた時に慌ててしまう。そのため、fetchを用いてひとつひとつ作業していくことで安心して作業を進めることができる。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7