前言:git作为一个开源的分布式的版本控制系统,相信很多人都用过,尤其是互联网公司。使用过的人都知道基本的操作如git add、commit、reset、push、pull等基本的操作(当然一般在开发是也算够用),但是往往对里面的概念原理有些模糊,甚至在遇到问题的时候也比较棘手,今天分享的这边文章主要是详细的介绍git如何使用,以及一些细节等,看完之后,相信都会使用。
一、git简介
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
git的特征
1、git每台电脑都有一个版本库,可以在本地做版本管理
2、速度快,git的速度远远大于大部分版本管理系统,如svn
3、强大的分纸管理
4、活跃的开源社区、如github
git和svn的对比
1、git是分布式的,而svn不是
2、git与svn版本机制不一样
3、git不需要联网
4、git内容完整性要由于svn
简单用一幅图来对比一下git和svn


二、git常用指令详解
git的安装比较简单就不介绍了,大家可自行去官网下载安装,接下来介绍git的命令使用
安装完git以后,可以在电脑的任意目录下右键点击鼠标出现如下图标

点击git base here就会在当前的目录下弹出git的命令窗
1、初始化和配置
(1)git init
初始化一个本地仓库,在同级目录下会出现一个隐藏的.git文件
![]()
(2)git config
需要配置用户名和邮箱,不然后面使用会报错
git config xxx (user.name、user.email)
配置完成之后可以查看配置信息
git config -l

2、提交版本
(1)git status
检查状态,这个比较简单,可自行操作观察,重点查看,增删改文件和git add 和git commit后的区别
(2)git add
git add filename (提交指定文件)
git add . (注意后面有个“.”)
git add -A提交所有文件
这里也比较简单,重点介绍一下git add .和git add -A的区别
1)1.x版本:
git add all可以提交未跟踪、修改和删除文件。
git add .可以提交未跟踪和修改文件,但是不处理删除文件。
2)2.x版本:
两者功能在提交类型方面是相同的。
(3)git commit
git commit -m “message”:普通的提交到本地仓库
git commit -am “message”:git add和git commit组合使用,但是必须是该文件不能是新增的,可直接跳过暂存区
git commint –amend “message” 追加上一次提交,不会新增加id
3、文件状态
(1)被追踪的(tracked):已经加入文档库
(2)不被追踪的(untracked):没有加入文档库
(3)忽略的(ignored):忽略那些不需要管理的文件夹或文件
比如刚刚新增的文件,查看状态就是untracked

使用git add后,文件变成tracked
如何忽略文件或者文件夹呢?比如我们项目中自己编译生成的target目录等不需要git管理,也不需要每次都提交
1)新建.gitignore文件
touch .gitignore
2)在文件中输入需要忽略的文件或文件夹(当然也可以配置不忽略的文件夹或文件)

如上是忽略.gitignore和target文件夹,避免每次都会提交他们
3)查看状态,是没有上述两个被忽略的文件

4、分支管理
(1)git branch
git branch 查看当前分支
git branch branchName 创建分支
git branch branchName 提交点:从某个提交点上创建分支
git branch -d 删除分支

(2)git checkout
切换分支

(3)git merge
合并分支,先要切换到要合并到那个分支的分支,然后使用git merge branchname 这个branchname表示需要被合并的分支,比如,我需要将taolong的分支合并到master分支,则需要切换到master分支,然后git merge taolong即可,最后如果有冲突需要解决冲突

这里面是显示有冲突的,看看有什么冲突

git还算是比较聪明,我们去掉冲突,然后重新提交代码
5、日志和标签
git log:显示日志信息
git log –oneline:用一行显示日志信息
git log –oneline –graph:显示日志信息,同时显示分支
git reflog:会显示所有的日志包括删除或者reset的操作,可以用恢复git log查看不到的版本


5-2、标签
git tag :查看标签
git tag -a tagname id:为id增加标签
git show tagname:查看标签信息和提交内容

6、恢复
git reset:在git中有一个HEAD指针指向当前分支,git reset的作用就是修改HEAD的位置,用下图简单描述一下,当我使用git reset –hard v3.0则表示HEAD指向v3.0

git revert:通过反做创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本,而不是目标版本,也用一个简单的图描述,其中v3.0bak的内容和v3.0的内容是一样的

7、远程仓库
(1)在github官网注册(https://github.com/)
(2)新建一个和本地一样的工程

(3)生成和配置RAS密钥

(4)将生成的公钥放到github的setting中

(4)本地和远程仓库通讯
git remote add git_test_demo git@github.com:xiaohongstudent/git_demo_test.git
后面的地址是我仓库的地址

(5)上传代码到远程仓库
git push -u git_demo_test master


上传成功
(6)拉取代码
git pull:将远程的最新内容直接拉去下来并直接合并,如果有冲突,需要自己手动解决
git fetch:将远程的最新内容拉到本地,用户在检查了以后是否合并到本机分支中
两者的差距:git pull = git fetch + git merge

具体他们的原理可自行查阅资料
(7)克隆代码
git clone git@github.com:xiaohongstudent/git_demo_test.git
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111225.html原文链接:https://javaforall.net
