VCS-01-关于GIT的了解及使用

  • 欢迎并感谢浏览卢小龙的本篇文章
  • 1.GIT基本介绍
  • 2.GIT火热的背景因素
  • 3.GIT与其他VCS产品的区别
  • 4.GIT的下载与安装
  • 5.GIT全局用户信息配置
  • 6.GIT基础命令
  • 7.IDEA与GIT结合使用
  • 8.创建新分支及合并代码
  • 9.总结


欢迎并感谢浏览卢小龙的本篇文章

你好!亲爱的读者,这是卢小龙在CSDN写的第一篇学习记录文章,本篇文章将主要记录本人在工作学习中对GIT的认识及实际使用,方便自己的学习历程记录以及复习参考,若有言错之处,请各位给予指点.

1.GIT基本介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目;

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件;

Git 与常用的版本控制工具 CVS,Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持.

2.GIT火热的背景因素

软件项目开发过程中,团队间共享的代码,文档等可能被别人或自己不小心覆盖或遗失、也不知道是谁,因为什么原因改了这段代码、也没办法很好的复原前几天的修改,于是版本控制系统(VCS-Version Control System)诞生.

有了版本控制系统,我们可以浏览所有开发的历史纪录,掌握团队的开发进度,而且作任何修改都不再害怕,因为你可以轻易的复原回之前正常的版本。我们也可以透过分支和标签的功能来进行软件发行的不同版本,例如稳定版本、维护版本和开发中版本。近几年版本控制系统的应用趋势,如图所示:

git仓库在vscod左下角没有分支 vcs中没有git_java

3.GIT与其他VCS产品的区别

这里因为本菜菜只用过GIT与SVN,所以只能记一下GIT与SVN的区别,若后续有所学得其他VCS产品再行补充.

Git 与 SVN 区别点:

1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统最核心的区别.

2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn的文件夹里.

3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征.

5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏.

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.

如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征.

4.GIT的下载与安装

Windows和Mac系统, 可以直接从 [http://git-scm.com/downloads ]网址下载并运行安装程序.对于Windows用户可使用 “Git Bash” 命令行工具(Git安装时自带)使用Git,Mac系统可以直接实用终端窗口"Terminal".GIT的安装过程采用傻瓜式下一步即可.

5.GIT全局用户信息配置

打开GIT安装目录下的git-bash

git仓库在vscod左下角没有分支 vcs中没有git_java_02

$ git config --global user.name "your-name"
$ git config --global user.email "your-email@youremail.com"

配置好后输入如下命令,检验配置是否生效

$ git config --list

检验用户名及邮箱配置生效即可

git仓库在vscod左下角没有分支 vcs中没有git_git仓库在vscod左下角没有分支_03

6.GIT基础命令

Git提供了一组简单、独特、独立的命令,这些命令的执行需要首先启动windows或mac系统的Git终端(window 下可以可使用 “Git Bash”),其语法结构为:

$ git <command> <arguments>

Git 常用命令有:

init, clone, config: 用于启动Git进行项目管理。
add, mv, rm: 用于暂时记录或存储文件的变更.
commit, rebase, reset, tag:
status, log, diff, grep, show: show status
checkout, branch, merge, push, fetch, pull

Git 帮助手册:(可快速获取命令的使用帮助)

$ git help <command>
// or
$ git <command> --help

附上Git 操作手册官方文档 http://git-scm.com/docs.

7.IDEA与GIT结合使用

首先先查IDEA中GIT的配置并进行测试

git仓库在vscod左下角没有分支 vcs中没有git_版本控制系统_04


若点击test后正确显示git的版本,则说明在IDEA中GIT已配置OK.接下来使用IDEA拉取代码,首先在GitHub或Gitee等码云仓库获得要拉取代码的git地址.

git仓库在vscod左下角没有分支 vcs中没有git_java_05


打开IDEA中的VCS操作栏

git仓库在vscod左下角没有分支 vcs中没有git_git_06


在URL及Directory栏中输入对应信息

git仓库在vscod左下角没有分支 vcs中没有git_github_07


当编辑好代码后,提交代码的操作顺序要按照1拉2提3推的顺序进行

git仓库在vscod左下角没有分支 vcs中没有git_github_08


这里的三个操作按钮从左到右分别是pull、commit、push

首先pull,对当前代码更新,避免他人提交的代码我们没有更新而造成代码的merge;

其次commit,将本次更新代码提交到本地仓库,并注以本次修改的纪要,准备提交到远程仓库;

最后push,push可以将多次commit的代码一起推到远程仓库,前提是操作者必须具有该仓库的开发者及以上权限.

对.git目录中的exclude文件进行配置,对指定资源进行过滤(例如哪些资源不提交、上传,可以此文件做全局配置),内容如下:

HELP.md
target/
out/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
.gitignore

### maven ###
mvnw
*.cmd
.mvn/

8.创建新分支及合并代码

在代码的版本控制可以发现有很多分支

git仓库在vscod左下角没有分支 vcs中没有git_git_09


这些分支一般伴随着需求以及版本迭代产生,也就是说大概每次新开发的内容会切一个新的对应版本号的分支,提测通过后会合并到master主线当中.

git仓库在vscod左下角没有分支 vcs中没有git_版本控制系统_10


通过New Branch来创建新分支,将新分支命名好后可提交代码,push到远程仓库,则新分支创建完毕.

git仓库在vscod左下角没有分支 vcs中没有git_版本控制系统_11


通过Merge into Current来将新分支的代码合并到master主线当中,然后将master推到远程仓库中,完成代码合并.

9.总结

在本篇文章中重点讲解了IDEA中Git的一个基本操作,通过Git在IDEA中实现了项目的Update、Commit,Push等操作.
GIT在企业中被广泛的应用与代码版本控制,下篇文章将记述SVN的操作以及SVN在工作中的应用