Site Tools


marc:linux:git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
marc:linux:git [2022/07/25 16:03] – [Forking] marcvmarc:linux:git [2022/08/09 09:46] (current) – [Rebasing vs Merging] marcv
Line 1069: Line 1069:
  
 When we want to fork a Github repository we do NOT clone it! Instead, look for the button top right **Fork**! {{ :marc:linux:fork.png?direct&200|}} When we want to fork a Github repository we do NOT clone it! Instead, look for the button top right **Fork**! {{ :marc:linux:fork.png?direct&200|}}
 +
 +=== Forking Workflow ===
 +
 +{{:marc:linux:forking_workflow.png?direct&700|}}
 +
  
 The workflow now would be: The workflow now would be:
   - Fork a repository   - Fork a repository
   - Clone the forked repository to your local machine   - Clone the forked repository to your local machine
-  - Add upstream remote (original repository) +  - Add upstream remote (original repository): ''**git remote add upstream url_original_remote**'' 
-  - Work on the code (remember feature branches)+  - Work on the code (**remember feature branches**)
   - Commit locally   - Commit locally
-  - Push to remote (forked repository)+  - Push to remote (**forked repository**)
   - Make a Pull Request for the maintainers   - Make a Pull Request for the maintainers
-  - If PR is accepted and merged into upstream main: pull upstream+  - If PR is accepted and merged into upstream main: **pull upstream**
  
 Besides forking and working on our own repository, we also would want to link to the original repository to fetch changes made by other developers on the repository: Besides forking and working on our own repository, we also would want to link to the original repository to fetch changes made by other developers on the repository:
Line 1091: Line 1096:
  
 We can easily make a PR or examine the differences from here! We can easily make a PR or examine the differences from here!
 +
 +====== Git Rebase ======
 +
 +Very useful as long as you know when NOT to use it!
 +
 +Rebasing can be used:
 +  - as an alternative to merging branches
 +  - as a cleanup tool
 +
 +
 +===== Rebasing vs Merging ===== 
 +
 +Imagine you are working on a feature branch while a lot of other people are working on other features. While you are working on your feature branch, the remote main branch gets keeping changed with changes made by other developers. You would want to merge these changes into your local feature branch.
 +
 +{{:marc:linux:rebasing1.png?direct&700|}}
 +
 +Because of these merges, there are a lot commits which are not really functional but just merges. The same goes for the other developers.
 +
 +Instead of merging the changes from remote main all the time, we can //rebase// which rewrites history:
 +
 +{{:marc:linux:rebase2.png?direct&700|}}
 +
 +
 +===== Git Rebase Basics ===== 
 +
 +===== When NOT to Rebase ===== 
marc/linux/git.1658757793.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki