Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git releases management

Tags:

git

release

I couldn't find anything what is the "right" approach to manage the releases using git. Say, I have master, release-1, release-2 and release-3 branches. Release 1 is already released and I do only bugfixing and released versions tagging on it. Release 2 is going to be released soon and I develop mostly on this branch while on 3 I develop things which will be needed in the further future.

  1. When I add some feature on release-2 and it should go to 3 as well, but not to 1, should I:

    • merge release-2 to master and cherry-pick feature related commit to release-3?
    • cherry-pick feature related commit to master and than cherry-pick it to release-3?
    • sth else?
  2. When I need to changes sth in all the versions, should I do it on master and cherry-pick it to all the branches?

  3. Should I keep master up to date with the newest(release-3 branch) or rather developer on release-3 and merge to the master just before I will need release-4 branch?

  4. When I fix sth on release-1 or release-2, should I merge or cherry-pick it to master or rather?

I'm not quite sure when should I cherry-pick, when should I merge and if the flow of the code between the branches it right.

like image 736
Maciej Lotkowski Avatar asked Jun 25 '09 06:06

Maciej Lotkowski


People also ask

How do I manage my GitHub releases?

On GitHub.com, navigate to the main page of the repository. To the right of the list of files, click Releases. On the right side of the page, next to the release you want to edit, click . Edit the details for the release in the form, then click Update release.

What are Git releases?

Releases are first-class objects with changelogs. and binary assets that present a full project history beyond Git artifacts. They're accessible from a repository's homepage: Releases are accompanied by release notes and links to download the software. or source code.

How does GitHub implement releases?

At their core, Releases are based on Git tags. Tags mark a specific point in the history of your project, so they're a great way to indicate a Release. Releases are ordered by a tag's date in the following way: If it's an annotated tag, the tag object's date is used.

Are GitHub releases public?

No, currently it's not possible to have public releases in a private repository. Yes, you can use the API to check if there's a new release -- use the releases API: developer.github.com/v3/repos/releases.


1 Answers

See the following posts on Junio C Hamano (git maintainer) blog:

  • Completing a merge
  • Never merging back (about branches forked with intention of not merging back)
  • Resolving conflicts/dependencies between topic branches early
  • Fun with remote branches (1)
  • Fun with remote branches (2)

Take also look at gitworkflows manual page.

like image 96
Jakub Narębski Avatar answered Oct 03 '22 21:10

Jakub Narębski