background preloader

Using git-flow to automate your git branching workflow

Using git-flow to automate your git branching workflow
Vincent Driessen's branching model is a git branching and release management strategy that helps developers keep track of features, hotfixes and releases in bigger software projects. This workflow has lot of commands to type and remember, though, so there's also the git-flow library of git subcommands that helps automate some parts of the flow to make working with it a lot easier. After installing git-flow (brew install git-flow), you can start using git-flow in your repository by using it's init command. You can use it in existing projects, but let's start a new repository: $ git flow init Initialized empty Git repository in ~/project/.git/ No branches exist yet. Base branches must be created now. git-flow is just a wrapper around existing git commands, so the init command doesn't change anything in your repository other than creating branches for you. If you run git branch after setting up, you'll notice that you switched from the master branch to a new one named develop.

Related:  GitGit howtomtd

A successful Git branching model » In this post I present the development model that I’ve introduced for some of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management. It focuses around Git as the tool for the versioning of all of our source code. (By the way, if you’re interested in Git, our company GitPrime provides some awesome realtime data analytics on software engineering performance.) Why git?

Ask a Swiss: 12 advanced Git commands I wish my co-workers would know © xkcd Once you have internalized the basic work flow, Git is a powerful tool for distributed version control that offers a lot of advantages over more clunky alternatives like SVN. You clone, you pull, you commit, you push; nothing simpler than that. Right. But then you find yourself stuck with a merge conflict, and git sends you down the rabbit hole. Team Collaboration With GitHub GitHub has become the corner stone for all things open source software. Developers love it, collaborate on it and are constantly building awesome projects through it. Apart from hosting our code, GitHub's main attraction is using it as a collaborative tool.

Nick Farina - Git Is Simpler Than You Think It was about one year ago that we switched to Git. Previously, we used Subversion, through the Mac app Versions, which (rightly) holds an Apple Design Award. I made the executive decision to leave our comfy world of Versions because it seemed clear that Git was winning the Internet. There was much grumbling from my teammates, who were busy enough doing actual work thank you very much. But I pressed forward. Scrum Lego City With the Scrum Lego City from agile42 you can find out how powerful Scrum can be. Scrum Lego City by agile42 is licensed under a Creative Commons Attribution-Share Alike 3.0 License. LInk to buy the Material

Git Workflows Why use git? Git is an extremely powerful source control system. Its power lies in its speed and flexibility, but this can also be a point of confusion for many new users. Conversational Git: The Friendly Introduction to Git This post is an excerpt from my new book, Conversational Git. The entire book is available online and its source is on GitHub. It’s designed to be a quick, accessible introduction for experienced developers. I’d be delighted to hear what others think. I recently had some close friends talk about their hesitation in adopting Git as opposed to continuing to work with Subversion.

What is version control? Version control systems are a category of software tools that help a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members. For almost all software projects, the source code is like the crown jewels - a precious asset whose value must be protected. Git: Interactively Stage Portions of a Single Changed File for Commit Using git add -p The thing which makes Git powerful as a version control system is its flexibility, and the many ways exposed by the Git API to get things done. Of course, this is also what can make Git challenging to learn and use. There are so many options available that it can be difficult to know how to approach a specific problem. On top of that, the Command Line Interface (CLI) for Git, and the underlying API employ a syntax which is . . . inconsistent at times, and definitely not intuitive for the uninitiated. Image by Kai Yan, Joseph Wong, Some Rights Reserved

Simulation Scrum avec LEGO v2 Skip to main content guest Join | Help | Sign In Wiki @Ayeba Home What a Branch Is To really understand the way Git does branching, we need to take a step back and examine how Git stores its data. As you may remember from Chapter 1, Git doesn’t store data as a series of changesets or deltas, but instead as a series of snapshots. When you commit in Git, Git stores a commit object that contains a pointer to the snapshot of the content you staged, the author and message metadata, and zero or more pointers to the commit or commits that were the direct parents of this commit: zero parents for the first commit, one parent for a normal commit, and multiple parents for a commit that results from a merge of two or more branches. To visualize this, let’s assume that you have a directory containing three files, and you stage them all and commit. Staging the files checksums each one (the SHA-1 hash we mentioned in Chapter 1), stores that version of the file in the Git repository (Git refers to them as blobs), and adds that checksum to the staging area: Figure 3-1.

GIT: Using the stash I bet the following has happened to you: you are happily working on a project and are in the middle of something. You are not ready to commit your changes, because you your tests don’t pass yet. Then your client calls with a bug report that needs to be fixed right now. (You know how clients can be.) So, what do you do?

ignoring files committed 19 Jan 2009 We don’t need Git to version everything in our projects, be it compiled source, files with passwords, or temporary files that editors love to create. Usually keeping stuff out of your VCS’ hands is a task that is hard to manage and annoying to set up. Not with Git! Using the .gitignore file along with some other options, we’re going to learn how to set up per-project and per-user ignores. How to Git Open Atrium UPDATE: "Open Atrium has moved from its single monolitic repository to an install profile and a drush make based build system. This is a change that primarily effects developers. The complete, ready to install, download will continue to be offered at Details here. Thanks, Jeff. I've been playing around with the Open Atrium project (Features rule!), which is a very cool Drupal-based intranet distribution created by those smarty-pants over at Development Seed.