Re: "groups of files" in Git?
- Date: Tue, 11 Jul 2017 19:39:04 +0200
- From: Lars Schneider <larsxschneider@xxxxxxxxx>
- Subject: Re: "groups of files" in Git?
> On 11 Jul 2017, at 17:45, Nikolay Shustov <nikolay.shustov@xxxxxxxxx> wrote:
> I have been recently struggling with migrating my development workflow
> from Perforce to Git, all because of the following thing:
> I have to work on several features in the same code tree parallel, in
> the same Perforce workspace. The major reason why I cannot work on one
> feature then on another is just because I have to make sure that the
> changes in the related areas of the product play together well.
> With Perforce, I can have multiple changelists opened, that group the
> changed files as needed.
> With Git I cannot seem to finding the possibility to figure out how to
> achieve the same result. And the problem is that putting change sets
> on different Git branches (or workdirs, or whatever Git offers that
> makes the changes to be NOT in the same source tree) is not a viable
> option from me as I would have to re-build code as I re-integrate the
> changes between the branches (or whatever changes separation Git
> feature is used).
> Build takes time and resources and considering that I have to do it on
> multiple platforms (I do cross-platform development) it really
> denominates the option of not having multiple changes in the same code
> Am I ignorant about some Git feature/way of using Git that would help?
> Is it worth considering adding to Git a feature like "group of files"
> that would offer some virtutal grouping of the locally changed files
> in the checked-out branch?
Interesting question that came up at my workplace, too.
Here is what I suggested:
1. Keep working on a single branch and make commits for all features
2. If you make a commit, prefix the commit message with the feature name
3. After you are done with a feature create a new feature branch based on
your combined feature branch. Use `git rebase -i`  to remove all
commits that are not relevant for the feature. Alternatively you could
cherry pick the relevant commits  if this is faster.
I wonder what others think about this solution. Maybe there is a better
solution that I overlooked?