---
name: "bundle-pristine2.7"
section: "1"
platform: "linux"
package: "ruby2.7"
version: "2.7.4-1+deb11u1"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/bundle-pristine2.7"
---

# bundle-pristine2.7(1)

Restores installed gems to their pristine condition

## NAME

**bundle-pristine** - Restores installed gems to their pristine condition

## SYNOPSIS

**bundle pristine**

## DESCRIPTION

**pristine** restores the installed gems in the bundle to their pristine condition using the local gem cache from RubyGems. For git gems, a forced checkout will be performed.

For further explanation, **bundle pristine** ignores unpacked files on disk. In other words, this command utilizes the local **.gem** cache or the gem´s git repository as if one were installing from scratch.

Note: the Bundler gem cannot be restored to its original state with **pristine**. One also cannot use **bundle pristine** on gems with a ´path´ option in the Gemfile, because bundler has no original copy it can restore from.

When is it practical to use **bundle pristine**?

It comes in handy when a developer is debugging a gem. **bundle pristine** is a great way to get rid of experimental changes to a gem that one may not want.

Why use **bundle pristine** over **gem pristine --all**?

Both commands are very similar. For context: **bundle pristine**, without arguments, cleans all gems from the lockfile. Meanwhile, **gem pristine --all** cleans all installed gems for that Ruby version.

If a developer forgets which gems in their project they might have been debugging, the Rubygems **gem pristine \[GEMNAME\]** command may be inconvenient. One can avoid waiting for **gem pristine --all**, and instead run **bundle pristine**.
