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"?
231 Views Asked by sr3 At
1
There are 1 best solutions below
Related Questions in GIT
- problem to push files on a repository git
- diff3 output in git conflict style, including mergeable hunks
- Git Not In Sync with Local Branch
- Setting up the version control of .dotfiles while the .config is connected to a forked repo
- How to fix overriding the main branch in Git?
- I can't add text to "Message" in VS Code when committing to Git
- How can i redirect pull request from main branch to another branch
- Xcode commits (possibly outside of any branch) disappeared, how to get them back?
- Git/TortoiseGit : how to apply ONLY the changes from ONE commit from branch A, to branch B?
- How can I reintroduce username an password on git using fedora?
- GIT SKIP EMPTY DIRECTORIES
- Git smudge run once per checkout or per commit?
- I can't find ~/.profile or ~/.bashrc in C:/Users/<user>/.ssh folder
- Set environment variable during push for GitHub Actions
- Android WebRTC compile
Related Questions in GITHUB
- How to update to the latest external Git in Azure Web App?
- Github Pages Deployment deploys a blank page
- Git Not In Sync with Local Branch
- How do I create a test passing badge for my yaml below
- Cant connect to any github repository from my netbeans 20
- How can i redirect pull request from main branch to another branch
- Trying to update the version.go file with the release tag from GitHub actions but its failing
- Encountering Errors Running GitHub Project: Wavelet-pixel domain progressive fusion network for underwater image enhancement - Seeking Assistance
- How can I reintroduce username an password on git using fedora?
- How do I find Github File_ID?
- Forking vs Cloning in GitHub
- I can't find ~/.profile or ~/.bashrc in C:/Users/<user>/.ssh folder
- how to build nextjs app unable to build and deploy
- Plugin with id 'com.android.application' not found in Github Winlator Project
- Git commit asks for passphrase which I don't remember
Related Questions in BRANCHING-AND-MERGING
- git: merging a branch that's already been merged by mistake
- Submodules: git status vs git checkout - untracked files
- what happens when we add origin before master while merging?
- working with feature branches leave working tree dirty
- Git branching strategy for maintaining a stable release while continuing product development
- Plastic SCM missing both Merge and Switch Workspace menu options, using with Unity
- To create a branch from a git tag is a good practice?
- How do I avoid hardcoding a URL to a backend environment when updating both frontend and backend in one ticket using GitLabs CI/CD?
- Query return more data than will fit on a worksheet. I need to do VLOOKUP for 1 Column, but Merge (Left outer) and filtering 1 crash query
- Gitlab flow Long lived environment branches in Mono Repo keeps growing commit log on Pull Request in Azure repos
- Bypass policies when pushing but Prevent commits to Main Branch
- Git dividing branch for new mechanic and updating both of them automatically
- Why do I see divergent branches git errors when merging code?
- Git branching model for working on multiple versions simultaneously in 2023
- Every pull request merge increments behind commits to the main
Related Questions in GITHUB-FLOW
- How to apply hotfix for multiple past releases using 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?
- Several feature branches in the Github Flow
- Creating a new environment per branch with Terraform CI/CD
- Trunk-Based Deployment: How do you avoid Feature Flag Clutter?
- error: Merge failed: Something went wrong during merge: 3:invalid byte sequence in US-ASCII. Please try again. on GitLab
- Development and Production Environments with GitHub flow
- How to merge and tag bugfix for previous release in GitHub flow
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 # Hahtags
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.