Trick #4: Backporting With Patches Using Git Diff

When handling a flow with a release branch it might be necessary to backport certain changes. This can be easily done with:

1

git difforigin/master..branch--lib/feature.rb>feature.patch

followed by applying the patch on the current HEAD:

1

patch-p1<feature.patch

Afterwards you need to commit the changed files.

Trick #5: Using Pull-Requests And The Power Of The Force

Working with feature-branches can be a hassle. However, if your process or team distributions leads you towards this process, be sure to utilize pull requests on Github. When you push a new branch and visit the project on Github afterwards, Github will ask you whether you want to open a pull-request for the feature branch.

A pull-request is basically a web-annotation for the branch and a signal to the other developers on the project that this particular branch of features wants to become part of the master branch.

This can be helpful for code-reviews or as a documentation for the introduced changes.

When the feature-branch is up-to-date with master – meaning it contains all commits of master and is rebased upon master (all the branch’s commits come after the commits in master in the branch’s history), it can be automatically-merged on Github. If this fails ask the branch’s committers to rebase the master. They should be the best to decide how the new code fits in.

Force-pushing to the feature-branch updates the pull-request as well. So it can be a good idea to squash the commits in a feature branch to a single commit in order to reduce rebasing-pain with master.

Be aware that force pushing to origin/master is generally a bad idea. Especially if you are not alone on a project, since this may actively change the history of the branch.

Usually by improving his or her git-skills a developer using git will save valuable time that could be better spent on programming.

Be sure to subscribe and receive all updates from the PhraseApp blog straight to your inbox. You’ll receive localization best practices, about cultural aspects of breaking into new markets, guides and tutorials for optimizing software translation and other industry insights and information. Don’t miss out!