Git版本控制系统的使用方法.docx
- 文档编号:29758674
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:36
- 大小:4.72MB
Git版本控制系统的使用方法.docx
《Git版本控制系统的使用方法.docx》由会员分享,可在线阅读,更多相关《Git版本控制系统的使用方法.docx(36页珍藏版)》请在冰豆网上搜索。
Git版本控制系统的使用方法
Git版本控制系统的使用方法
一、Git简介
Git是一个分布式版本控制系统,是用来追踪计算机文件的变化的工具,也是一个供多人使用的协同工具。
每个人都可以拥有一个完整的版本库。
分布式版本控制系统的几乎所有操作包括查看提交日志、提交、创建里程碑和分支、合并分支、回退等都可以直接在本地完成而不需要网络连接。
二、Git客户端的下载和安装
Git官方客户端为GitBash,Gitbash是以命令行的形式来操作的,另外本使用方法中可视化软件采用了sourcetree,Gitbash和sourcetree的使用请自行选择,用户需先下载Git和sourcetree。
1.Git的下载和安装:
1)官网地址:
https:
//git-
进入Git官网,由于电脑是Windows系统,选择DownloadsforWindows。
2)右键以管理员身份运行下载的安装包。
3)选择安装路径
4)一直点击Next按钮,当出现下图情况时选择“UseWindows’defaultconsolewindow”,然后点击“Next”
5)继续点击“Next”,最后点击“Install”,等待安装完成。
6)在开始菜单中打开GitCMD
在CMD中输入Git,出现Git的相关提示说明安装成功,如下图所示:
参考文档:
2.Sourcetree下载和安装:
1)首先,下载windows版本的企业版sourceTree。
直接进入官网下载
2)进入下载保存sourceTree的目录,双击SourceTreeEnterpriseSetup_3.0.17.msi文件进行安装
3)安装完成后会出现以下界面,这是需要注册Bitbucket账号,但是注册该账号需要连接外网,所以无法进行,下面是跳过注册的方法。
首先关掉下图中的界面
4)将%LocalAppData%\Atlassian\SourceTree输入到资源管理器中的地址栏,进入sourcetree文件夹,如下图。
5)在该文件夹中新建一个.txt文件,在文件中输入以下内容并保存,然后将文件改名为accounts.json(注意最后文件的类型是JSON文件):
[
{
"$id":
"1",
"$type":
"SourceTree.Api.Host.Identity.Model.IdentityAccount,SourceTree.Api.Host.Identity",
"Authenticate":
true,
"HostInstance":
{
"$id":
"2",
"$type":
"SourceTree.Host.Atlassianaccount.AtlassianAccountInstance,SourceTree.Host.AtlassianAccount",
"Host":
{
"$id":
"3",
"$type":
"SourceTree.Host.Atlassianaccount.AtlassianAccountHost,SourceTree.Host.AtlassianAccount",
"Id":
"atlassianaccount"
},
"BaseUrl":
"
},
"Credentials":
{
"$id":
"4",
"$type":
"SourceTree.Model.BasicAuthCredentials,SourceTree.Api.Account",
"Username":
"",
"Email":
null
},
"IsDefault":
false
}
]
6)找到sourcetree的安装目录,默认安装目录是在%programfiles(x86)%\Atlassian目录,双击SourceTree.exe打开sourcetree,这时可以发现已经跳过了注册,注册完成了。
7)点击下一步,按照下图一步一步来就可以完成安装了。
8)出现下图,就证明已经安装完成了。
参考文档:
三、Gitbash的使用
一般来说,日常使用只要记住下图6个命令,就可以了。
但是熟练使用,恐怕要记住60~100个命令。
几个专用名词的译名如下:
∙Workspace:
工作区
∙Index/Stage:
暂存区
∙Repository:
仓库区(或本地仓库)
∙Remote:
远程仓库
1.用户信息配置
下载之后打开Gitbash是这个样子的,配置用户信息。
如下图:
需要填写账号名和邮箱(账号用姓名的拼音,邮箱用真实邮箱):
gitconfig--globaluser.name“YourName”(注意前边是“--global”,有两个横线)
gitconfig--globaluser.email“email@”
2.创建版本库
在我的电脑中进入到你想建立本地仓库的文件夹,右键弹出选择GitBashHere
要想将此文件夹设为本地仓库,只需输入命令gitinit,如下图:
在该文件夹中会自动创建一个.git的隐藏文件夹,这个目录是Git来跟踪管理版本库的。
命令小结:
#在当前目录新建一个Git代码库$gitinit
3.添加文件到暂存区
首先将需要添加的文件放到版本库文件夹下,例如:
我在该文件夹下创建了一个readme.txt文件,如需将该文件添加到暂存区,只需执行gitaddreadme.txt
当添加了很多个文件时,一个一个文件来添加就显得很麻烦了,如需一次添加所有文件到暂存区,只需执行gitadd.
命令小结:
#添加指定文件到暂存区$gitadd[file1][file2]...
#添加当前目录的所有文件到暂存区$gitadd.
4.提交文件到仓库区
提交到暂存区后,还需通过执行commit命令提交到仓库区,才可以推送程仓库中。
如需将暂存区指定文件提交到仓库区,执行$gitcommit[file1][file2]...-m“修改注释”。
例子如下图:
如需将暂存区所有文件提交到仓库区,执行$gitcommit-m“修改注释”。
命令小结:
#提交暂存区到仓库区$gitcommit-m“修改注释”
#提交暂存区的指定文件到仓库区$gitcommit[file1][file2]...-m“修改注释”
5.版本回退
在平时的工作中你会不断地对文件进行修改,然后不断提交修改到本地版本库中,在你每次commit的时候,Git都会“保存一个快照”。
一旦你把文件该乱了,或者误删了文件,就可以从版本库中选择一个版本来进行恢复,然后就可以继续工作了。
为了恢复到指定的版本,首先我们需要知道该版本的版本号,然后根据这个版本号进行恢复。
1)查看历史记录,获取版本号
执行命令$gitlog,即可显示最近到最远的提交日志,例子如下:
从图中红框内可以看到该版本库所有的提交日志,其中像34550f3…和db66c4696…就是对应提交的版本号(commitid)。
在版本34550f3…中创建了一个reset.txt文件并提交到了版本库中。
2)回退到指定版本
执行命令$gitreset--harddb66c46(其中版本号不需要输全,只需要输入前面几位能与其他版本号区别开就行),即可回退到该版本上
回退版本后,点开工作区可以发现reset.txt文件没有了,证明已经回退到db66c4696…版本了。
如下图:
3)查询命令执行的历史记录
当你回退到过去版本的后,你后悔了,想恢复到之前最新的版本怎么办,这时执行命令$gitlog是无法找到该版本号的。
这时可以通过执行命令$gitreflog来查看你执行过什么命令,这样就能知道之前最新版本的版本号了。
例子如下:
在图中红框内可以发现之前执行的命令,如红框内就记录了以前的最新版本的版本号了。
有了这个版本号,就可以回到该版本了,执行命令$gitreset–hard34550f3。
这时再次打开工作区,你可以发现reset.txt文件又出现了,证明版本又回到了最新版本。
命令小结:
#查看提交历史记录$gitlog
#查看执行命令的历史记录$gitreflog
#回退到指定版本$gitreset–hard[commit-id]
6.分支管理
Git鼓励大量使用分支
1)分支的简介
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。
在Git里,有一条主分支,即master分支。
HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点,他们的关系如下图:
当创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上,在dev上提交一次修改后,他们的关系就如下图:
2)分支的作用
假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。
如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。
你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。
3)创建分支
通过执行命令$gitcheckout-b[branch-name],即可创建一个新的分支并且切换到该分支上。
例子如下:
4)切换分支
执行命令$gitcheckout[branch-name],即可切换到指定的分支上。
例子如下:
5)查看分支
执行命令$gitbranch,即会列出所有的分支,*号会标记出当前所在的分支
6)合并分支
在dev分支下工作并commit修改后,如果想将dev分支和master分支合并到一起,需要先切换回master分支,然后通过执行命令$gitmergedev,即可将dev分支合并到master分支中了。
gitmerge命令是将指定分支合并到当前分支。
例子如下:
7)删除分支
当合并完成后,在dev分支上做的改动就已经合并到master分支上了,如果这时已经不需要dev分支了,可以放心地把dev分支删除掉。
执行命令$gitbranch–ddev。
执行命令$gitbranch就可以看出dev分支已经被删除了。
命令小结:
#查看分支$gitbranch
#创建分支$gitbranch[branch-name]
#切换分支$gitcheckout[branch-name]
#创建+切换分支$gitcheckout–b[branch-name]
#合并某分支到当前分支$gitmerge[branch-name]
#删除分支$gitbranch–d[branch-name]
Git的分支是一个很强大的功能,可以说是Git的“必杀技特性”,由于篇幅问题,更详细的介绍以及远程分支管理请参阅该链接:
7.生成sshkeys
可以通过执行命令$ssh-keygen-trsa-C"邮箱地址"生成sshkeys,然后连续按Enter键三次,既可生成id_rsa和id_rsa.pub文件,该文件生成在C:
\Users\Admin\.ssh目录下,其中需要复制id_rsa.pub文件中的内容到服务器上的用户中心的SSHKeys上。
当上传了公钥后,执行命令ssh-l
8.添加和连接一个远程仓库
多人协作中,需要有一个Git版本库服务器。
可以通过执行$gitremoteaddoriginURL来添加和连接到该远程仓库上,其中origin为远程仓库的代称,URL可使用个人账号登录到服务器上在对应的版本库中获取。
例子如下图:
可以通过执行命令$gitremote–v来查看已经连接到什么远程仓库。
命令小结:
#增加一个新的远程仓库,并命名$gitremoteaddoriginURL
#显示所有远程仓库$gitremote–v
9.克隆远程仓库到本地仓库
gitclone顾名思义就是将其他仓库克隆到本地,包括被clone仓库的版本变化。
举个例子,你当前目录比方说是在e:
/course/中,此时若想下载远程仓库,本地无需gitinit,直接执行命令$gitcloneURL(URL为远程库的链接)。
执行gitclone等待clone结束,e:
/course/目录下自动会有一个.git的隐藏文件夹(如果看不见,请尝试设置隐藏文件夹可见),因为是clone来的,所以.git文件夹里存放着与远程仓库一模一样的版本库记录。
clone操作是一个从无到有的克隆操作,再次强调不需要gitinit初始化。
例子如下图:
图中文件夹test1文件夹就是从远程仓库克隆下来的。
命令小结:
#下载一个项目和它的整个代码历史$gitclone[url]
10.从远程仓库中抓取与拉取
从远程仓库中获得数据,可以执行:
$gitfetch[remote-name]。
这个命令会访问远程仓库,从中拉取所有你还没有的数据。
执行完成后,你将会拥有那个远程仓库中所有分支的引用,但是这些变化还没合并到你的本地仓库中,如果需要可以随时合并或查看。
合并的命令:
$gitmerge[branch]。
冲突的解决:
当在合并的时候有可能会出现冲突,可以通过执行命令$gitstatus查看什么文件产生了冲突,其中Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,修改后保存,然后gitadd和gitcommit就可以再次进行合并了。
如下图:
如果你使用clone命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以“origin”为简写。
所以,gitfetchorigin会抓取克隆(或上一次抓取)后新推送的所有工作。
必须注意gitfetch命令会将数据拉取到你的本地仓库,但它并不会自动合并或修改你当前的工作。
因为拉取下来的版本可能会存在一些冲突,需要手动去解决这个冲突,当解决完成后再手动将其合并入你的工作。
如果你有一个分支设置为跟踪一个远程分支,可以使用$gitpull[remote][branch]命令来自动的抓取然后合并远程分支到当前分支。
这对你来说可能是一个更简单或更舒服的工作流程;默认情况下,gitclone命令会自动设置本地master分支跟踪克隆的远程仓库的master分支(或不管是什么名字的默认分支)。
运行gitpull通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。
命令小结:
#下载远程仓库的所有变动$gitfetch[remote]
#合并远程仓库的变化$gitmerge[branch]
#取回远程仓库的变化,并与本地分支合并$gitpull[remote][branch]
11.推送到远程仓库
当你想推送你的项目到远程仓库时,可执行命令gitpush[remote-name][branch-name]。
当你想要将master分支推送到origin服务器时,那么运行这个命令就可以将你所做改变备份到服务器。
只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。
当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。
你必须先将他们的工作拉取(pull)下来(如果出现冲突,需先解决冲突)并将其合并进你的工作后才能推送。
例子如下图:
命令小结:
#推送到远程仓库$gitpush[remote-name][branch-name]
参考文档
Git浅显易懂的使用教程(系列教程):
Git的日常使用命令:
Git的官方详细介绍使用教程:
https:
//www.git-
四、Sourcetree的使用
在上一节“Gitbash的使用”中已经对Git各功能的命令进行了分解介绍,在本节中将通过实例操作来介绍sourcetree的使用,sourcetree是Git的可视化客户端,Gitbash和sourcetree的使用请自行选择。
还有请注意,没有什么事情是图形界面客户端可以做而命令行客户端不能做的;命令行始终是你可以完全操控仓库并发挥出全部力量的地方,如果需要在命令行中操作,sourcetree中也可以进行命令行的操作,它的位置如下图:
Sourcetree中部分名词的译名如下:
提交:
commit
拉取:
pull
推送:
push
获取:
fetch
分支:
branch
合并:
merge
1、从Git服务器上获取项目
其中的URL为远程库的链接
2、提交我的修改项目
3、发布新版本
4、修复bug
参考文档
Sourcetree快速上手使用教程:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Git 版本 控制系统 使用方法
![提示](https://static.bdocx.com/images/bang_tan.gif)