Git的基本概念和SourceTree的使用

(一)Git

(1)Git简介

​ Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。

​ 作为一个分布式版本控制系统来说,Git是没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。例如我们一个小团队合作开发一个项目,我们可以先建立一个远程仓库,需求分析,搭建大体框架,将项目框架上传至远程仓库,队员可以git clone项目,各自完成自己负责的部分,完善项目等,写好之后还可以比对之前的版本,本地项目写好之后上传至远程仓库,出现错误还可以版本回退等等。

(2)Git的三个区域

​ “Git有三个最具代表性的特色,它们分别是cheap local branching, convenient staging areas, and multiple workflows,即轻量的本地分支, 方便的暂存,以及多工作流。”这是我在csdn论坛上的一篇博客中看到的一句话,我觉得它很好地概括了Git的三个区域:工作区、暂存区以及版本库。下面有两张图,详细地诠释了三个区域的工作状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vsozh4Og-1626414812383)(Git+SourceTree.assets/Git1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-otGYuvFt-1626414812385)(Git+SourceTree.assets/Git2.png)]

下面,我又分别学习了三个区域的知识,并将知识点做如下归类。

1.工作区

​ 根据我自己的理解,工作区其实可以变相解释为本地仓库,首先工作区是创建在你自己的电脑上,其次工作区内有一个隐藏的目录叫.git,这个不算作工作区,而是叫Git的版本库,也就是Git的第三个区域,第三个区域的理解我写在了下面。而对于工作区来说,你要做的就是将代码文件存入该区内,然后通过Git Bash的命令窗口,使用git add命令把该文件添加到第二个区域暂存区内。我在学习的过程中是结合了SourceTree来进行这些操作的,不过命令控制台的操作我也了解了一下,下图是使用git add命令添加了一个文本文档readme.txt。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-errhSvWq-1626414812387)(Git+SourceTree.assets/Git3.png)]

2.暂存区

​ 暂存区用我自己的话来说,就是一个缓冲带,它存在于工作区和版本库之间,(这里的版本库不是我之前所提到的每个人电脑上都有的那个Git版本库,具体解释在下面版本库部分。)这个缓冲带的存在给与了用户更加灵活便捷的操作体验。假如我提交到版本库的代码文件中出现了错误,而又因为在工作区的文件 被git add命令提交之后,它首先是被提交到暂存区之中,然后再通过git commit命令提交到版本库中,因此就有了Git的回滚操作,这样可以使得你修改自己的代码更加容易而不至于影响到整个项目的进程。

3.版本库(仓库)

​ 版本库是Git的最后一个区域,也是最重要的一个区域。从版本库的定义来看,它指的是每一台使用了Git的计算机上都会有一个的东西,根据我阅读博客和自主学习之后的理解,版本库其实就是仓库。而Git的版本库也就是仓库又有本地仓库和远程仓库之分。本地仓库也就是本地的版本库包含了一个.git目录和工作区,如下图所示,这是我创建的一个本地仓库ctc2,我在里面有一些txt文件以及.git目录。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NczosiSq-1626414812391)(Git+SourceTree.assets/Git4.png)]

​ 而远程仓库举个例子来说,就是存放一整个项目组最终提交的项目代码的云仓库。而你所负责的部分代码则是存放在你自己的本地仓库中,然后通过Git Bash或者SourceTree来把它们提交到远程仓库中去。而远程仓库中的所有内容是可以通过克隆操作来复制到你的本地仓库中,同理本地仓库中的所有内容也可以通过拉取和推入操作来复制进远程仓库中。下图是我自己在Gitee上创建的一个远程仓库,我已经通过SourceTree上的clon操作把它和我的本地仓库ctc2关联了起来,可以从图中看到,我的本地仓库中的内容都已经更新到我的远程仓库中了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sW5hk6OG-1626414812391)(Git+SourceTree.assets/Git5.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nrWkix5v-1626414812393)(Git+SourceTree.assets/Git6.png)]

(3)分支、节点

1.分支

​ 分支的概念我在博客上看到了一张非常形象的图可以解释,这里引用一下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z60izAAq-1626414812394)(Git+SourceTree.assets/Git7.png)]

​ 意思就是开发过程中,要选择一条路,你可以选择和其他小伙伴一起走同一条路,也可以自己走一条路,路与路之间相互没有影响,作为路的主人,你也随时可以让两条路合并。具体解释就是分支其实是一个可变指针,它指向最后的终点和你要提交的对象。同时还有一个比较特别的 HEAD 指针,用于记录当前工作的位置,借用上面的例子,这个 HEAD 指针等于在路上走的你自己,你在哪,指针就在哪,你在哪个分支,HEAD 指针就指向哪个分支的指针。如下图所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vo3clQfd-1626414812395)(Git+SourceTree.assets/Git8.png)]

​ 分支的主要操作有创建、查看、删除、重命名、检出和合并。其中较为简单的是创建、查看、删除和检出分支,它们所涉及到的命令非常简单。首先是创建分支:

1 git branch<name>

然后是三条查看的命令:

1 git branch //查看本地分支; 
2 git branch -r //查看远程分支;
3 git branch -a //查看本地和远程的所有分支;

​ 而作为删除分支的命令来说,当本地分支删除后,推送到远程仓库后,远程仓库并不能自动删除远程分支(原因,下回分解)。所以,分支的完全删除是分两个部分的,一个是本地,一个是远程。本地删除操作需要加上 -d或者 -D 参数,参数的名称来自英语 delete的缩写。两者的区别在于-D比-d要粗暴一点。当被删除分支有新内容没有被合并的时候,使用-D,会直接删除, 使用-d,会提示该分支有新内容没有被合并,不执行删除。删除需谨慎,所以我觉得非特殊情况下,还是使用温柔的-d要好一点,这样可以避免自己负责的部分出现一些无法挽回的错误。

1 git branch -d <name>
2 git branch -D <name> //强制删除

删除远程分支则需要push操作。

1 git push origin :
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值