赞
踩
git是一个免费的开源分布式版本控制系统,可以快速高效的处理各种大小型项目中的事务;git是Linuxs继Linux之后开发出的第二个伟大开源项目;
例如我们一个小团队合作开发一个项目,我们可以先建立一个远程仓库,需求分析,搭建大体框架,将项目框架上传至远程仓库,队员可以git clone项目,各自完成自己负责的部分,完善项目等,写好之后还可以比对之前的版本,本地项目写好之后上传至远程仓库,出现错误还可以版本回退等等,总之,git很强大,非常好用
注:git是一个管理项目版本的工具,这个版本指的是我们代码的版本,比如说:一个软件是什么什么版本的;指的是这个版本,那么我们开发项目写代码也会不断的更新代码,每更新一次代码就是更新版本,git就是帮助我们来管理这些不同的版本的;
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
下面就是分布式版本控制工具的管理方式:
1.从远程仓库中克隆 Git 资源作为本地仓库。
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区。
4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。
git在windows下的安装包我们可以从git官网中去下载,下载对应的windows版本的就可以;
下载成功之后安装到我们的Windows系统上,安装方式按照提示一直点击下一步就可以(也可以修改安装的路径);
安装成功后在桌面或任意位置按下鼠标右键弹出的窗口中就会出来git的两个入口,如下:
第一个是:git默认提供的客户端,但是我们一般不使用这个
第二个是:git提供的命令行窗口,我们一般使用这个来操作git
这里我使用了一个TortoiseGit的客户端来操作git,这个比较强大也非常简单好用;
点击这里下载TortoiseGit ;TortoiseGit默认只支持英文版的,如果想要使用中文我们还可以下载一个中文包对这个工具进行一下汉化
需要先安装TortoiseGit工具成功之后,再进行安装中文包进行汉化,在安装TortoiseGit工具的过程中会遇到 配置git.exe所在的目录,在git的安装目录中找到该git.exe所在的目录既可,之后会配置开发者姓名及邮箱,每次提交代码时都会把此信息包含到提交的信息中;以上的过程比较简单,这里就不详细介绍了;
以上git和TortoiseGit工具安装成功后,在按下鼠标右键弹出的窗口中就会出现变化。如下:
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力。
版本库:“.git”目录就是版本库,将来文件都需要保存到版本库中。
工作目录: 包含“.git”目录的目录,也就是.git目录的上一级目录就是工作目录。只有工作目录中的文件才能保存到版本库中。
创建一个版本库非常简单,可以使用git bash也可以使用tortoiseGit。首先,选择一个合适的地方,创建一个空目录(D:\temp\git\repository)。
3.1.2、使用GitBash来创建本地版本库
我这里是在桌面上新建的一个目录repository,如下:
在这个目录中按下鼠标右键,打开我们刚才看到的git的两个选项,然后点击 Git Base Here打开命令窗口,在命令窗口中输入 git init 该目录中就会出现一个 .git的隐藏文件夹,此时使用gitBase命令创建本地仓库就完成了,这个repository目录就是一个本地仓库,该目录下的所有内容都会纳入git的管理范围,如下:
3.1.3、使用TortoiseGit来创建本地版本库
现在我们使用刚才安装的TortoiseGit工具来创建本地仓库,先将repository目录中的 .git 隐藏目录删除(我们使用工具重新创建),删除这个之后就代表这个目录是一个普通的目录了;
还是在我们刚才创建的repository目录中,按下鼠标右键选择 “在这里创建本地库”
点击这个之后就会弹出一个选择框,不勾选框中的东西,直接点击确定即可,之后会弹出一个提示框点击确定, 说明本地窗口已经创建成功了;回到repository目录中会和使用命令一样出现一个 .git 的隐藏目录
注:我们要想在本地仓库中添加文件,该文件必须在repository(工作目录)下,否则不能加进来
3.2.1、使用GitBash添加文件到本地版本库
我们首先在刚才创建好的本地版本库中创建一个txt文件,并添加上内容‘123456’
会发现这个文件上面有一个问好样式的图标,没有的话刷新或重启一下电脑就可以了(这个有没有不影响);
在这里还是打开git Base的命令窗口,输入:
git add test.txt //添加到缓冲区
git status //查看缓冲区状态
这个步骤表示将文件添加到暂存区中,
然后把文件提交到本地仓库:
git commit -m '第一次提交' //提交到本地仓库 单引号里面为本次提交的日志信息
此时再去暂存区中查看,会发现什么也没有了;
3.2.2、使用TortoiseGit添加文件到本地版本库
这里我在本地仓库中新建了一个txt文件,用于测试使用 TortoiseGit工具添加文件到本地仓库;
选中新建的这个hello2.txt文件,按下鼠标右键,就会出来TortoiseGit工具操作的选项
点击这个选项执行后,就会弹出一个提示框,点击确定即可,就表示将该文件添加到暂存区了
在该repository目录下或在该hello2.txt文件上按下鼠标右键,就会出现 Git提交
点击提交就会弹出确认的窗口
点击提交后会出现实时的状态窗口,完成后点击关闭即可,
以上就表示成功的将文件添加到本地仓库中
刚才介绍了如何将文件添加到暂存区并提交到工作区中,那么在实例应用中我们通常操作的都是目录;比如说一个项目将整个项目添加到暂存区并提交到工作区,那么这时候我们不想将项目中的所有文件都提交到工作区中,这个时候就要设置在添加暂存区时忽略不添加的文件,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件,这里使用TortoiseGit工具介绍:
选中我们要忽略的目录或文件右键打开TortoiseGit选项,接着再打开里面的添加到忽略列表选项,打开设置忽略的页面窗口
点击确定之后就表示将该目录设置忽略,添加的时候该目录及里面的所有文件都不会添加和提交,同时和目录平级的目录中也会生成一个特殊的.gitignore文件,里面就有要忽略的目录和文件的名称,添加和提交时加上这个文件,git就会自动忽略里面设置的文件和目录;
3.2.4、查看本地仓库中的信息
刚才介绍了提交文件到本地仓库,提交成功后我们还可以查看本地仓库中的文件是否真正的的添加到了本地仓库中,或者想查看本地仓库中的内容信息
首先第一步:在本地仓库中repository目录下右键打开工具的选项:
点击版本库浏览器后就会出现版本库的文件浏览窗口,会看到我们刚才已经提交到本地仓库的两个文件
刚才在介绍向本地仓库添加文件的时候,说到了暂存区,下面简单介绍一下工作区和暂存区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。
什么是工作区(Working Directory)?
工作区就是你在电脑里能看到的目录,比如我的reporstory文件夹就是一个工作区。
有的人可能会说repository不是版本库吗怎么是工作区了?其实repository目录是工作区,在这个目录中的“.git”隐藏文件夹才是版本库。这回概念清晰了吧。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区;
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
分支的概念稍后介绍
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件通通放到暂存区,然后,一次性提交暂存区的所有修改。
3.3.1、使用GitBash命令修改文件
使用git命令修改的话,首先对文件进行修改比如添加一些字符,再打开git命令窗口执行如下命令即可
git add hello2.txt //将该文件重新添加到暂存区
git commit -m '对hello2文件的修改' //提交文件到本地仓库
3.3.2、使用TortoiseGit工具修改文件
我们想对已经提交到本地仓库中的文件进行修改的话,只需要对工作目录中的文件打开进行修改即可,修改后再提交到本地仓库,这样就完成了对本地仓库中的文件的修改;
第一步:修改文件的内容
第二步:对修改的文件重新提交到本地仓库,点击提交之后就会出现,我们添加文件时出现的输入日志和确定的窗口,输入本次提交的日志点击提交,即可,这样就使用工具对本地仓库的文件完成的修改
3.3.3、查看文件修改的历史
那么刚才对已经提交到本地仓库的文件进行了修改,同样我们也可以进行多次修改,这个时候呢想要查看这个文件的修改历史也是可以的;
在工作区中(repository目录)中按下鼠标右键,找到如下选项,就可以打开我们对该本地仓库的操作历史记录
刚才介绍了查看我们对本地仓库中的文件操作历史,那么在历史记录中我们想看对这个文件每次操作的区别,或者说这个版本相比较上一个版本有什么不同之处,修改了那些内容,也是可以完成的
首先我们在查看操作日志的界面,选中要比较的两个文件,右键就会出来显示版本差异的选项,点击比较版本差异后就会出现一下的页面(是两次修改的信息),之后再点击下面要查看的文件,就会出现如下的比较两个不同版本文件的内容
3.4.1、第一种
先来介绍一个最简单的删除本地仓库中文件的方法
要想删除本地仓库中的文件的话,我们可以直接在工作区中将想删除的文件删除,那么此时呢本地仓库中还是存在的,再执行提交这时候本地仓库中就没有了,这里就不演示了
3.4.2、使用GitBash命令删除文件
如果使用git命令来删除文件的话,在工作区中打开git Base命令窗口输入以下命令,就可以删除
git rm hello3.txt //从工作区中删除,但是版本库中还存在
git commit -m '删除hello3文件' //从版本库中删除
3.4.3、使用TortoiseGit工具删除文件
使用TortoiseGit工具删除文件的话,选中要删除的文件右键找到TortoiseGit选项,再找到TortoiseGit选项中的删除,点击删除,会出现确定框,点击确认之后这个文件就在工作区中删除了,但是版本库中还是存在的,如果再执行提交的话版本库中就没有了
3.4.3、再仓库中删除但是保留原文件
那么有时候呢我们也会遇到这样的场景,就是一个文件我们只想让他在仓库中删除,但是本机的目录中还是要保留这个文件,这个时候就会使用到上图中的删除并保留本地副本这个选项,这个用法呢还是和删除选项一样,但是结果却不一样,这个选项执行之后会在仓库中删除该文件,但是该文件仍然会在我们的目录中保留;
如果我们在本地仓库中删除文件的过程中,误删了文件或者删除错了,那么这个时候还是可以还原的;
在工作区中右键找到TortoiseGit选项,再找到该选项中的还原,就会出现选择还原文件的查看,选择要还原的文件后,点击确定即可将删除的文件还原
注:还原的前提是删除文件但并未提交,也就是说工作区中删除了文件但是版本库中还是存在的
刚才介绍了在本地使用git管理文件的版本的操作,那么在开发中我们想让其他人来协助开发,就是共享代码就本地的文件让别人也能访问到也能操作和修改代码; 单靠本地仓库是不能解决这个问题的,因为别人不能访问到我们的本地仓库;这个时候就要使用到远程仓库了,就是在网络上建立一个仓库让他和我们本地的仓库中的数据保持一致,别人访问这个远程仓库就相当于访问我们的本地仓库中的数据了;
远程仓库有两个:gitHub(国外)、gitee(国内)
这两个远程仓库是一样的,基本操作也相同,简单来说github是英文版,gitee是中文版;一般我们推荐使用GitHub,因为github相当于是一个国际软件,知名度也比较高,使用的也比较广;
首先需要注册账号 GitHub注册账号,Gitee注册账号
我这里介绍使用GitHub作为远程仓库;
注册账号后需要在GitHub上创建远程仓库,非常简单 ,这个流程就不详细的介绍了
有了账号和仓库之后现在还不能将本地仓库的数据同步到远程仓库,现在我们需要对远程仓库进行一下配置;因为同步数据有两种方式:https方式建立连接同步、使用SSH方式建立连接同步
(SSH:专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题)
所以需要配置ssh方式的公私钥对
第一步:生成密钥对:
git bash 执行命令,生命公钥和私钥
命令: ssh -keygen -t rsa
执行命令完成后,在window本地用户.ssh目录C:\Users\用户名.ssh下面生成如下名称的公钥和私钥:
密钥生成后需要在github上配置密钥本地才可以顺利访问,在GitHub中打开设置页面,在key部分将id_rsa.pub文件内容添加进去,title表示这个公钥的名字因为可以配置多个嘛,然后点击“Add SSH key”按钮完成配置
配置完成之后我们就可以使用ssh方式将本地仓库中的数据同步到远程仓库了,ssh方式与https方式的主要区别是ssh方式同步的时候不需要再输入其他的验证密码了因为已经使用安全协议配置好了,使用https方式同步的时候有可能会输入密码验证;
1、使用过git bash命令同步到远程仓库
首先在本地仓库的工作目录打开gitBase命令窗口
输入以下命令:
git remote add origin git@github.com:sublun/mytest.git //和远程仓库建立连接
git push -u origin master //将本地仓库推送(同步)到远程
git@github.com:sublun/mytest.git 就是远程仓库使用ssh方式的连接地址,新建仓库后在仓库首页就可以找到,复制到命令窗口即可,如下:
执行上面两个命令后出现以下代码表示同步成功,就可以在远程仓库中看到我们本地仓库的数据了
如果执行第一个命令出现以下错误:
可以先执行如下命令,然后再执行上面的命令
$ git remote rm origin
2、使用过tortoiseGit工具同步到远程仓库
由于TortoiseGit使用的ssh工具是“PuTTY”git Bash使用的ssh工具是“openSSH”,如果想让TortoiseGit也使用刚才生成的密钥可以做如下配置:
在工作区中右键显示tortoiseGit选项,再选择里面的设置选项,打开如下窗口页面
设置完ssh使用的客户端之后,需要再工具中添加一个远程的连接信息配置:
远端:表示这个连接远程仓库信息的名称一般使用origin,如果不是的话添加的时候会提示一下不影响
Url:远程仓库的地址
推送URL:也是相同的
Putty密钥:选择刚才生成的密钥中的私钥
设置完远程的连接信息之后,我们就可以使用工具将本地仓库同步到远程了
再工作目录中右键会看到Git同步选项,点击Git同步会出现如下窗口页面:
点击推送,就会出现正在推送的日志信息,直到出现一下状态表示同步成功,同样在远程仓库中也可以看到和本地仓库相同的数据文件
刚才介绍了将我们本地的数据文件同步到远程仓库,别人就可以看到我们本地的数据信息了有助于协助开发,那么当别人看到我们远程仓库中的代码文件时想要获取到他的本地进行修改,要怎么操作呢?
克隆远程仓库也就是从远程把仓库复制一份到本地,克隆后会创建一个新的本地仓库。选择一个任意部署仓库的目录,然后克隆远程仓库
1、使用过gitBase命令克隆
首先需要在任意地方创建一个新的目录,在此目录下打开gitBase命令窗口,输入以下命令就可以将远程仓库复制一份到本地,这个目录就变成了本地仓库;
git clone git@github.com:sublun/mytest.git
git@github.com:sublun/mytest.git 和同步时一样也是使用ssh方式的连接地址
执行以上命令后如果出现以下代码表示克隆成功
这个时候查看刚才创建的目录中就有了远程仓库中所有的数据文件
2、使用过tortoiseGit工具克隆
这种方式同样需要在任意地方创建一个新的目录,在该目录下右键就会看到git克隆选项,点击git克隆选项就会出现以下窗口页面
点击确定,就会出现克隆的进度日志,出现成功表示克隆到本地成功,此时在看刚才创建的目录中,就有远程仓库中的所有数据文件,这个就成了本地仓库;
以上呢对git的基本操作已经介绍完了,最后来介绍一下git再常用的开发工具idea中的使用和操作;
安装好IntelliJ IDEA后(我使用的是2019.1版本),如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。
选择File→Settings打开设置窗口,找到Version Control下的git选项:
选择git的安装目录后可以点击“Test”按钮测试是否正确配置。根据版本的不同出来的效果也会不同
在idea中创建一个工程,例如创建一个java工程,这个随意、如下图所示:
创建好工程之后,我们需要使用idea创建一个本地仓库
在菜单中选择“vcs”→Import into Version Control→Create Git Repository
选择工程所在的上级目录,然后点击“OK”按钮,在工程的上级目录创建本地仓库,那么选择的这个目录就是本地仓库的工作目录,此目录中的工程就可以添加到本地仓库中。也就是可以把test_git工程添加到本地仓库中。
选择之后在工具栏上就多出了git相关工具按钮:
当我们点击commit提交按钮的时候,就会将目前的这个工程添加到本地仓库中
点击commit提交就会将工程添加到本地仓库中;此时我们用之前介绍的操作查看本地仓库中的数据就会看到本工程;
之前我们介绍了如何在远程gitHub或gitee中创建远程创建,所以这里我们就直接使用idea将工程推送到远程仓库;
在工程上点击右键,选择git→Repository→push,
或者在菜单中选择vcs→git→push
点击“Define remote”链接,配置https形式的URL,git形式的无法通过。然后点击OK
点击“push”按钮就讲本地仓库推送到远程,如果是第一次配置推送需要输入github的用户名和密码。
关闭工程后,在idea的欢迎页上有“Check out from version control”下拉框,选择git
此处仍然推荐使用htts形式的url,点击“test”按钮后显示连接成功。
点击Clone按钮后根据提示将远程仓库克隆下来,然后倒入到idea中。
如果需要从服务端同步代码可以使用工具条中的“update”按钮
附录:
到这里呢对git的一些基本操作和理解就结束了;
努力学习的途中,如有建议,感谢指点;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。