Skip to content

Add Learn Git Branching #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ Potential Topics--

- Software Tools
1. Git
1. Git Workflows
1. [Git branch](https://github.com/learning-software-engineering/learning-software-engineering.github.io/blob/main/Topics/Software_Tools/Git/Git_Branching.md)
2. Git Workflows

- Software Engineering
1. Methodologies & Frameworks
1. Agile
Expand All @@ -38,6 +40,7 @@ Potential Topics--

- Development Process
1. GitFlow
1. [Git branch](https://github.com/learning-software-engineering/learning-software-engineering.github.io/blob/main/Topics/Software_Tools/Git/Git_Branching.md)
2. Trunk-based Development
3. Coding Standards
4. Pull-requests
Expand Down
35 changes: 35 additions & 0 deletions Topics/Development_Process.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,40 @@
## Resources for Development Process


### Git Flow:
#### Git Branching
* [Learn Git Branching](https://learngitbranching.js.org/)
* **Learn Git Branching** is an interactive websites that teaches git branching concepts/commands through visualization. The website cover local and remote Git concepts, including cherry-picking, rebasing, fetching, pushing etc. The interactive learning experience allows CSC301 student learn by doing challeges and exercises. The visualization helps student understand abstract git concepts, including git history and git branching. Thus, Learn Git Branching is a great resource for anyone looking to learn Git and improve their Git skills.
* Feel free to checkout their GitHub: [Learn Git Branching GitHub](https://github.com/pcottle/learnGitBranching), as they have provided some website instruction including levels and sandbox mode. You can also contribute to it if you are interested.
* Main
* ```git commits -m "[MESSAGE]"```
* Records a snapshot of the state of the repository
* When commit is made, you stage the changes and then commit them
* The command create a new commit that includes the changes you have made, along with a messages that describe the changes
* Maintain a history of commits that were made (Use ```git log``` to see full commit history)
* ```git branch [BRANCH NAME]```
* Pointers to specific commit
* Developer can work on a specific feature or bug fix on a branch before merging with the main branch
* ```git checkout [BRANCH NAME]```
* Move to [BRANCH NAME]
* ```git checkout -b [BRANCH NAME]```: Create a new branch and check it out at the same time
* ```git merge [BRANCH NAME]```
* Combining branches into a single branch
* Merging the current branch with [BRANCH NAME]
* Three possible outcomes, including fast forward merge, recursive merge, merge conflict
* ```git rebase [BRANCH NAME]```
* Another way to combine work between branches
* Move the entire branch to [BRANCH NAME], apply changes on the current branch to [BRANCH NAME]
* Produce a linear sequence of commit, commit history will be cleaner

* Remote
* ```git fetch```
* Download commits from remote that are missing in local repository
* Note that it does not change any of your local files
* ```git pull```
* fetching remote changes and merging it to the current state


### [Django Project Deployment: AWS, Vercel, and Railway](./Development_Process/Django_Deployment_AWS_Railway_Vercel.md)
### [Automated Frontend Deployment with Vercel](./Development_Process/Frontend_Automated_Deployment_Vercel.md)
### [Quality Assurance Testing](./Development_Process/QA_testing.md)
Expand Down
31 changes: 31 additions & 0 deletions Topics/Software_Tools/Git/Git_Branching.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Git Branching
* [Learn Git Branching](https://learngitbranching.js.org/)
* **Learn Git Branching** is an interactive websites that teaches git branching concepts/commands through visualization. The website cover local and remote Git concepts, including cherry-picking, rebasing, fetching, pushing etc. The interactive learning experience allows CSC301 student learn by doing challeges and exercises. The visualization helps student understand abstract git concepts, including git history and git branching. Thus, Learn Git Branching is a great resource for anyone looking to learn Git and improve their Git skills.
* Feel free to checkout their GitHub: [Learn Git Branching GitHub](https://github.com/pcottle/learnGitBranching), as they have provided some website instruction including levels and sandbox mode. You can also contribute to it if you are interested.
* Main
* ```git commits -m "[MESSAGE]"```
* Records a snapshot of the state of the repository
* When commit is made, you stage the changes and then commit them
* The command create a new commit that includes the changes you have made, along with a messages that describe the changes
* Maintain a history of commits that were made (Use ```git log``` to see full commit history)
* ```git branch [BRANCH NAME]```
* Pointers to specific commit
* Developer can work on a specific feature or bug fix on a branch before merging with the main branch
* ```git checkout [BRANCH NAME]```
* Move to [BRANCH NAME]
* ```git checkout -b [BRANCH NAME]```: Create a new branch and check it out at the same time
* ```git merge [BRANCH NAME]```
* Combining branches into a single branch
* Merging the current branch with [BRANCH NAME]
* Three possible outcomes, including fast forward merge, recursive merge, merge conflict
* ```git rebase [BRANCH NAME]```
* Another way to combine work between branches
* Move the entire branch to [BRANCH NAME], apply changes on the current branch to [BRANCH NAME]
* Produce a linear sequence of commit, commit history will be cleaner

* Remote
* ```git fetch```
* Download commits from remote that are missing in local repository
* Note that it does not change any of your local files
* ```git pull```
* fetching remote changes and merging it to the current state