Git教程
谈谈我对Git的了解
之前一开始接触Git的时候总觉得Git难以理解,一直无法很好的记住对应的命令,当然现在命令可以使用可视化界面,例如TortoiseGit。
其实对于版本控制,应该很多人都是了解的,Git能够对我们项目的代码进行托管,我们能够把代码提交上去,能够记录我们对项目代码的修改记录,如果发现错误,也可以通过回滚(就恢复之前的代码状况)。当然,Git还能够实现多分支开发,对于多个开发人员来说,多分支开发能够让每个人各自开发而互补干扰。
下面我就根据我自己的理解,谈谈对Git的使用,尽量通俗易懂得描述出来。
注册Git
前往Git主页注册
Git的推送基本了解
需要了解推送的大概原理,才不会乱,要能够理解三个工作目录。
Git有三个工作目录:
- 本地项目
- 本地仓库
- 远程仓库
如何理解:
- 本地项目:就是你自己编辑的项目文件,你所操作的都是本地项目,如导入到IDE的项目文件;
- 本地仓库其实是初始化在本地的仓库,你可以理解为是一个看不见的仓库,这个仓库记录了你的提交、修改记录;
- 远程仓库和本地仓库是一样的,只是这个仓库存放在Git提供的服务器上;
还是不懂?
举个例子:创建了一个Java的hello world项目,项目src路径下有TestMain.java等文件
- 本地项目:包括该Java项目的src,也就是TestMain.java等项目文件,你所增删改都是对本地项目的文件进行操作
- 本地仓库:本地仓库构建在你的电脑hello world项目文件下,你看不到,会记录你的操作;
- 远程仓库:就是将本地仓库里面的一些提交记录以及代码提交到了Git的服务器,远程仓库会保存你的所有代码以及提交记录。
- 为什么要有本地仓库:因为已经有了远程仓库,貌似可以不需要本地仓库,但本地仓库能够在你没有网络的时候,也能够进行提交、保存,当你有网络的时候,一并提交;而且,本地仓库起到一个暂存的作用。
在Git主页上创建项目
登陆Git,在右上角的+号点击“New respository”
填上项目名称Repository name,以及项目描述Description(可选),项目是公开Public还是私有Private,Private私有项目需要收费,选择Public即可。
- Initialize this repository with a README该选项可选,README表示当别人查看你的项目时候,能够通过README文件了解到你的项目基本情况。
- add .gitignore表示一个项目有部分文件不需要上传,在该.gitignore文件中标明,则可在上传时候进行忽略。可先不选择。
- create respository即可创建项目
关联代码
之前不懂如何将本地的代码和Git上代码进行关联,我们此时已经在Git上创建了一个项目,但我们本地没有对应的项目啊!怎么解决?或者说接下来该怎么办?
接下来是关联的两种方式:
关联第一种方式:
Git上创建的项目会提供一个URL:例如
https://github.com/USER_NAME/REPO_NAME.git
USER_NAME表示你的用户名,REPO_NAME表示项目名通过使用git clone克隆到本地:
$ git init
$ git clone https://github.com/USER_NAME/REPO_NAME.git
此时我们把Git上的项目克隆到了本地,clone下来是一个空的项目,我们可以对其进行修改、添加,然后commit和push,就能提交到Git上对应的项目了。该关联方式不需要执行初始化和关联语句:git init
和git remote add origin <SERVER>
语句,因为clone下来之后已经将本地项目和远程仓库关联上了。
整一个完整的执行过程如下:
$ git clone https://github.com/USER_NAME/REPO_NAME.git
# ...导入IDE,进行修改
#将所有文件加入版本控制
$ git add .
#创建新分支,如果不需要则跳过该语句,默认分支master
$ git checkout -b "new_brance"
#提交到本地仓库,提交信息为your_message
$ git commit -m "your_message"
#提交到远程仓库的master分支,如果前面执行了创建新分支,则这里的master修改为新分支的名字new_brance。
$ git push origin master
关联第二种方式:
如果你的项目文件已经存在,在创建完Git上项目之后,想把本地的项目提交到Git上,则需要使用关联语句git remote add origin <SERVER>
语句。第二种关联方式不需要执行git clone <SERVER>
语句。
$ git remote add origin https://github.com/USER_NAME/REPO_NAME.git
整一个完整的执行过程如下:
# 在当前文件夹下初始化本地仓库
$ git init
# 将所有文件加入版本控制
$ git add .
# 创建新分支,如果不需要则跳过该语句,默认分支master
$ git checkout -b "new_brance"
# 提交到本地仓库,提交信息为your_message
$ git commit -m "your_message"
# 关联Git上仓库
$ git remote add origin https://github.com/USER_NAME/REPO_NAME.git
# 提交到远程仓库的master分支,如果前面执行了创建新分支,则这里的master修改为新分支的名字new_brance。
$ git push origin master
可以仔细对比以上两个完整的执行过程。
Git命令的使用:
对于git的其他命令,如分支检出、合并、冲突解决在本文就不讲解了,其他命令的使用可以查看: Git简单教程
其他说明
两种连接方式
Git对于一个项目文件提供了一个Https的连接,如:https://github.com/USER_NAME/REPO_NAME.git
,此外还有另外一种连接方式:ssh连接,git@github.com:USER_NAME/REPO_NAME.git
- https连接:每次push需要输入用户名和密码
- ssh连接:能够记住账户和密码,不需要每次都输入,连接方式基于ssh,由于ssh连接可能遭受中间人攻击,所以需要生成自己的Deploy keys,并在项目的Setting - Deploy keys中填入你的key。
如果不适用ssh的连接方式,即可不需要生成key,需要了解的话可以google查阅。
可视化操作
对于Git的可视化操作,如使用TortoiseGit等软件,其中对应的道理如同命令行操作,关联方式也一样。