Learning Git Branching
注:本文为Learning Git Branching学习笔记,主要是截图整理,非原创,地址如下所示。
中文地址:https://learngitbranching.js.org/?locale=zh_CN
英文地址:https://learngitbranching.js.org/?locale=en_US
主要操作
基础篇:循序渐进的介绍 Git 主要命令
- level 1: Git Commit
- level 2: Git Branch; Git Checkout
- level 3: Git Merge
- level 4: Git Rebase
高级篇:
- level 1: 在提交树上移动
- level 2: 相对引用1(^)
- level 3: 相对引用2(~)
- level 4: 撤销变更
移动提交记录:
- level 1: Git Cherry-pick
- level 2: 交互式 Rebase
杂项:
- level 1: 只取1个提交记录
- level 2: 提交的技巧 #1
- level 3: 提交的技巧 #2
- level 4: Git Tag
- level 5: Git Describe
高级话题:
- level 1: 多次 Rebase
- level 2: 两个父节点
- level 3: 纠缠不清的分支
远程操作
Push & Pull —— Git 远程仓库!
- level 1: Git Clone
- level 2: 远程分支
- level 3: Git Fetch
- level 4: Git Pull
- level 5: 模拟团队合作
- level 6: Git Push
- level 7: 偏离的提交历史
- level 8: 锁定的 Master (Locked Master)
关于 origin 和它的周边 —— Git 远程仓库高级操作
- level 1: 推送主分支
- level 2: 合并远程仓库
- level 3: 远程追踪
- level 4: Git Push 参数1
- level 5: Git Push 参数2
- level 6: Git Fetch 参数
- level 7: 没有 source 的 source
- level 8: Git Pull 参数
git commit
:提交
git branch <branch-name>
: 创建分支
git checkout <branch-name>
: 切换到分支
git checkout -b <your-branch-name>
: 创建分支并切换到该分支上, --branch(-b)
git merge <branch-name>
: 将分支合并到主线
git rebase master
: 线性合并当前分支到主线
HEAD的概念
git checkout <name>^
:(^)相对引用
git checkout <name>~<num>
: (~)相对引用
git branch -f <branch-name> <name>~<num>
:强制修改分支位置,force(-f)
git reset <name>
:在本地分支撤销
git revert <name>
:在远程分支撤销
git cherry-pick <name>...
: 整理提交记录
git rebase -i <name>~<num>
: 交互式的 rebase, --interactive(-i)
未完待续…
Git 相关术语
- Version Control(版本控制): 任何一个能够让你了解文件的历史,以及该文件的发展进程的系统。
- Git:一个版本控制程序,通过对变更进行注释,以创建一个易于遍历的系统历史。
- Commit(提交):在指定时间点对系统差异进行的注释 “快照”。
- Local(本地):指任意时刻工作时正在使用的电脑。
- Remote(远程): 指某个联网的位置。
- Repository (仓库,简称 repo):配置了Git超级权限的特定文件夹,包含了你的项目或系统相关的所有文件。
- Github:获取本地提交历史记录,并进行远程存储,以便你可以从任何计算机访问这些记录。
- Pushing(推送):取得本地Git提交(以及相关的所有工作),然后将其上传到在线Github。
- Pulling(拉取):从在线的Github上获取最新的提交记录,然后合并到本地电脑上。
- Master (branch):主分支,提交历史 “树”的 “树干”,包含所有已审核的内容/代码。
- Feature branch(功能分支/特性分支):一个基于主分支的独立的位置,在再次并入到主分支之前,你可以在这里安全地写工作中的新任务。
- Pull Request(发布请求):一个 Github 工具,允许用户轻松地查看某功能分支的更改 (the difference或 “diff”),同时允许用户在该分支合并到主分支之前对其进行讨论和调整。
- Merging(合并):该操作指获取功能分支的提交,加入到主分支提交历史的顶部。
- Checking out(切换):该操作指从一个分支切换到另一个分支。