Git使用心得体会

一、Git简介

如今在开发中,Git已成为现在主流的开源的分布式版本控制系统,基本上大多数的公司都在使用Git进行协同开发。很多代码托管平台也是基于Git来实现的,如大家所熟知的Github。

Git可以帮我们做到很多的事情,比如代码的版本控制,分支管理等。

 

 

 

二、本文介绍

本文内容:本文主要介绍Git在四个常用场景的基本使用以及使用的心得体会

运行环境:Win10

使用工具:VSCode,Git

参考文献:https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg 

 

三、Git的四个使用场景模拟

场景一:Git 本地版本库的基本用法

使用指令:

git init # 初始化一个本地版本库

git status # 查看当前工作区(workspace)的状态

git add [FILES] # 把文件添加到暂存区(Index)

git commit -m "wrote a commit log infro” # 把暂存区里的文件提交到仓库

git log # 查看当前HEAD之前的提交记录,便于回到过去

git reset —hard HEAD^^/HEAD~100/commit-id/commit-id的头几个字符 # 回退

git reflog # 可以查看当前HEAD之后的提交记录,便于回到未来

git reset —hard commit-id/commit-id的头几个字符 # 回退

1.初始化一个本地仓库

查看隐藏文件可以看到本地仓库下多了一个.git文件夹

 

2.把文件添file1.txt加到暂存区  

 3.把暂存区里的文件提交到仓库

 

打开本地仓库可以看到文件图标上多了个绿色的勾,表示成功提交

 

4.修改file1后第二次提交,查看当前HEAD之前的提交记录

5.回退上一个版本,并查看当前 HEAD 之后(时间更晚)的 提交记录

 

 

 

场景二:Git 远程版本库的基本用法

使用指令:

git clone https://DOMAIN_NAME/YOUR_NAME/REPO_NAME.git# 如果您已经在Gitee.com或者Github.com等网站上创建了Git版本库,可以通过git clone命令,将版本库克隆到本地完成本地版本库的初始化。 

git remote#  管理本地版本库跟踪的远程存储库

git clone#  官方的解释是“Clone a repository into a new directory”,即克隆一个存储库到一个新的目录下。

git fetch#  官方的解释是“Download objects and refs from another repository”,即下载一个远程存储库数据对象等信息到本地存储库。

git push#  官方的解释是“Update remote refs along with associated objects”,即将本地存储库的相关数据对象更新到远程存储库。

git merge#  官方的解释是“Join two or more development histories together”,即合并两个或多个开发历史记录。

git pull#  官方的解释是“Fetch from and integrate with another repository or a local branch”,即从其他存储库或分支抓取并合并到当前存储库的当前分支。

 

1.在GitHub上创建一个远程仓库

 2.初始化本地仓库

 

3.使用git clone命令进行克隆

 

这里显示发送请求时出错是因为要登录授权

 

登录确认

登录后克隆成功

 查看本地文件可以看到远程仓库已经克隆到本地了

 

4.管理本地版本库跟踪的远程存储库

 直接输入git remote可以看到git clone之后默认的远程存储库名称为orgin

 

 在本地仓库新增文件,即修改了本地仓库

将本地的更改push到远程仓库,这里也要登录

 

在GitHub上可以看到push成功

 

 

 

然后在远程仓库上点Add file新增文件,即修改了远程仓库

再从远程仓库pull到本地仓库,同样要登录

 可以看到本地仓库拉取成功

 

 

场景三:团队项目中的分叉合并

使用指令:

git checkout -b mybranch# 使用Git命令的创建分支

git branch# 查看分支列表 ,前面有一个*代表当前工作区处于分支

git checkout [branch_name] # 将当前工作区切换到指定分支

git merge [branch_name]# 合并指定分支到当前的分支

git merge --no-ff [branch_name]# 合并时若要保留指定分支为一段独立的分支线段,则需要使用--no-ff参数关闭"快进式合并"(fast-farward merge)

 

1.创建新的分支

 查看分支列表,可以看到mybranch前面有一个*代表当前工作区处于mybranch分支

 在mybranch分支作了一点修改并提交后切换回主分支(可以看到从GitHub克隆的仓库最新的主分支名字已经由master改为了main)

 

2.分支合并

 

 

场景四:Git Rebase

使用指令:

git rebase -i [startpoint] [endpoint]# 重新整理一下提交记录。[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支的HEAD。一般只指定[startpoint] ,即指定从某一个commit节点开始。

git rebase -i HEAD^^^# 可以使用HEAD^^、HEAD~100、commit ID或者commit ID的头几个字符来指定一个commit节点,比如这里的代码指定重新整理HEAD之前的三个commit节点。

git rebase --abort# 撤销git rebase操作

git rebase --continue# 解决冲突后需要将修改后的文件存入暂存区(git add),最后执行如下命令完成git rebase

 

1.新建分支mybranch

对文件进行三次修改提交,分别标记为版本A、B、C

2.输入git rebase -i HEAD^^^可以查看前三次提交记录

文本编辑器的用法与Vim大致相同,按i键进入插入编辑模式,可以删除某个版本,也可以修改提交日志消息;按ESC键退出编辑模式回到一般命令模式(Normal Mode),这时按:键进入底线命令模式,输入:wq保存退出、输入:q退出、输入:q!强制退出。

这里我们删除前两个版本A和B,只保留C。

保存后发生了冲突

打开发生冲突的文件进行修改合并

提交后再查看日志可以看到只剩下修改后的最终版本C了

 3.最后切换到主分支master

合并分支mybranch到主分支master,使用--no-ff参数关闭"快进式合并"(fast-farward merge)

 

 查看分支图,可以看到中间的A和B版本是看不到的,只剩最终版本C

 

 

 

 

四、心得总结

   Git的分布式版本控制在如今的企业项目开发中越来越重要,以前我没有机会接触大型项目的开发,现在终于可以通过孟老师的课程系统地学习与实践Git在以上四种常用场景中的使用。可以看到在有了Git的版本控制后,无论是自己的本地仓库版本管理还是项目组成员通过远程仓库共同协助开发,这些以往棘手的流程都变得井井有条、快速便捷。在此感谢孟老师的详细指导,让我对Git的初步使用有了深刻的理解。

posted @ 2020-10-10 13:19  xsero  阅读(345)  评论(0)    收藏  举报