Skip to content

Faster-Git

A tutorial of Git

ViteNotes

Course Schedule:

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 ProfileResponsible Chapters
Niu ZhikangDatawhale member, Undergraduate at Xidian Universitylecture01, lecture03
Zhu SongqingDatawhale member, Graduate student at Shanghai Jiao Tong Universitylecture02
Xu XiangjunWorking professional, Internet finance, Backend developmentlecture04
Li BihanDatawhale member, Working professionallecture05
Song ZeshanDatawhale member, Algorithm developerlecture06
Wang XiaoliangDatawhale member, Working professionallecture07
Zhang XiangyuGraduate student at East China Normal Universitylecture08
Shen HaoDatawhale member, PhD candidate in Cybersecurity at Fudan Universitylecture09
Xia JunDatawhale member, Graduate student at Shanghai Jiao Tong Universitylecture10
Fu XieyiDatawhale contributor, Graduate student at HKUST(GZ)Website Architecture & Internationalization

Contributing

The main branch is main

Workflow

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:

  1. Fork this repository on GitHub
  2. Clone your forked personal repository
  3. Set the upstream repository address and disable push
  4. Use branches for development. Course branch names should be lecture{#NO}, where #NO is kept as two digits, such as lecture07, corresponding to the course directory
  5. Keep synchronized with the original repository before PR, then initiate a PR request

Command examples:

shell
# 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 -f

Commit Message

Commit 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}|others

others includes non-course-related changes, such as changes to this README.md, adjustments to .gitignore, etc.

Follow Us

Datawhale is an open-source organization focused on AI, with the vision of 'for the learner, growing together with learners', building the most valuable open-source learning community for learners. Follow us and learn and grow together.

LICENSE

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

© 2025 Datawhale. All Rights Reserved.