Git使用
Qianming Huang Three

参考视频:十分钟学会正确的github工作流,和开源作者们使用同一套流程_哔哩哔哩_bilibili

基本操作流

先将远程仓库复制到本地

image
  • 本地分成两个部分

    • Local:本地的仓库,即将要告诉git的信息
    • Disk:本地的磁盘,源文件真正所在的位置

新建一个新的分支

image

编辑新的代码

image

可以使用git diff查看disk下的文件与local中文件的区别

保存新的代码

image

git add命令将会让git知道用户想要提交的文件有哪些,这些文件将被保存在暂存区

提交新的代码

image

通过git commit,git将会把修改的内容放到git中。但是此时,github还是不知道更新的

推送代码

image

推送后,github会出现一个新的分支

随主分支更新

image

在用户提交了一个新的信息(f-commit)后,主分支可能会有更新(update),这时候就需要确认my-feature下的更新是否可以在更新后的主分支下运行

更新local branch

切换到main分支

image

拉取main分支的更新

image

切换到my-feature分支

image

同步update修改

image

git rebase意味着先把用户的修改放到一遍,把main最新的修改拿过来,在这个最新的修改基础之上,尝试把f-commit放上去。

此时可能会出现rebase conflict,这时候就需要手动选择。

相比较于mergerebase是在主分支最新的提交上做出了修改。也就是说,相比较于merger会产生一个额外的merge commit,rebase会让提交更线性,更干净。但是公共分支不要使用

提交分支的新修改

image

注意
此时提交必须加上-f

将代码合并到主分支

image

向项目管理者提出pull request

项目管理者合并代码

image

squash操作是为了将提交的分支上的所有改变都合并成一个改变,这样可以使主分支的commit history尽可能简洁。简单来讲就是所有的改变都被放入到了update2中,但是commit的结构数量和名字改变了

删除分支

当提交结束后,远端的分支就可以通过delete branch删掉了。但是此时本地的git上还有这个分支。

image

本地切换回主分支。

image

删除掉my-feature分支。

拉取新的主分支

image