Git介绍
Git是在2005年,Linux系统的创建者Linus Torvalds,为了帮助全球的开发者,维护Linux系统内核的开发 而开发了自己的开源分布式版本控制工具,可以解决开发中代码备份丶版本控制丶协同工作丶责任追溯...问题。
常见的版本控制
- SVN版本控制:SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑, 所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。服务器单点故障,将会导致所有人员无法工作,而服务器硬盘损坏,这意味着,你可能失去了该项目的所有历史记录,这是毁灭性的。
- Git版本控制:开源分布式版本控制工具,分为两种类型的仓库:本地仓库和远程仓库。每一个客户端都保存了完整的历史记录。服务器的故障,都可以通过客户端的记录得以恢复。
Git下载和安装,建议百度
Git操作入门
Git基本工作流程之本地仓库

git常用命令

执行流程
- 创建工作目录、初始化为本地 git 仓库
- 添加文件到暂存区
- 暂存区文件,提交到本地历史仓库
Git版本管理

我们可以通过版本唯一索引值,切换到需要的版本
分支管理
概述:由每次提交的代码,串成的一条时间线,使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。分支的使用场景:周期较长的模块开发丶尝试性的模块开发
分支工作流程:
- Master: 指向提交的代码版本
- Header: 指向当前所使用的的分支

分支的常见操作有创建丶切换丶合并丶删除....
Git基本工作流程之远程仓库

先有本地项目,远程为空
-
创建本地仓库
-
创建或修改文件,添加(add)文件到暂存区,提交(commit)到本地仓库
-
创建远程仓库
-
推送到远程仓库
先有远程仓库,本地为空
-
将远程仓库的代码,克隆到本地仓库
-
创建新文件,添加并提交到本地仓库
-
推送至远程仓库
-
项目拉取更新
代码冲突
产生原因:两个程序员操作同一个文件,其中一个程序员在修改文件后,push到远程仓库,另一个程序员应该先pull将最新的代码更新到本地仓库后,在修改代码,之后push到远程仓库,结果他没有先pull将最新的代码更新到本地仓库,而是直接将自己的代码push到远程仓库,这样就可能会导致代码冲突。

IDEA集成Git
IDEA中配置Git
1:File -> Settings

2:Version Control -> Git -> 指定git.exe存放目录

3:点击Test测试

idea创建本地仓库
1:VCS->Import into Version Control->Create Git Repository

2:选择工程所在的目录,这样就创建好本地仓库了

3:点击git后边的对勾,将当前项目代码提交到本地仓库,注意: 项目中的配置文件不需要提交到本地仓库中,提交时,忽略掉即可

版本切换
方式一: 控制台Version Control->Log->Reset Current Branch...->Reset 这种切换的特点是会抛弃原来的提交记录

方式二:控制台Version Control->Log->Revert Commit->Merge->处理代码->commit这种切换的特点是会当成一个新的提交记录,之前的提交记录也都保留


分支管理
创建分支:VCS->Git->Branches->New Branch->给分支起名字->ok

切换分支:idea右下角Git->选择要切换的分支->checkout

合并分支:VCS->Git->Merge changes->选择要合并的分支->merge

处理分支中的代码

删除分支:idea右下角->选中要删除的分支->Delete

本地仓库推送到远程仓库
1:VCS->Git->Push->点击master Define remote

2:将远程仓库的路径复制过来->Push

远程仓库克隆到本地仓库
File->Close Project->Checkout from Version Control->Git->指定远程仓库的路径->指定本地存放的路径->clone
