git学习地址
https://learngitbranching.js.org/?locale=zh_CN
HEAD一开始指向当前分支的头部
git 换行问题
git config --global core.autocrlf false

1.commit

git commit -m "this is a demo comment"
提交代码改动到本地仓库

git commit --amend 追加提交
git commit 是最新的

2.branch

git branch bugFix
git checkout bugFix

相当于 git checkout -b bugFix

3.merge(合并,非线性)

使用场景:
在一个新分支上添加一个新功能,然后把它合并到老分区
在main分区合并bugfix之后,它的parent指向一个节点,该节点指向bugfix和main的历史parent

featch只是简单地下载

git checkout -b bugFix
git commmit -m "fixBug"
git checkout main
git commit -m "update main"
git merge bugFix

4.rebase(将当前分支rebase到目标分支,线性可用)

git rebase destBranch
使用场景:
将当前分支的更改,线性应用到指定分区上

git checkout -b bugFix
git commit -m "fixBug"
git checkout main
git commit -m "update main"
git chekout fixBug
git rebase main

rebase不会保留分支点,而merger会,reabse是线性结构,而merge是树形结构,本地可以用rebase,远程应该用merge
线性的rebase
git pull --rebase

5.head

head是默认指向分支,你如果git checkout xxx ,它将指向xxx

6.相对引用

name^num: 选择第n个父节点
name~num : num为后退的步数
git branch -f xxx yyy 让xxx分支指向yyy
这两个不一样!

7.重置

远程 git revert(指向一个新的副本)

本地 git reset

8.自由提交(不能指定父)

git cheery-pick 指定的记录1, 指定的记录2

9.git rebase -i

打开一个窗口
可拖动排序
点击omit可省略
比如 git rebase -i HEAD~4

  1. git tag

tag就是在版本发布的时候用,比如
git tag version destination

  1. git describe

    git describe dest
    计算上一个tag到dest的距离

最后修改:2024 年 08 月 09 日
如果觉得我的文章对你有用,请随意赞赏