小白学git

 

前言

Git版本控制系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具。通过孟宁老师的高级软件工程课程对Git进行了学习,了解到其起源、工作流程以及各个场景下的应用。本博文详细介绍基于VSCode环境下的Git五大场景下的基本操作,希望对读者提供一些帮助。

 


参考文献:

参考文献:

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

https://www.liaoxuefeng.com/wiki/896043488029600

https://blog.csdn.net/weixin_44950987/article/details/102619708

https://blog.csdn.net/Zhangguohao666/article/details/105665412/

https://www.cnblogs.com/tu-0718/p/10935910.html

https://blog.csdn.net/qq_43715354/article/details/108638061

工具:VSCode、Git


环境配置

一、VSCode安装

VSCode详细安装过程如下:

https://blog.csdn.net/Zhangguohao666/article/details/105665412/

如需汉化,可以参考以下文章:

https://www.cnblogs.com/tu-0718/p/10935910.html

二、Git安装

Git详细安装过程如下:

https://blog.csdn.net/qq_43715354/article/details/108638061

安装完成后,还需要最后一步设置,在命令行输入用户名和邮箱,便于后续场景的训练。

安装完成后需要将Git集成到VSCode中:

1.打开vscode, 文件->首选项->设置 打开用户设置->设置栏输入“shell"->选择在settings.json中编辑。如下所示:

 2.增加如图所示的这一行,其中路径为Git的安装目录。

 3.重启VSCode在终端中选中bash。


五大场景的基本使用训练

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

版本库又名仓库,英文名repository。可以将之理解为一个目录,该目录中所有文件都可以被Git管理起来。每一步的修改和删除,都可以被Git追踪。

(1)创建版本库

如下所示:在D盘的git目录下下新建一个githomework版本库。

(2)创建Git

通过命令 git init 把这个目录变成git可以管理的仓库。

如图所示,githomework文件夹中多了了一个.Git文件。

 (3)保存修改后的文件

在githomework文件夹下,创建一个readme.md文件。编辑内容为“hello";然后使用git add readme.md增加到暂存区,再用git commit -m把文件提交到仓库。(本次提交的标记为“first")

 已经提交了readme.md,可以通过命令git status来查看是否还有文件未提交。

 说明没有任何文件未提交,现在将更改readme.md的内容,编辑文本增加一行”git",然后用git status查看结果。

上面的命令告诉我们 readme.md文件已被修改,但是未被提交的修改。然后可以通过git diff指令查看文件更改的内容。

如图,readme.md的内容增加了一行”git“。知道了修改后,可以提交到仓库了,可以通过git status查看一下文件状态。

 (4)版本回退

继续对readme.md进行编辑,增加一行”management",继续执行命令。用git log查看历史记录。

 

 将版本回退到第二次提交,输入指令git reset --hard HEAD^,使用cat readme.md 查看文本内容,再用git log查看历史信息。

若想要回到最新版本,恢复第三次的内容。则使用指令git reset --hard 版本号恢复。若版本号不知道,可以使用指令 git reflog显示。

 查看文本内容,已经返回到最新版本了。

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

通过场景一熟悉了本地仓库的基本操作,要想实现协同开发,就需要将本地仓库同步到远程仓库,以便其他开发者进行访问。常用的远程仓库就是github:https://github.com/,接下来演示如何将本地仓库同步到github远程仓库。

(1)注册Github账户并配置SSH加密协议(略)

配置加密协议方法可参考:https://blog.csdn.net/weixin_44950987/article/details/102619708

(2)在Github上创建仓库

通过命令git remote add origin 仓库链接,将本地仓库与远程仓库连接,再通过git push -u origin master将本地仓库的内容推送到远程仓库中。

成功后,远程仓库就拥有和本地仓库一样的内容:

 

从现在起,只要本地做了提交,就可以通过命令git push -u origin master将本地master分支的修改推送到远程仓库中。 

(3)从远程库克隆

首先登录github,创建一个新的仓库,名字叫gittest。如图所示:

 如下,我们看到远程仓库创建好了。

下一步是使用命令 git clone从远程仓库克隆到本地仓库了。

接着在我本地目录下生成了gittest文件夹。

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

(1)创建分支

使用指令git checkout -b 分支名字 创建分支并切到分支,再使用git branch查看分支,则会列出所有的分支,当前分支前面有着*标志。

 

在branch1分支上进行操作:首先在readme.md中增加一行内容"yaojinsong",查看内容。

 现在branch1分支工作完成。

(2)切换到主分支master

继续查看readme.md文件,发现分支上的内容没有在主分支master显示。

(3)合并分支

使用git merge指令将branch1分支上的内容合并到master分支上。合并分支后,再查看readme.md内容,可以看到master分支和之前branch1分支上的最新修改是一致的。

 (4)将合并后的本地仓库同步到远程仓库

将master分支push到远程仓库中。

将branch1分支也push到远程仓库中。

 

(5)多人开发模拟

我在githomework本地仓库上进行开发,小伙伴A将远程仓库githomework中的内容克隆到本地仓库githomework2中,小伙伴A在本地仓库githomework2下进行开发。

 小伙伴A此时使用指令git branch只能看到master分支,小伙伴A若想在branch1分支上开发,则需要使用指令git checkout -b 分支 origin/分支 创建远程origin的branch1分支到本地。 

这样,小伙伴A就可以在branch1分支上修改文件。对readme.md编辑,增加一行"add branch"。

 然后将现有的branch1分支推送到远程仓库。

 

 小伙伴A已经向origin/branch1分支上进行了提交。然后我在本地目录文件下也在branch1分支中对readme.md的相同地方进行编辑,增加了一行”add branch2"。然后推送到远程仓库,如下:

 

提示推送失败,因为小伙伴A和我推送的内容有冲突。先用git pull把最新的提交从origin/branch1抓取到本地,在本地中进行分支合并。

手动修改readme.md内容后,使用cat指令查看更改后的内容。

 

将本地仓库推送到远程仓库。

 


场景四:Git Rebase

Rebase操作可以把几次提交整合成一次提交,使得繁多复杂的提交变得更加简洁明了。

使用指令git log,发现有四次历史提交记录。

 使用指令git rebase -i HEAD^^^,这是用来指定整理HEAD之前的三个commit节点。

 

 然后编辑,将"third"对应的提交前面的pick改为squash。这可以将“second"和”third"提交合并,然后输入“:wq”保存并退出。

 使用git log查看提交记录,发现两个提交已经合并完成。

 


 总结

  通过对Git的学习,深刻理解了分布式版本控制系统,掌握了各类场景下的基本使用方法。使用Git,用户可以轻易实现回到过去和回到未来,能够快速准确追踪开发过程中的各个阶段;还可以随时创建、合并、删除分支,多人实现不同的功能,可以创建多个分支进行开发,之后进行分支合并,这种方式使开发变得快速、简单、安全。Git的分布式版本控制思想对于项目开发极为关键,可以将人从繁琐的手动备份版本中解放出来,对于软件工程有着举足轻重的作用。

posted @ 2020-10-20 00:02  姚劲嵩  阅读(138)  评论(0编辑  收藏  举报