Faster-Git
A tutorial of Git
| Task Information |
|---|
| Task01: Git Basics: Chapters 1-2 (2 days) |
| Task02: Git Branch Management and Tools: Chapters 3-4 (2 days) |
| Task03: Git Internals and Workflow Practice: Chapters 5-6 (3 days) |
| Task04: Git Commit Conventions and GitHub/Gitee: Chapters 7-8 (3 days) |
| Task05: Git GUI Tools and Team Collaboration: Chapters 9-10 (3 days) |
Course Contributors: (In no particular order, sorted by chapter)
| Member | Profile | Responsible Chapters |
|---|---|---|
| Niu Zhikang | Datawhale member, Undergraduate at Xidian University | lecture01, lecture03 |
| Zhu Songqing | Datawhale member, Graduate student at Shanghai Jiao Tong University | lecture02 |
| Xu Xiangjun | Working professional, Internet finance, Backend development | lecture04 |
| Li Bihan | Datawhale member, Working professional | lecture05 |
| Song Zeshan | Datawhale member, Algorithm developer | lecture06 |
| Wang Xiaoliang | Datawhale member, Working professional | lecture07 |
| Zhang Xiangyu | Graduate student at East China Normal University | lecture08 |
| Shen Hao | Datawhale member, PhD candidate in Cybersecurity at Fudan University | lecture09 |
| Xia Jun | Datawhale member, Graduate student at Shanghai Jiao Tong University | lecture10 |
| Fu Xieyi | Datawhale contributor, Graduate student at HKUST(GZ) | Website Architecture & Internationalization |
The main branch is main
For issues or additional materials related to this project, we encourage everyone to submit PRs and issues, and we will respond shortly. This project uses the Forking workflow. For details, refer to the Atlassian documentation
The general steps are as follows:
upstream repository address and disable pushlecture{#NO}, where #NO is kept as two digits, such as lecture07, corresponding to the course directoryCommand examples:
# fork
# clone
git clone git@github.com:USERNAME/faster-git.git
# set upstream
git remote add upstream git@github.com:datawhalechina/faster-git.git
# disable upstream push
git remote set-url --push upstream DISABLE
# verify
git remote -v
# some sample output:
# origin git@github.com:tomowang/faster-git.git (fetch)
# origin git@github.com:tomowang/faster-git.git (push)
# upstream git@github.com:datawhalechina/faster-git.git (fetch)
# upstream DISABLE (push)
# do your work
git checkout -b lecture07
# edit and commit and push your changes
git push -u origin lecture07
# keep your fork up to date
## fetch upstream main and merge with forked main branch
git fetch upstream
git checkout main
git merge upstream/main
## rebase brach and force push
git checkout lecture07
git rebase main
git push -fCommit messages should use the following format: <type>: <short summary>
<type>: <short summary>
│ │
│ └─⫸ Summary in present tense. Not capitalized. No period at the end.
│
│
└─⫸ Commit Type: lecture{#NO}|othersothers includes non-course-related changes, such as changes to this README.md, adjustments to .gitignore, etc.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.