Git使用心得
git是一种优秀的分布式的代码版本管理系统,作为一名软件工程专业的学生,git也是我们必须掌握的。孟宁老师在课上遵循着从简单到复杂的规律,通过五大场景介绍了git的基本用法。下面我们通过实际操作来熟悉git的使用。
一、Git本地版本库的基本用法
初始化
首先新建一个本地存储库。
git init
同时我们也可以将GitHub上的版本库克隆到本地完成本地版本库的初始化,命令如下。
git clone https://github.com/<用户名>/<项目>
查看当前工作区状态
直接在项目目录下执行命令git status
即可查看本地版本库当前workspace状态。
暂存更改的文件
这里我们新建一个test文档,并使用代码git add .
即可添加到暂存区(或点击列表里的文件右侧的+
)
当我们想取消将特定文件或所有文件添加到暂存区时,可执行如下命令
git reset HEAD FILES #指定文件或文件列表
git reset HEAD #所有文件
也可点击列表里的文件右侧的-
来取消特定文件。
提交暂存的文件到仓库
只要列表里有文件,点击√
即可将暂存文件提交到仓库,提交时系统会要求输入日志信息。
一旦提交到仓库后,提交记录便无法取消,即如果撤销本次提交,其他人仍可通过git reflog
来查看当前HEAD后的提交记录。
我们可通过如下命令让HEAD回退到任意一个版本。
git reset --hard HEAD^^
git reset --hard HEAD~100 #表示HEAD的前100个版本
git reset --hard 128个字符的commit-id
git reset --hard 简写为commit-id的头几个字符
二、Git远程版本库的基本用法
初始化
通过git clone
命令,将版本库克隆到本地完成本地版本库的初始化。
git clone git@github.com:***/***.git
随后可参考场景一来实现库的基本操作。
基本操作
可通过下列命令来管理本地版本库跟踪的远程存储库。
git remote
git remote -v #查看更详细的远程存储库信息
通过git pull <远程分支> <本地分支> 命令可从远程存储库抓取并合并到当前存储库的当前分支(GitHub的主分支由master改为main)。即git fetch与git merge 的组合操作。
通过git push命令将本地存储库数据对象更新到远程存储库(提交时需要登陆)。
可以看到test444文件已成功同步到GitHub。
三、团队项目中的分叉合并
管理团队项目与个人项目不同,个人项目的提交与拉取是串行的,而团队项目要解决到同时提交合并产生的冲突问题。因此我们创建工作分支,每个分支只对某一功能模块进行版本控制,在完成后将分支合并到主体。下面我们具体了解分支及合并的基本用法。
创建分支
通过如下命令创建分支。
git checkout -b <分支名>
git branch #查看分支列表
git checkout master #切换到master分支
合并分支
合并分支前要确保当前处在master分支,可通过git checkout master
来切换到master分支。通过如下命令合并分支。
git merge <分支名>
如上图所示,在新分支中添加的文件在分支合并后同步到了主分支中。
若要保留分支,则使用--no-ff
参数进行"快进式合并"。
git merge --no-ff <分支名>
四、Git Rebase
当我们在分支上完成一个模块后,可用git rebase来整理提交记录。如下图,在提交分别为A,B,C的三个修改后,输入git log
查看日志
输入git rebase -i HEAD~3
,打开文本编辑器,删除pick 325ecd0 B
后,按esc退出到一般模式,再按shift + :
进入底线命令模式,输入wq保存并退出。
处理冲突后,输入git rebase --continue
继续rebase,并查看log如下图,B、C修改已合并到final commit中。