Git的介绍与使用
是什么
GIt是一个是目前世界上最先进的开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。由Linus Torvalds帮助管理linux内核开发的一个开源的版本控制软件。
能干什么
1.协同开发
2.权限管理
3.冲突解决
4.代码备份
5.版本还原
6.历史追查
7.版本记录
8.分支管理
9.代码审查
使用
初次使用:
在安装完git工具后第一次使用的时候在任意目录下右键Git Bash Here,打开命令窗口。Git是 分布式版本控制系统,所有需要填写用户名和邮箱作为一个标识。
在命令行窗口输入
git config --global user.name “你的用户名”
git config --global user.eamil “你的真实邮箱”
(在C:\Users\用户\lenovo 路径下的.gitconfig文件里可以看到你的所有配置.。注意:我的电脑是联想的所有我的目录是Lenovo,如果你的电脑就根据自己电脑的品牌)
注意:git config 命令的–global参数,用了这个参数表示你这台机器所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定不同的用户名和邮箱地址。
创建版本库
1.新建一个项目,mkdir gitTest01
进入到这个,cd gitTest01,
执行git init
会出现 Initialized empty Git repository in G:/gitTest01/.git/
代表一个空的版本库创建成功,同时会在该项目文件夹下产生一个隐藏的.git文件文件,注意这是一个隐藏文件,需要打开显示隐藏文件才能显示。
你可以用ls -a 查看一下,请注意其中的三项内容:
1.一个叫HEAD的文件,输入cat ./git/HEAD查看里边内容:
ref: refs/heads/master
这里边的内容只是包含了一个索引信息,并且这个索引将总是指向你的项目中的当前开发分支。
2.第二个是objects的子目录,它包含了你的项目中的所有对象。
3.第三个是refs的子目录,它用来保存指向对象的索引。具体的说,子目录refs包含着两个子目录叫heads和tags,他们存放了不同的开发分支的头索引,或者是你用来标定版本的标签的索引。
注意:master是默认的分支,这也是为什么.git/HEAD创建的时候就指向了master的原因,尽管目前它其实并不存在。git将假设你会在master上开始并展开你以后的工作,除非你自己创建自己的分支。另外,这只是一个约定俗成的习惯而已,实际上你可以将你的工作分支叫任何名字,而不必在版本库中一定有一个叫master的分支,尽管很多git工具都认为master分支是存在的。
将文件提交到本地仓库
1.执行 git add 上传的文件名称 ,这一步只是将文件添加到暂存区,还没有提交到本地仓库当中。
2. git add ./目标路径/ 会将该目录下的所有文件夹都添加到暂存区。
3. 执行 git commit 提交到本地仓库 ,会让你加注释,可以直接执行 git commit -m “你的注释内容” 直接带注释一起提交。
4. 执行 git status 文件名称 ,来查看文件状态
查看文件提交记录
1.执行 git log 文件名称 ,进行查看历史记录
2.执行 git log --pretty=oneline 文件名称 建议信息查看
回退历史
回退上一个版本,或者回退多个版本。
1.git reset --hard HEAD^ 回退到上一次提交
2.git reset --hard HEAD~n 回退n次操作
版本穿越
1.执行 git reflog 文件名 进行查看历史记录的版本号,
2.执行 git reset --hard 版本号
还原文件
1.执行 git checkout – 文件名称
注意:前提是没有执行add与commit
创建分支
- 执行 git branch 分支名称 会创建一个分支
- 执行 git branch -v 查看分支
切换分支
- 执行 git checkout 分支名称 切换到指定分支
- 创建新分支并且跳到该分支:执行 git checkout -b 分支名称
合并分支
1.先切回主分支 git checkout master 然后再执行 git merge 分支名称
删除分支
1.先切回到主分支 git checkout master 然后再执行 git branch -D 分支名称
冲突
冲突一般是指同一个文件同一个位置的代码,在两种版本合并时版本管理软件无法判断到底应该保留哪个版本,因此会提示该文件发生冲突,需要程序员手工来判断解决冲突。
合并时发生冲突
当一个分支与另一个分支修改同一个位置的代码的时候,都git add 文件名称 并 git commit后,这个时候执行git merge 合并时会发生冲突,命令行后缀会进入MERING状态,窗口会提示:
解决冲突
1.发生冲突的第一步就是先定位冲突,然后找到发生冲突的文件以及冲突的内容,执行 git diff 定位冲突
2.然后修改冲突文件内容,再次 git add 文件名称 和git commit 提交后,后缀MERGING消失,说明冲突解决完成。