Git的基本操作

Git的基本操作

  • 一、Git概述
    • Git仓库类型
    • Git三大操作
    • Git工作流程
    • Git的工作目录、暂存区以及版本库
    • Git代码托管服务器
  • 二、Git的安装
    • 1、安装git
    • 2、安装TortoiseGit
    • 3、安装中文语言包
  • 三、Git的常用操作
    • 1.创建版本库
    • 2.添加文件
    • 3.提交修改
    • 4.查看修改记录
    • 5.差异比较
    • 6.还原修改
    • 7.删除文件
    • 8.忽略文件或文件夹
  • 四、远程仓库
    • 1.添加远程库
    • 2.SSH协议
    • 3.同步到远程仓库
    • 4.从远程仓库克隆
    • 5.从远程仓库取代码
    • 6.搭建Git服务器
  • 五、分支管理
      • 1.创建分支
      • 2.合并分支
      • 3.解决冲突
  • 六、在IDEA中配置Git
    • 1.将项目添加到Git
    • 2.推送到远程
    • 3.从远程仓库克隆
    • 4.从服务端拉取代码

一、Git概述

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS)

官网:https://git-scm.com/download

Git仓库类型

Git有两种类型的仓库:

本地仓库:是在开发人员自己电脑上的Git仓库

远程仓库:是在远程服务器上的Git仓库

Git三大操作

Git有三大常用操作:

Clone:克隆,就是将远程仓库复制到本地

Push:推送,就是将本地仓库代码上传到远程仓库

Pull:拉取,就是将远程仓库代码下载到本地仓库

Git的基本操作_第1张图片

Git工作流程

1.从远程仓库中克隆代码到本地仓库

2.从本地仓库中checkout代码然后进行代码修改

3.在提交前先将代码提交到暂存区

4.提交到本地仓库。本地仓库中保存修改的各个历史版本

5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库

Git的基本操作_第2张图片

Git的工作目录、暂存区以及版本库

1.工作目录

工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码

Git工作目录下的文件存在两种状态:

1.untracked 未跟踪(未被纳入版本控制)

2.tracked 已跟踪(被纳入版本控制)
	   Unmodified 未修改状态
	   Modified 已修改状态
	   Staged 已暂存状态

这些文件的状态会随着执行Git的命令发生变化

当新建一个文件后,文件状态:untracked 未跟踪

当执行git add 文件后,文件处于暂存区,文件状态:Staged 已暂存状态

当git commit 文件后,文件被纳入版本控制库,文件状态:Unmodified 未修改状态

当修改这个文件后,文件状态:Modified 已修改状态

2.暂存区

暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

3.版本库

版本库:看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

Git的基本操作_第3张图片

Git代码托管服务器

常用的Git代码托管服务器有GitHub码云GitLab等。

