29
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

github からcloneしてきたリポジトリを綺麗さっぱり整理して、新しい気持ちで開発を始める

Last updated at Posted at 2014-05-03

githubから落としてきたブランチには、リモートの追跡ブランチとかタグとかがいろいろついてきて、show-branchとかするときにうざい。
ログとかもcloneした時点で大量に残ってて、プロジェクトを始めるには何かと目障りなものです。
(もちろん、コミッターとして開発に参加する場合には重要な履歴になるのですが…)

リモート追跡ブランチの削除

git remote にはpruneという便利なサブ(サブ)コマンドがあるので、存在しないリモート追跡ブランチを全部きれいに消してくれるそうな。

なので、cloneしてきた後に,clone元リポジトリからの接続を切り離してpruneしてやればいい。

$ git remote set-url origin <some_url>
$ git remote prune origin 

ずっと手動で消してた…

開発初期で特にリモートが見つからない場合には、<some_url>には.を登録しとけばいいと思います。

ログの削除

とりあえずdevとして空のブランチを作る。

$ git checkout --orphan dev

ここでsquash mergeすればいいものだと思ってたら、どうやらそういうわけにも行かないみたい。

素直にaddしてcommitする。

$ git add .
$ git commit -m first_commit

masterブランチに強制統合

$ git push -f . dev:master
$ git gc --aggressive

これで完了。プロジェクトの履歴はなくなりコミット履歴が1つだけの状態になりました。

$ git log

ログを削除する事によって、履歴が(プロジェクトにとって)すっきりするほか、リポジトリサイズもいくらか縮小されます。
clone時点でかなりのリポジトリサイズを持っているようなオープンソースプロジェクトでは、du -sh .gitでサイズの確認を取りながら、その効果を計測して見るといいかもしれません。

注意

後々パッチがリリースされた時のために、
どの時点のコミットをcloneしてきたか、ハッシュを控えといたほうが良いと思います。

あと、オープンソースプロジェクトのログを軽視する旨で書いているわけではありませんので、その点はご了承を。

29
34
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
29
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?