gitflow | Git extensions to provide

 by   nvie Shell Version: 0.4.1 License: Non-SPDX

kandi X-RAY | gitflow Summary

kandi X-RAY | gitflow Summary

gitflow is a Shell library. gitflow has no bugs, it has no vulnerabilities and it has medium support. However gitflow has a Non-SPDX License. You can download it from GitHub.

Git extensions to provide high-level repository operations for Vincent Driessen's branching model.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              gitflow has a medium active ecosystem.
              It has 26214 star(s) with 2689 fork(s). There are 593 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 234 open issues and 125 have been closed. On average issues are closed in 898 days. There are 85 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of gitflow is 0.4.1

            kandi-Quality Quality

              gitflow has 0 bugs and 0 code smells.

            kandi-Security Security

              gitflow has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              gitflow code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              gitflow has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              gitflow releases are not available. You will need to build from source code and install.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of gitflow
            Get all kandi verified functions for this library.

            gitflow Key Features

            No Key Features are available at this moment for gitflow.

            gitflow Examples and Code Snippets

            No Code Snippets are available at this moment for gitflow.

            Community Discussions

            QUESTION

            When I merge my release branch into main, and then into dev to incorporate the changes there, my dev says it's X commits ahead, X commits behind. Why?
            Asked 2022-Mar-11 at 16:36

            I'm following the gitflow branching model. I follow the guidelines quite closely.

            • I create a release branch from dev, and make final bugfixes and adjustments there
            • I then merge this into main, and then into dev, and then delete the release branch
            • I use the --no-ff (no fast-forward) flag when merging my release branch into both main and dev
            • the only thing that I currently don't follow is tagging my main from git after incorporating the changes from release into it. Instead I tag it from the GitHub repo using the releases feature.

            However, my dev branch now says this:

            This branch is 1 commit ahead, 1 commit behind main.

            I'm confused by this. It appears that the new merge commit (caused by merging release into dev and main) on each branch is the only difference. Is this supposed to happen? Am I doing something wrong?

            ...

            ANSWER

            Answered 2022-Mar-11 at 16:35

            This is completely fine, and expected in certain situations. Let's walk through what happened:

            1. You created branch release from the tip of develop. At this moment develop and release are identical.
            2. You add some commits with bug fixes to release (or not, it doesn't actually change the outcome for the purposes of this question).
            3. Once you're happy with release, you deploy it and merge it into main using the --no-ff (no fast-forward) flag. This creates a new merge commit on main. So at this moment release and main have identical contents, but main has one extra commit on it.
            4. Now you also merge release back down into develop, also using --no-ff. This creates a new commit on develop that isn't on release or main.
            5. Now you delete release.

            So at this point, develop has at least 1 commit on it that isn't on main, and main has exactly one commit on it that isn't in develop. Presumably you didn't add any commits to develop since creating the release branch, and therefore develop would be exactly 1 commit ahead of main, and exactly 1 commit behind main.

            Note: the next time you do a release branch the same process will occur, but you will end up with 2 commits on main that aren't in develop, and this will continue incrementing until you do your first hotfix branch, which will bring all of those older merge commits back into develop all in one shot. This is expected, but can be confusing the first time you see it.

            Tip: After experiencing the hotfix branch bringing many merge commits back into develop, now when I work in repos that use Git Flow, after merging release into main, I prefer to merge main into develop rather than release into develop. The contents will be identical, but now develop won't be behind main anymore. This also has the added advantage of making it easier to determine if any release branch is fully up to date with main before you deploy it; you simply need to make sure the commit master points to is also in release.

            Source https://stackoverflow.com/questions/71435752

            QUESTION

            How to sort context menu elements in a TreeView in a VS Code extension?
            Asked 2022-Jan-29 at 09:58

            I build a Git Flow Extension.

            In my actions inside view, context menus are sorted alphabetically.

            I want them to be sorted as in the order I entered commands in configuration. How can I control order? I can see that the same action menu of git is well organized yet has separators.

            ...

            ANSWER

            Answered 2022-Jan-28 at 15:49

            Then you have to add them to a group and number the entries

            Source https://stackoverflow.com/questions/70896358

            QUESTION

            What are the correct step by step commands for gitflow workflow?
            Asked 2022-Jan-26 at 04:33
            • What does one complete lifecycle of gitflow look like?
            • Which branch is pushed to production: release or main?

            I have done deep research on this topic. But these were the questions whose answers I couldn't find.
            Any suggestion gratefully received. Thanks in advance.

            ...

            ANSWER

            Answered 2022-Jan-26 at 04:33

            Commonly "master" or "main" is pushed to prod as it's a form of a "stable" release. though this also depends on the type of project/where its used type of deal, internally a company will use the method above, but as an open-source repo it is common for a release to be used instead.

            In my own development experience, a base repo will be created. Developers will make branches for features, hotfixes, etc... etc... and then put a PR into a staging environment which once stable and passes unit tests (via CI/CD) will be deployed.

            Unsure if this helps much, but is what I think when this question is brought up.

            Source https://stackoverflow.com/questions/70858482

            QUESTION

            Should a feature branch of forked repository ever be merged to origin main?
            Asked 2022-Jan-23 at 11:29

            Let's consider, 3 people are working in a project and they are using git. Can the project repository be in any one of their github accounts. Or is it more convenient to host the remote project repository in a new account?

            Now, one of them will work on a feature. So, he will fork the repository, clone it, git, create feature branch, make commits in the feature branch and then git push origin feature. Then, create a merge request from github site
            Then, what should he do?
            Should he merge origin feature branch to origin main? Or delete the feature branch? Or keep it untouched? Should any commit be made in the feature branch after the merge request is accepted and closed.

            At a more broad level, the question is:
            What does workflow look like(what are the conventional steps) when using git in a team project? What is a complete Gitflow cycle?

            Note: Please feel free to edit the question, if u think it is not framed correctly. Also help, if what steps I have enumerated is wrong or some pieces are missing.

            ...

            ANSWER

            Answered 2022-Jan-23 at 11:29

            With Git (and even more with Git + Github) you have a lot of possible workflows for team-based developments, you have to define applicable and usable for your team: everybody have own habits and mileage may|have vary

            You can:

            • Use single repo or forks
            • Use personal repo and add collaborators to it or have "organization" + "org. repo" + "org. members"
            • Use PR (pure GitHub specific) or enable just merge branches
            • Use GitFlow or GitHubFlow or Trunk-based develpment or ...

            Source https://stackoverflow.com/questions/70820514

            QUESTION

            Use Gitflow on two different developers' computer
            Asked 2021-Dec-23 at 13:58

            I use gitflow on my PC to develop my code. The repository is hosted on a self hosted instance of gitlab. The client I'm using is Sourcetree.

            My process to create a new project is to create the main branch of the project on gitlab using its web interface. Then I clone the main branch on my PC and I use the Sourcetree button to initialize gitflow: at the end I have two local branches named main and develop and if I use the tool in Sourcetree to start a new feature it creates the $FEATURE_NAME branch where I can work until I finish the feature and I can use again the Sourcetree tool to end the feature and merge the branch on develop.

            At this point I start working on the develop branch and I push the branch itself on gitlab to enable sharing it.

            Now I'd like to work with gitflow and to take advantage of the sourcetree integration on another PC, but I don't really understand how should I proceed: I can clone the project from gitlab, but I have to choose which branch I want.

            My first tought was to clone the main branch and the develop branch, but then I would miss the Sourcetree gitflow integration: I tried and I don't have the gitflow intialized so I cannot start a new feature from Sourcetree.

            What is the correct procedure I should follow?

            ...

            ANSWER

            Answered 2021-Dec-15 at 15:05

            Git is decentralized. Each developer has their own complete copy of the repository but in order to share code with others you need to sync your changes with a central "origin". GitLab is your "origin".

            Gitflow is about creating a feature branch off of develop and merging it back. But in a distributed model we enhance gitflow by creating a pull-request to merge our feature branches back into develop.

            The recommended flow:

            1. clone the repository
            2. switch to the develop branch
            3. create a feature branch off of develop
            4. push your feature branch to origin
            5. use gitlab to create pull-request for your code
            6. after the pr is completed, switch your local branch to develop
            7. pull the latest from origin
            8. delete the local feature branch

            repeat 3-8 endlessly.

            If you want others to work on your feature, start by cloning the repository. You only need to do this once.

            1. get the latest changes from gitlab: git fetch
            2. switch your branch to the feature branch: git checkout feature/x
            3. use git add / commit / push to update origin with your changes
            4. use git pull to fetch their changes to your machine.

            Source https://stackoverflow.com/questions/70365680

            QUESTION

            How to reproduce old/previous builds in TFS Build?
            Asked 2021-Nov-30 at 09:35

            Environment:

            • TFS 2018 with source code in TFS Git
            • developers are using gitflow-like workflow (main, develop and short-lived feature branches)
            • there is a build definition used for CI (off of develop branch)
            • ... and another one for releases (off of main branch)
            • as project evolves build definitions get updated (new steps, etc)

            What is the best approach that allows reproduction of previous builds (or, at minimum, release builds)? (in case if previously made build was lost in boating accident)

            Ideally I need to be able to plug in version (e.g. 8.5.12345.1) somewhere, press OK and eventually receive data identical to that produced by corresponding build in the past.

            ...

            ANSWER

            Answered 2021-Nov-30 at 09:35

            Your best approach is to switch to YAML builds and releases. That way your pipeline is versioned together with the code.

            If you don't do that, you may need to clone your build and releases every time you make breaking changes.

            Alternatively, use the version diff view in your pipeline to go back to an older version or use the json to create a new definition using the API.

            Upgrading to Azure DevOps Servers 2020 will give you more advanced YAML features not yet available in Team Foundation Server 2018.

            Note: for truly reproducible builds, you'll need to also find a way to lock the build tasks themselves, TFS and Azure DevOps will automatically roll forward to the latest minor version of a given build task. While task authors should try to prevent any breaking changes in those minor upgrades there are no guarantees. You can also never rely on any tool installers that use a v2.x notation or a task that relies on latest. Azure DevOps isn't ideally suited for full reproducible builds.

            You can pin task versions in YAML now, if I remember correctly, this was added in Azure DevOps 2020.

            You can set which minor version gets used by specifying the full version number of a task after the @ sign (example: GoTool@0.3.1). You can only use task versions that exist for your organization.

            See: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/tasks?view=azure-devops&tabs=yaml#task-versions

            The Tasks docs offer special scripts to pin the versions of out-of-the-box tasks as well.

            Source https://stackoverflow.com/questions/70160795

            QUESTION

            "Error occurred while GetObject. S3 Error Code: PermanentRedirect. S3 Error Message: The bucket is in this region: us-east-1
            Asked 2021-Nov-28 at 16:53

            I try to follow this workshop https://gitflow-codetools.workshop.aws/en/, every thing well but when I try to create the lambda usinging cloudformation I got an error:

            ...

            ANSWER

            Answered 2021-Nov-28 at 16:53

            First things first, Lambda and S3 need to be in the same region.

            Secondly, it looks like you're not the bucket owner (you haven't created the bucket yourself by looking at the template).

            This means, the bucket you're using to retrieve the Lambda source code from is (I suppose coming from the workshop), and they decided to create that bucket in the region us-east-1. Enforcing you to also deploy your stack in the region us-east-1 (if you want to follow the workshop).

            But what if you really wanted to deploy this stack to eu-west-1?

            That would mean you need to create a bucket in region eu-west-1 with and copy the objects from the workshop bucket into your newly created bucket and update your CloudFormation template to point and retrive the Lambda source code from your newly created bucket (note you might need to name the bucket differently as bucket names are globally shared).

            I hope this is a bit clear.

            Source https://stackoverflow.com/questions/70144855

            QUESTION

            Gitflow - Why does no editor open when I finish a feature branch?
            Asked 2021-Nov-03 at 16:52

            I use gitflow on linux.

            When I finish a hotfix branch, my vi editor opens and I can write a merge message. The merge message is now in the commit history.

            But when I finish feature branches, no vi editor opens, I can't write no merge message. So there is no trace in the commit history.

            It's annoying. Could someone explain me why ? Is it a config problem ?

            To create a feature branch: git flow feature start feature_branch.

            To finish a feature branch: git flow feature finish feature_branch. According the doc finish is similar to: git checkout develop git merge feature_branch

            ...

            ANSWER

            Answered 2021-Nov-03 at 16:52

            Although I've been using the Git Flow branching strategy for years, I confess I've never used the git flow commands before, but I just tested them out and can confirm what you're witnessing, though some clarifications are in order.

            As best I can tell, you aren't ever prompted to write a commit message for any of the merge commits. However, when you finish a hotfix or release branch, you are prompted to write the Tag message, which happens to also be included in the merge commit message details (below the commit title), so it may look like you were writing the merge commit message. Since only releases and hotfixes are tagged, this is why you aren't prompted with an editor when you finish feature branches.

            Regarding the --no-ff merges, the following rules are in place:

            1. When finishing a release or hotfix branch, the merge is always performed with the --no-ff flag.
            2. When finishing a feature branch that has 2 or more new commits, the merge is performed with the --no-ff flag.
            3. When finishing a feature branch that has exactly 1 new commit, the merge is performed with the --ff flag (which is also the default for merge).

            Note that using -ff in the third rule means it will do a fast-forward if possible, meaning the merge commit is sometimes avoided, which is interesting because AFAIK this isn't suggested anywhere in the Git Flow documentation. It does make sense though since there is no information gain from forcing a merge commit when you only have a single commit to merge in. It still stays true to the --first-parent view of the develop branch showing all completed feature branches.

            Side Note: when I personally use Git Flow, I always force the merge commit even for single commit merges, because I put additional PR information in the customized merge commit messages. This is one of the reasons I don't use the git flow commands. (Besides, our SCM tool handles the merges of completed Pull Requests anyway, so no one would "finish" anything themselves.)

            Source https://stackoverflow.com/questions/69720619

            QUESTION

            GitFlow: How to maintain previous releases?
            Asked 2021-Oct-26 at 18:07

            I am currently working on a workflow for my team. A suggestion we received was to use the GitFlow scheme. This scheme can be put on a chart as follow:

            However, I have one question about how to manage a specific case. Because of our activities, we have to maintain previous versions that our customer may still be using and does not want to update for various reasons.

            In the GitFlow scheme, the trunk is supposed to be where the releases happens. A commit in the trunk is a potentially ship-able product and should receive a version tag.

            So ... how can I go back in time, produce a fix for an older version and merge it back in the trunk in order to produce that release ?

            An another question if I do not want that fix to be brought back in the trunk ?

            It seems to me that this workflow is more adapted to software that continually pushes new versions to their customers, such as mobile apps, but not industrial products, even if they are built from a CI. But maybe I am missing something here, hence my question

            ...

            ANSWER

            Answered 2021-Oct-26 at 18:07

            Let's break apart your question into two parts:

            how can I go back in time, [to] produce a fix for an older version ?

            Your question mark in your second diagram is exactly right for this. Simply find the tag of the release you wish to modify, branch off of it (perhaps naming it something like hotfix/1.1.1), and commit your new changes. Then tag that "release".

            For your second half of the question:

            how can I ... merge it back in the trunk ?

            And especially what if:

            I do not want that fix to be brought back in the trunk ?

            If you do wish to integrate that hotfix into trunk, it's easy- just merge it in (and if you have conflicts resolve them as you normally would).

            If you don't wish to integrate that hotfix into trunk, you have some options:

            1. Keep your hotfix/1.1.1 around indefinitely. Branches are super cheap and this is a valid strategy that many companies use. (In fact many companies do away with the master branch altogether in a Git-Flow-Like strategy and just keep their release/ branches around indefinitely.) If you go this route you might someday have many remote branches, in which case I would recommend using the pseudo directory slash character (/) in your branch name as suggested with hotfix/1.1.1. Many Git clients enable you to roll up your branches by pseudo directory so you don't have to look at hundreds of branches that don't interest you (by collapsing the hotfix/ directory in the view.)
            2. My personal preference is not to keep lots of hotfix branches around forever, so instead you can get a little fancy and merge the hotfix branch back into trunk, but tell Git to ignore the change. After doing this you can delete the hotfix branch since all the information is contained in the new tagged commit in trunk.

            Here's how to merge a branch without taking the changes:

            Source https://stackoverflow.com/questions/69725913

            QUESTION

            How to tag a branch for release?
            Asked 2021-Sep-21 at 16:42

            I created a repo in github and cloned it in my local machine. then i created a development branch in my local machine and then pushed it ( sample below). i want to create a feature branch from the development and once merged to development , i want to create/tag it for a release which gets merge to master. do i need extensions like gitflow for that or can i do that without?

            I haven't tried the gitflow extension yet.

            ...

            ANSWER

            Answered 2021-Sep-21 at 16:42

            Creating an annotated tag in Git is simple. The easiest way is to specify -a when you run the tag command:

            Source https://stackoverflow.com/questions/69272483

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install gitflow

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/nvie/gitflow.git

          • CLI

            gh repo clone nvie/gitflow

          • sshUrl

            git@github.com:nvie/gitflow.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link