Basic git workflows
Article on using git collabratively
Use git with a basic forking workflow.
Introduction
Guide to use git with a basic workflow, which will involve:
- forking a repo and making changes
- within fork having a separate branch for features
- merging forks feature branches into central/main repo
Process
fork repo -> locally clone -> new local feature branch created -> branch pushed to forked repo -> open a pull request from the forks new branch to the official repo -> if approved the branch is merged in the official repo
Contribute to open source repo
- fork repo on github
- go to the repositary on github, and fork it under your own username
- clone the repo to your local system
git clone https://github.com/username/<reponame> cd <reponame>
- create a branch for feature
git checkout -b username-feature
-
make changes to files
- stage changes for edited files
git add .
- commit staged files
git commit -m "commit message"
-
push changes to your fork
-u will set the upstream repo, allowing just
git push
in futuregit push -u origin username-feature
-
next, go to the original repo, and make a pull request
merge your feature branch into master branch or the dev branch (if it exists)
Incorporating changes to a fork after upstream changes
Someone else may of made a pull request and had their changes merged, so now your repo doesnt have the latest updates. Somehow these changes need to be pulled down and joined with your fork before you can pull request
- add the original repo as upstream remote and fetch references
git remote add upstream https://github.com/user/forked-repo git fetch upstream
- now need to integrate upstream changes
- method 1, merge the changes
git merge upstream/master master
-
method 2, rebase
replay your local work on top of the fetched branch. make sure you are in the branch you want to rebase if you dont specify it
git rebase upstream/master master
- method 1, merge the changes