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中。

参考文献

https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg

posted @ 2020-10-07 19:59  zerone01  阅读(92)  评论(0编辑  收藏  举报