Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9219237
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T03:03:58+00:00 2026-06-18T03:03:58+00:00

I decided to start using the Git version control system for my C++ project.

  • 0

I decided to start using the Git version control system for my C++ project. I’m new to version control. For the trunk things are simple, I just commit all the project versions I have. I kept each version as a separate folder because I knew I’d very soon use Git. But I encountered a problem with my branches.

At some stage of the development, I decided there’s one class I want to develop in a branch. Without version control, I had to use make a “manual” branch. I copied the most recent header file and source file of that class to a separate folder and started working there. I made several versions there to work with simultaneously. One version was the first prototype of the class according to the plan (for which I made the “branch”). Then I added another file, in which I copied the first one but removed things that seemed to not be necessary. This way I have 2 versions, one with all my ideas and features, the the other one just with what I really use in my code, without what’s not in use at the moment.

But then I added more. As development went on, I decided it may be a good idea to make that class a template. So I added a third version, which is just like the second one, but now some functionality implemented using polymorphism is implemented using a template. And I can’t tell yet which version is the best, as it’s too early to tell, so I want to have all 3 together.

Then I made another special file: A copy of the third version header file, in which each line can be marked or not marked. Marked means I use that specific method or I’m sure it’s going to be in use very soon, otherwise the line isn’t marked.

Then, some time later, I started a new branch. And for that branch I needed a new version of that class developed in the first branch. So I just copied one of the versions to the new branch’s folder and started working there. Now again I had some kind of auxiliary file: I had 2 files, one from which I delete class methods I use, and one into which I write new methods I need to have.

Now I want to start using Git and I wonder: For all the project’s text files, plans, diagrams, etc., it obvious – I keep them outside the Git repo. Whenever collaborative editing is needed I can set up a wiki or something like that. But for all those copies of the same header file, and for those auxiliary “marked” files, what do I do with them? I mean, it’s fine by me to have them all in a branch, but what happens when I merge a branch into the trunk? I don’t want to have all these copies and versions and lists, just the one final class file I’ve made.

On one hand, these are C++ source files used while coding. On the other hand they’re not part of the pure source code of the software package, they just help me while I work but will never get compiled because in the end there’s just the final version of the class which I chose to merge, and all other aux files, lists, etc. are kept just for reference.

What would be the best thing to do?
Thanks for reading my long story 🙂

EDIT: It’s a local repo on my personal computer

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T03:04:00+00:00Added an answer on June 18, 2026 at 3:04 am

    What you describe is the normal use of branches: You have your master branch (“official”, if it where) and a branch to develop a new feature (it doesn’t really have to live in a separate directory, if I understand you correctly). Periodically you synchronize the feature branch with the master, either by rebasing it on the master or merging its changes in. In its turn, you can well have subordinate branches in which you try out approaches to develop the feature, handled with respect to the feature branch just like that one respect to the master. But in that case you have to be careful whenever you rebase.

    You should keep any data that isn’t easy to recreate in the repository, be it source code, documentation or even design sketches. Stuff that can be recreated (object code, automatically formated documentation, …) should be kept out (any change there will create a difference to be checked in). Your repository (particularly not published branches) is your own workspace, it can be all the messy you like.

    Take a look at the book mentioned at the git homepage.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

We are using Lucene version 3.6.0 in our project. Now we decided to start
we decided to start a new project using the Microsoft SQL Server R2 under
i have decided to start using SEF urls on a project which is quite
I'm new to Maven, and decided to start with it on a project I
I've read alot about the Castle Project and decided to start using it, primarilly
I've decided to start versioning my project the Apple way, using Bundle versions string,
First, some background: I've decided to start a new project designed from the ground
Our project contains 2600 class files and we have decided to start using automated
I just found out that Google recently decided to start using their own title
I have decided to start using unit testing in PL/SQL, since it could be

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.