Git 基础
git commit: 提交 HEAD当前指向的代码修改提交记录
git 分支
git 的分支非常的轻量,所以需要 “早建分支,多用分支” 因为创建再多的分支也不会造成存储空间上的额外开销,这些按逻辑分解工作到不同的分支上维护起来相当简便 使用分支相当于:我想基于这个提交以及它所有的父提交进行新的工作
-
git branch newImage 创建 了一个新的分支newImage 注意,这里创建完分支后,HEAD并没有切换到这个新的分支上去,如果希望创建这个分支并转到这个分支上去,请看下面示例 -
git checkout -b newImage 创建 了一个新的分支newImage并将HEAD 转到 这个分支上
合并分支
- git merge
将两个分支合并到主线上,相当于“我要把这两个父节点本身及它们所有的祖先都包含进来。” git merge bugFix:此时HEAD指向main,这句执行相当于创建一个新的提交记录,main分支指向这个新的提交记录,这个提交记录的父结点是bugFix和原本main指向的提交记录 - git rebase
复制当前的提交记录,在另一个地方放进去,形成更加线性的提交历史 git rebase main:当前HEAD指向的是bugFix,使用该命令后将会在创建一个副本提交记录到main的下面,并且bugFix指向该副本提交记录 不过此时main并没有更新,可以切换到main后再git rebase bugFix即可
相对引用
-
git checkout main^ HEAD转到main的父结点上 如果是git checkout main^^,则转到main的父结点的父结点上 如果是git checkout HEAD^,则转到HEAD指向提交记录的父结点上 -
git checkout HEAD~4 从HEAD向上转4次 如果~后面不跟数字,则默认转一次(和^作用相同) -
git branch -f main HEAD~3 强制转移分支,将main分支转到HEAD的向上3次
撤销变更
-
git reset HEAD~1 (本地分支撤销) 通过把分支记录回退几个提交记录来实现撤销改动 将HEAD所指向的分支向上移回到一级父结点上 (注:在reset后, 原先的提交记录所做的变更还在,但是处于未加入暂存区状态。) -
git revert HEAD (远程分支撤销) 在原先的提交记录下面新增一个提交,其中保存的是原先提交记录的父结点信息(实际上,就是保存了撤销后记录的信息)
参考:learn git branching
|