Convert Figma logo to code with AI

nvie logogitflow

Git extensions to provide high-level repository operations for Vincent Driessen's branching model.

26,826
2,657
26,826
320

Top Related Projects

AVH Edition of the git extensions to provide high-level repository operations for Vincent Driessen's branching model

Git-Tutorials GIT基本使用教學 :memo:

Quick Overview

GitFlow is a branching model and set of Git extensions designed to provide a robust framework for managing larger projects. It defines a strict branching structure centered around project releases, allowing teams to organize their development process more efficiently and maintain a clean project history.

Pros

  • Provides a clear, structured workflow for managing complex projects
  • Facilitates parallel development and collaboration among team members
  • Supports the management of multiple versions and hotfixes
  • Enhances release management and versioning processes

Cons

  • Can be overly complex for smaller projects or teams
  • Requires a learning curve and team buy-in to implement effectively
  • May lead to long-lived feature branches, potentially causing integration issues
  • Some argue it doesn't align well with continuous delivery practices

Getting Started

To start using GitFlow, follow these steps:

  1. Install GitFlow:

    # On macOS with Homebrew
    brew install git-flow-avh
    
    # On Linux
    apt-get install git-flow
    
  2. Initialize GitFlow in your repository:

    git flow init
    
  3. Start a new feature:

    git flow feature start my-new-feature
    
  4. Finish a feature:

    git flow feature finish my-new-feature
    
  5. Create a release:

    git flow release start 1.0.0
    git flow release finish 1.0.0
    

For more detailed instructions and advanced usage, refer to the official GitFlow documentation.

Competitor Comparisons

AVH Edition of the git extensions to provide high-level repository operations for Vincent Driessen's branching model

Pros of gitflow-avh

  • More actively maintained with regular updates and bug fixes
  • Includes additional features like support for Git submodules and improved tag management
  • Better compatibility with newer Git versions and operating systems

Cons of gitflow-avh

  • Slightly more complex installation process compared to the original gitflow
  • Some users report occasional issues with certain edge cases or specific Git configurations

Code Comparison

gitflow:

git flow feature start my-feature
git flow feature finish my-feature

gitflow-avh:

git flow feature start my-feature
git flow feature publish my-feature
git flow feature finish my-feature

The main difference in usage is the additional publish command available in gitflow-avh, which allows for easier collaboration on feature branches.

Both repositories implement the Git Flow branching model, but gitflow-avh offers more features and active development. While the original gitflow is simpler, it lacks some modern Git functionality. gitflow-avh provides a more robust solution for teams requiring advanced Git Flow capabilities, despite a slightly steeper learning curve.

Git-Tutorials GIT基本使用教學 :memo:

Pros of Git-Tutorials

  • More comprehensive tutorial covering various Git concepts and workflows
  • Includes practical examples and step-by-step guides for beginners
  • Regularly updated with new content and community contributions

Cons of Git-Tutorials

  • Less focused on a specific Git workflow compared to Gitflow
  • May be overwhelming for users looking for a standardized branching model
  • Lacks specialized tools or scripts for implementing a particular workflow

Code Comparison

Git-Tutorials example (basic branching):

git checkout -b feature_branch
# Make changes
git add .
git commit -m "Add new feature"
git push origin feature_branch

Gitflow example (feature branch):

git flow feature start new_feature
# Make changes
git add .
git commit -m "Add new feature"
git flow feature finish new_feature

While Git-Tutorials provides general Git usage examples, Gitflow offers a more structured approach with specialized commands for managing feature branches within its workflow.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

git-flow

A collection of Git extensions to provide high-level repository operations for Vincent Driessen's branching model.

Getting started

For the best introduction to get started with git flow, please read Jeff Kreeftmeijer's blog post:

http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/

Or have a look at one of these screen casts:

Installing git-flow

See the Wiki for up-to-date Installation Instructions.

Integration with your shell

For those who use the Bash or ZSH shell, please check out the excellent work on the git-flow-completion project by bobthecow. It offers tab-completion for all git-flow subcommands and branch names.

FAQ

See the FAQ section of the project Wiki.

Please help out

This project is still under development. Feedback and suggestions are very welcome and I encourage you to use the Issues list on Github to provide that feedback.

Feel free to fork this repo and to commit your additions. For a list of all contributors, please see the AUTHORS file.

Any questions, tips, or general discussion can be posted to our Google group: http://groups.google.com/group/gitflow-users

Contributing

Fork the repository. Then, run:

git clone --recursive git@github.com:<username>/gitflow.git
cd gitflow
git branch master origin/master
git flow init -d
git flow feature start <your feature>

Then, do work and commit your changes. Hint: export PATH=`pwd`:$PATH from within the gitflow directory makes sure you're using the version of gitflow you're currently developing.

git flow feature publish <your feature>

When done, open a pull request to your feature branch.

License terms

git-flow is published under the liberal terms of the BSD License, see the LICENSE file. Although the BSD License does not require you to share any modifications you make to the source code, you are very much encouraged and invited to contribute back your modifications to the community, preferably in a Github fork, of course.

Initialization

To initialize a new repo with the basic branch structure, use:

	git flow init [-d]

This will then interactively prompt you with some questions on which branches you would like to use as development and production branches, and how you would like your prefixes be named. You may simply press Return on any of those questions to accept the (sane) default suggestions.

The -d flag will accept all defaults.

Creating feature/release/hotfix/support branches

  • To list/start/finish feature branches, use:

      git flow feature
      git flow feature start <name> [<base>]
      git flow feature finish <name>
    

    For feature branches, the <base> arg must be a commit on develop.

  • To push/pull a feature branch to the remote repository, use:

      git flow feature publish <name>
        git flow feature pull <remote> <name>
    
  • To list/start/finish release branches, use:

      git flow release
      git flow release start <release> [<base>]
      git flow release finish <release>
    

    For release branches, the <base> arg must be a commit on develop.

  • To list/start/finish hotfix branches, use:

      git flow hotfix
      git flow hotfix start <release> [<base>]
      git flow hotfix finish <release>
    

    For hotfix branches, the <base> arg must be a commit on master.

  • To list/start support branches, use:

      git flow support
      git flow support start <release> <base>
    

    For support branches, the <base> arg must be a commit on master.

Showing your appreciation

A few people already requested it, so now it's here: a Flattr button.

Of course, the best way to show your appreciation for the original blog post or the git-flow tool itself remains contributing to the community. If you'd like to show your appreciation in another way, however, consider Flattr'ing me:

Flattr this