Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I recently forked a Git repository, and locally I created a project in my IDE to compile with.

My IDE creates a variety of artifacts that I would like to keep saved somewhere. The obvious place would be in the VCS. If I add these files then they will be in the history for my fork. If i want send a pull request to merge upstream I wouldn't want these files included.

What would be a recommended workflow for managing these changes that I would never want to go upstream.

share|improve this question
up vote 3 down vote accepted

Structure your project so that it sits in a directory (and builds all files) outside of the source directory (such as [project root]/build) and exclude that directory in .gitignore.

This is the process that CMake uses (see "out-of-source builds" in their docs). Of course, you could always introduce yourself to CMake and build it into the project's pipeline. I'm sure the authors would love you for it ;)

share|improve this answer
yeah, gitignore on the "out-of-source" files is what I have currently. – sylvanaar Nov 5 '11 at 18:57

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.