Git merge to master from branch
While, git can perform most integrations automatically, some changes will result in conflicts that have to be solved by the user. Note this part: I want to prevent. You can also merge branches into your local private branches if that's your preference, but be aware that it will result in "foreign" commits in your branch. In contrast, merging master into his branch would precisely do what he specifically does not want to happen : adding a commit that is not related to the feature implementation he is working on via his branch.
So, when we suspect there would some conflicts, we can have following git operations: git checkout test git pull git checkout master git pull git merge -no-ff -no-commit test Test merge before commit, avoid a fast-forward commit by -no-ff. So the best method is we have to use rebase instead of merge (suppose, when in this time, we have solved the branch conflicts). Then, to perform the merge, simply specify which branch's commits you want to integrate: git checkout develop git merge feature/login Tip Easy Branching Merging in Tower In case you are using the Tower Git client, merging branches.
Usage Examples Before using "git merge make sure the correct local branch is checked out. Important Options -no-ff Creates a merge commit even when a fast-forward would be possible.
The only thing you need to avoid is: never use rebase on public branch, like master branch. In case of a merge conflict, Tower's unique "Conflict Wizard" helps you solve the problems in an easy, visual way: Learn More. You should be able to rebase your branch on master: git checkout feature1 git rebase master, manage all conflicts that arise.
To address the users that read the question title, skip over the actual content and context of the question, and then only read the top answer blindly assuming it will always apply to their (different) use case, allow. The branch that receives changes) is always the currently checked out, hEAD branch.
Changing the name of a branch like master/main/mainline/default will break the integrations, services, helper utilities and build/release scripts that your repository uses. For a more detailed discussion, take a look at the Git book documentation on git rebase ( m/docs/git-rebase ) which cover this exact use case. The "merge" command is used to integrate changes from another branch.
You've pushed the branch to open a pull request, but there are now conflicts with master, and you need to update your branch to resolve those conflicts) you'll need to merge them in (e.g. That only exist in your local repository and haven't been shared with others). Commits on my feature branch which have no relation to the feature implementation. Like git checkout master git pull origin master git merge test git push origin master, this approach has two issues : It's unsafe, because we don't know if there are any conflicts between test branch and master branch.
Edit for additional context This answer was provided specifically for the question asked by @theomega, taking his particular situation into account. Rebasing shared branches would "break" the copies other people may have. Rebasing his private branch on master is exactly what will yield that result.