Difference between revisions of "Common Git Actions"
Manuele.simi (Talk | contribs) |
Manuele.simi (Talk | contribs) (→How to work on your (forked) repository) |
||
Line 58: | Line 58: | ||
At this point, your local branch master is tracking the remote branch master of the forked repository. | At this point, your local branch master is tracking the remote branch master of the forked repository. | ||
− | + | Make sure that you are on your master branch with: | |
<source lang="bash"> | <source lang="bash"> | ||
$ git checkout master | $ git checkout master |
Revision as of 15:41, 31 May 2019
How to Merge a Feature Branch
Make sure the receiving branch and the merging branch are up-to-date with the latest remote changes. Execute git fetch to pull the latest remote commits. Once the fetch is completed ensure the master branch has the latest updates by executing git pull.
$ git fetch $ git checkout master $ git pull
Once the previously discussed "preparing to merge" steps have been taken a merge can be initiated by executing git merge <branch name> where <branch name> is the name of the branch that will be merged into the receiving branch.
The command below integrates the commits from feature/1234 into the current branch (master) with a fast-forward merge.
$ git merge feature/1234
There might be conflicts to resolve among the files, but if everything goes well, the next step is to check that the commits are now on master with:
$ git log
The last step is to push the commits to the remote repository:
$ git push origin master
How to contribute to a project via Pull Requests (PR)
- Fork the upstream repository into a personal one from the Gitea interface
- Clone the personal repository
- commit/push to your personal repository, then you are ready to create a *pull request*
- From the web interface, go to your forked repository page and click on `pull request`
- From the command line, there is the `git request-pull` command (`git request-pull --help` for details)
- Or you can use the URL that the git command will output when you `git push`. Something like
remote: remote: Create a new pull request for 'andrea.dellamico:master': remote: https://code-repo.d4science.org/InfraScience/ansible-playbooks/compare/master...andrea.dellamico:master remote:
The above URL will get you directly to the pull request interface.
How to work on your (forked) repository
1. If you already checked out the upstream and want to work on the fork instead.
$ git remote rename origin upstream $ git remote add origin YOUR_FORKED_REPOSITORY_URL $ git fetch origin $ git branch --set-upstream-to=origin/master master
At this point, your local branch master is tracking the remote branch master of the forked repository.
Make sure that you are on your master branch with:
$ git checkout master
Now you can make your changes and push them to the forked repo with:
$ git push origin
2. If you are starting from a fresh clone of your fork
The private fork must be linked to the upstream one (this command must be executed once):
$ git remote add upstream ORIGINAL_REPOSITORY_URL
Fetch all the branches of upstream into remote-tracking branches, such as upstream/master:
$ git fetch upstream
Make sure that you are on your master branch:
$ git checkout master
Rewrite your master branch so that any commits of yours that aren't already in upstream/master are replayed on top of that other branch:
$ git rebase upstream/master
Last, push to your fork:
$ git push origin master
If you want to to sync all the remote branches, run
$ git remote update
Pull the upstream changes into your forked repository
$ git pull upstream master
Back to the CI guide.