gitHub(https://github.com)是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub

码云(https://gitee.com)是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快

GitLab(https://about.gitlab.com)是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

二、Git的安装

高速下载之安装包集合 (密码:ehdz)

1、安装git

Git官网
Git的基本操作_第4张图片

1.双击Git安装程序,一路“Next”使用默认选项。

Git的基本操作_第5张图片

2.查看是否安装成功: git --version

在这里插入图片描述

2、安装TortoiseGit

TortoiseGit官网
Git的基本操作_第6张图片

双击TortoiseGit程序,一路“Next”使用默认选项。

Git的基本操作_第7张图片

选择Git默认的SSH连接,使用默认第一项Putty也可以。

Git的基本操作_第8张图片

安装路径根据自己需求决定

Git的基本操作_第9张图片

到最后有个初始化配置,默认选项下会启动配置画面。默认继续下一步。

Git的基本操作_第10张图片

配置git.exe,找到git.exe所在的目录。

Git的基本操作_第11张图片

配置开发者姓名及邮箱,每次提交代码时都会把此信息包含到提交的信息中。

Git的基本操作_第12张图片

安装完毕后在系统右键菜单中会出现git的菜单项。

Git的基本操作_第13张图片

若安装出现异常:

Could not write value to key \ *** \ *** \ Verify that you have sufficent access to that key , or contact your support personnel

使用管理员权限进入CMD执行:

msiexec /package  C:\Users\Admin\Downloads\Programs\TortoiseGit-2.13.0.1-64bit.msi

3、安装中文语言包

安装中文语言包不是必选项的,根据个人情况选择安装。双击  ,直接“下一步”完成安装。

Git的基本操作_第14张图片

语言包安装完毕后可以在TortoiseGit的设置中调整语言

Git的基本操作_第15张图片
Git的基本操作_第16张图片

三、Git的常用操作

1.创建版本库

版本库又名仓库,英文名repository。可以简单理解成一个目录,目录里面的所有文件都可以被Git管理,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力。

可以使用git bash或者使用tortoiseGit创建一个版本库。选择一个合适的地方,创建一个空目录,例如:D:\repository。

1.使用GitBash

在当前创建的空目录中点击右键选择Git Bash来启动

Git的基本操作_第17张图片
Git的基本操作_第18张图片

创建仓库执行命令: git init

2.使用TortoiseGit

使用TortoiseGit时只需要在创建的空目录中点击右键菜单选择“在这里创建版本库”

Git的基本操作_第19张图片
Git的基本操作_第20张图片

版本库创建成功,会在此目录下创建一个.git的隐藏目录	

Git的基本操作_第21张图片

2.添加文件

添加过程

1.在工作目录创建Test.txt文件

Git的基本操作_第22张图片

2.添加Test.txt文件到暂存区

Git的基本操作_第23张图片
Git的基本操作_第24张图片

添加文件到暂存区后,文本文件变为带“+”号的图标

Git的基本操作_第25张图片

3.提交文件到版本库

Git的基本操作_第26张图片
Git的基本操作_第27张图片
Git的基本操作_第28张图片
工作区和暂存区

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。

“.git”目录就是版本库,将来所有文件都需要保存到版本库中。

包含“.git”目录的目录,也就是.git目录的上一级目录就是工作目录。只有工作目录中的文件才能保存到版本库中。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

Git的基本操作_第29张图片

把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

创建Git版本库时,Git自动创建了唯一一个master分支,所以git commit就是往master分支上提交更改。

3.提交修改

被版本库管理的文件不可避免的要发生修改,此时只需要直接对文件修改即可,修改完毕后需要将文件的修改提交到版本库。

修改文件后,文本文件上出现带"叹号"的图标

Git的基本操作_第30张图片
Git的基本操作_第31张图片
Git的基本操作_第32张图片

提交文件到版本库后,文件出现带"√"的绿色图标

Git的基本操作_第33张图片

4.查看修改记录

在开发过程中有可能会查看代码的修改历史(修改日志),通过日志记录查看某个版本是谁修改的,什么时间修改的,修改了哪些内容。

Git的基本操作_第34张图片
Git的基本操作_第35张图片

5.差异比较

当文件内容修改后,需要和修改之前对比一下修改了哪些内容此时可以使用“比较差异功能“
Git的基本操作_第36张图片
在这里插入图片描述

6.还原修改

当文件修改后不想把修改的内容提交,还想还原到未修改之前的状态。此时可以使用“还原”功能。

还原操作会撤销所有未提交的修改,所以当做还原操作是需要慎重!

修改还原之前

Git的基本操作_第37张图片

开始还原

Git的基本操作_第38张图片
Git的基本操作_第39张图片
Git的基本操作_第40张图片

还原后

Git的基本操作_第41张图片

7.删除文件

删除本地文件并提交修改会同步删除版本库中的文件

Git的基本操作_第42张图片

执行删除并保存本地副本以及提交修改后,会删除版本库中的文件,保留本地文件

Git的基本操作_第43张图片

执行删除并保存本地副本且未提交时

Git的基本操作_第44张图片
Git的基本操作_第45张图片

执行提交修改操作后

Git的基本操作_第46张图片

版本库中文件也被删除

Git的基本操作_第47张图片

8.忽略文件或文件夹

将一个项目工程复制到工作目录,并将项目工程文件添加到暂存区

Git的基本操作_第48张图片
Git的基本操作_第49张图片

在一个项目工程中,并不是所有文件都需要保存到版本库中,例如target编译目录。

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

TortoiseGit可以直接使用菜单项进行选择忽略。

Git的基本操作_第50张图片
Git的基本操作_第51张图片

点击确定后,选择保留本地文件。完成后在此文件夹内会多出一个.gitignore文件,这个文件就是文件忽略文件,当然也可以手工编辑。

Git的基本操作_第52张图片
在这里插入图片描述

将.gitignore文件添加到暂存区,同代码提交到版本库。

Git的基本操作_第53张图片
忽略文件语法规范

1.空行或是以 # 开头的行即注释行将被忽略。
	# 注释说明

2.在前面添加正斜杠 / 来避免递归。
	/build:仅在当前目录下忽略 build文件夹,不包括其他目录


3.在后面添加正斜杠 / 来忽略文件夹。
	 build/	: 忽略 build/文件夹下的所有文件
	 build/*.txt	: 只会忽略build/目录下以txt结尾的文件,不包括build/s/*.txt

4.使用 ! 来否定忽略,比如在前面用了 *.apk ,然后使用 !a.apk ,则这个a.apk不会被忽略。
	*.txt  !hello.txt :  忽略 .a 文件, 但否定忽略 hello.txt

5.* 用来匹配零个或多个字符。 
    *.a: 忽略 所有以.a 结尾的文件
 	*.[oa] :忽略所有以".o"或".a"结尾
 	
6.*~ 忽略所有以 ~ 结尾的文件(这种文件通常被许多编辑器标记为临时文件);

7.[] 用来匹配括号内的任一字符,如 [ab] ,也可以在括号内加连接符,如 [0-9] 匹配0至9的数; 

8.? 用来匹配单个字符。 

四、远程仓库

1.添加远程库

1.在github上创建仓库

Git的基本操作_第54张图片

Git的基本操作_第55张图片

2.SSH协议

SSH 为 Secure Shell(安全外壳协议)的缩写,由 IETF 的网络小组(Network Working Group)所制定。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

1.基于密匙的安全验证

使用ssh协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

2.ssh密钥生成

右键 选择 git bash 执行命令 ssh-keygen -t rsa ,一路敲回车使用默认即可,生命公钥和私钥。

Git的基本操作_第56张图片

执行命令完成后,在window本地用户.ssh目录C:\Users\用户名\.ssh下面生成公钥和私钥。

在这里插入图片描述
3.SSH密匙配置

将生成的密钥在github上进行配置,本地才可以顺利访问。

将id_rsa.pub文件内容添加到key部分,然后点击“Add SSH key”按钮完成配置。

Git的基本操作_第57张图片

3.同步到远程仓库

使用git bash

在仓库所在的目录(D:\repository)点击右键选择“Git Bash Here”,启动git bash程序.

执行添加远程仓库与推送远程仓库命令:
	git remote add origin [email protected]:ChinaJackChen/Test.git
	git push -u origin master

Git的基本操作_第58张图片
Git的基本操作_第59张图片

出现fatal: remote origin already exists.错误。需要先删除在添加
 	git remote rm origin
    git remote add origin [email protected]:ChinaJackChen/Test.git

Git的基本操作_第60张图片
使用TortoiseGit同步

由于TortoiseGit使用的ssh工具是“PuTTY”git Bash使用的ssh工具是“openSSH”,如果想让TortoiseGit也使用刚才生成的密钥可以做如下配置

Git的基本操作_第61张图片

远端:默认名称origin,可以改名
Url:远程仓库的地址
推送URL:远程仓库的地址
Putty密钥:选择刚才生成的密钥中的私钥

Git的基本操作_第62张图片

本地仓库的文件夹中右键,选择“Git同步”,点击推送。

Git的基本操作_第63张图片

Git的基本操作_第64张图片
Git的基本操作_第65张图片

4.从远程仓库克隆

克隆远程仓库也就是从远程把仓库复制一份到本地,克隆后会创建一个新的本地仓库。
使用git bash

git clone [email protected]:ChinaJackChen/TestDemo.git

使用TortoiseGit

任意目录点击右键,选择`Git 克隆`,输入远程仓库地址。

Git的基本操作_第66张图片

5.从远程仓库取代码

  1. git fetch: 从远程获取最新版本到本地,不会自动merge(合并代码)
  2. git pull:从远程获取最新版本并merge到本地
  3. 使用TortoiseGit,点击右键菜单,选择“拉取”(pull)或者“获取”(fetch)

Git的基本操作_第67张图片

6.搭建Git服务器

五、分支管理

在Git里,默认分支叫主分支,即master分支。master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点。HEAD指针指向master,master指向提交的节点,所以,HEAD指向的就是当前分支。

当创建新的分支,新分支dev时,Git就新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上

在dev分支进行修改和提交就只会针对dev分支,比如新提交一次后,dev指针往前移动一步,而master指针不变。

把dev分支合并到master分支上,直接把master指向dev的当前提交,就完成了合并,合并完分支后,可以删除dev分支,删除dev分支就是把dev指针给删掉。

1.创建分支

如果想创建完毕后直接切换到新分支可以选择“切换/检出”或者在“创建分支”中 勾选“切换到新分支”。

Git的基本操作_第68张图片
Git的基本操作_第69张图片

2.合并分支

分支切换到dev后就可以对工作区的文件进行修改,然后提交到dev分支,原来的master分支不受影响。

在dev分支修改.gitignore文件,并提交到本地仓库。

Git的基本操作_第70张图片
Git的基本操作_第71张图片

右键菜单选择“切换/检出”,选择master分支,切换到master分支后,dev分支修改内容不会影响master分支文件内容

Git的基本操作_第72张图片
Git的基本操作_第73张图片

在master分支修改.gitignore文件,并提交到本地仓库。

Git的基本操作_第74张图片
Git的基本操作_第75张图片

将dev分支的内容合并到master分支,当前分支为master。从右键菜单中选择“合并”。

Git的基本操作_第76张图片
Git的基本操作_第77张图片

正常情况下,dev分支上修改的内容会合并到master分支上。

3.解决冲突

两个分支中编辑的内容都是相互独立互不干扰的,如果在两个分支中都对同一个文件进行编辑,然后再合并,就有可能会出现冲突。

Git的基本操作_第78张图片

Git的基本操作_第79张图片

在冲突文件上右键选择“解决冲突”菜单项,把冲突解决完毕的文件提交到版本库

Git的基本操作_第80张图片
Git的基本操作_第81张图片

六、在IDEA中配置Git

配置Git安装路径,idea一般会自动找到git的安装位置。

Git的基本操作_第82张图片

1.将项目添加到Git

创建本地仓库,在菜单中选择“vcs”→Import into Version Control→Create Git Repository.

Git的基本操作_第83张图片

创建本地仓库后,工具栏上就多出git相关工具按钮

在这里插入图片描述

将项目工程添加到git本地仓库

Git的基本操作_第84张图片

2.推送到远程

在github上创建一个仓库然后将本地仓库推送到远程。在菜单中选择vcs→git→push或其他方式。

Git的基本操作_第85张图片

点击“push”按钮就将本地仓库推送到远程,如果是第一次配置推送需要输入github的用户名和密码。

Git的基本操作_第86张图片

3.从远程仓库克隆

关闭工程后,在idea的欢迎页上有“Check out from version control”,点击选择版本控制工具。

Git的基本操作_第87张图片

在项目中点击“file New Project from Version Control”,然后选择版本控制工具

Git的基本操作_第88张图片
Git的基本操作_第89张图片

4.从服务端拉取代码

在这里插入图片描述

你可能感兴趣的:(#,Git,git,github,intellij,idea)