持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情
- git使用流程
- fork到自己的仓库
- 然后使用git clone命令克隆到本地
- 然后添加上游代码库(方便做开源项目,这里如果做自己的项目其实不需要这步)
- 然后做一些修改,创建新分支
- 将修改添加到新分支,然后进行push
- 合并merge
- 当存在两个分支要合并时,如果当前处于main分支,使用git merge +分支名,就可以把其他分支合并到main分支
- 如果要将bugFix分支也合并进入main,直接切换到bugFix,使用git merge main就可实现
- 当存在两个分支要合并时,如果当前处于main分支,使用git merge +分支名,就可以把其他分支合并到main分支
- rebase
- 将当前分支的内容创建一份副本移动到主分支上,之前的内容还存在
- 切换到main分支,然后使用git rebase bugFix实现同步
- 将当前分支的内容创建一份副本移动到主分支上,之前的内容还存在
- head
- 通常情况下指分支名,最近一次commit的分支
- 分离head可以让head指向,最近的提交记录,而不是分支名
- 分离前
- 分离后
- 使用git checkout main^可以让head指向当前main分支最近一次操作记录的上一次操作记录
- 也可以直接使用git checkout +哈希值,就是使用git log来看一系列的代码,写前三位即可
- 也可以直接使用git checkout HEAD^,在分离head后,可以这样一次次让head往之前的操作记录上移动
- git checkout HEAD~4,可以后退四次
- 练习
- git branch -f main HEAD~3:将main分支强制指向HEAD的第3次父提交
- reset revert
- git reset HEAD~1:回退到上次修改,当前修改的内容还在,但是并没存入暂存区
- git revert HEAD:可以修改远程分支,reset无法修改远程分支;revert会生成一个新的提交内容,C2'和C1完全一样
- fetch
- git fetch:将本地仓库中没有提交的代码提交 ,并且更新o/main(在本地仓库创建的一个远程分支);从远程仓库下载本地仓库中缺失的提交记录
- git fetch不会改变本地仓库的状态,不会更新main分支,也不会修改你磁盘上的文件
- pull