So GitHub Flow seems to advocate keeping the main branch as the only permanent branch and sprouting off and merging ephemeral feature branches. It also says main should "always be deployable". What do you do while you're still building towards your first deployment? Do it all in one feature branch and then merge that into main, or just not worry about it and have non-deployable code in main for a while?
What to do with GitHub Flow before initial deployment so main branch is "always deployable"?
229 Views Asked by sr3 At
1
There are 1 best solutions below
Related Questions in GIT
- Push mysql database script to server using git
- Git show's file path
- Git > diffs filtered, show only certain changed classes/files
- Pushing to git repository hosted by Visual studio online without entering user name and password
- How do I create my own Git branch to work on?
- Git init --bare giving error fatal: Out of memory? mmap failed: No such device
- Sub-directory into independent repository and later merge back into main repository
- How to find the Git Revision Hash in a synced SVN repo using SubGit?
- eclipse errors when try to change to master git branch
- How to have Heroku build my development branch on a staging server?
- Is "Merged in" a commit message created by bitbucket, or git?
- Git: Multiple projects under one directory
- Permission denied hg-git
- Is it possible to clone a private git repo without adding ssh keys
- Track file in master repository which is ignored in submodule
Related Questions in GITHUB
- How do I create my own Git branch to work on?
- Tools for Apache Cordova - Installed Plugins are skipped in build
- Permission denied hg-git
- git hard reset - what am I doing wrong?
- Merge Pull Request Manually
- rebasing interactively, but only one commit shows up?
- Error when adding a new build stage on Bluemix DevOps Services
- What should I do if I put MS Office (e.g. .docx) or OpenOffice( e.g. .odt) document into a git repository?
- How to trigger git hooks without pushing to the repo
- How to push a Git server repository issues to Github repository?
- How to backup an AOSP project on GitHub
- How to reference comments in github.com?
- Aptana, github & remote (sftp) files
- Opening PDF in a browser with Github Pages
- I need git to include the parent directory
Related Questions in BRANCHING-AND-MERGING
- What is the best branching strategy in TFS to share code between multiple team projects?
- How do I create a deploy git branch for my Yeoman project?
- Can I use `diff ...` as an indicator for branch cleanup?
- Create branch afterwards, apply tags and use specific commit for both branches
- Migrate SVN to git with cleanup
- What tools are there to visualise the merge structure of dozens of git branches?
- development branch with multiple parallel releases
- Basic; commit, change branch, merge, switch branch, continue
- Git hub : Issue pushing changes to remote server through Xamarin Studio
- How can QA test multiple features at once with feature branching in Gitflow workflow?
- Team Foundation Server best practice, branch "common" project or grant permission?
- TFS Create Main and Development branch from existing team project
- Can TFS & Visual studio generate branch timeline diagrams?
- Feature branches in remote not getting deleted
- Git Move Not-Pushed Commit from temp to master branch
Related Questions in GITHUB-FLOW
- Trunk-Based Deployment: How do you avoid Feature Flag Clutter?
- Creating a new environment per branch with Terraform CI/CD
- Several feature branches in the Github Flow
- How to merge and tag bugfix for previous release in GitHub flow
- Development and Production Environments with GitHub flow
- What to do with GitHub Flow before initial deployment so main branch is "always deployable"?
- What are the correct step by step commands for gitflow workflow?
- How to apply hotfix for multiple past releases using Github Flow
- error: Merge failed: Something went wrong during merge: 3:invalid byte sequence in US-ASCII. Please try again. on GitLab
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Note: Branching strategies are just guidelines.
GitHub Flow works best with CI/CD, which usually means you will deploy soon after features are merged. In theory you may have to lock down the
mainbranch temporarily between validating what you're about to deploy, and when you deploy it, so that nothing slips intomainduring that time that hasn't yet passed the fully integrated validation. If your release cycle is fast enough this is relatively low impact.However, if you have a long release and/or validation cycle you may want to look at other workflows. Perhaps the most common alternative from which many other flows are based, is Git Flow, which allows for taking time to harden and validate release branches, as well as simultaneous development of new features while the release branch is baking, without requiring code freezes.
Another good alternative is gitworkflows. The basic idea here is you make a temporary copy of
main, callednext, which is used for partial integration testing until your feature branches are ready to merge intomain, and then periodically you resetnextback tomainto clear out the old commits that didn't make the final cut.At my organization we use all 3 of these workflows (and others), and the choice mostly depends on the length of the release cycle of each product.
If you have a long(ish) release cycle and wish to stay with GitHub Flow, you could do as you suggested and use an extended feature branch. Note if you do this it would technically be more accurate to call it a "release" branch, since multiple "features" would likely be present on it. At this point you wouldn't really be doing GH Flow anymore, but I'm pretty sure the Git Branching Strategy Police won't come knocking on your door.