1. Git简介
????????Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。也是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
2. 工作流程
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
下图展示了 Git 的工作流程: 
3. Git安装
????????在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行,Git 各平台安装包下载地址为:http://git-scm.com/downloads 1、下载程序安装包文件 
2、下载完之后,双击安装 
3、选择安装目录 
4、选择组件 
5、开始菜单目录名设置 
6、选择使用命令行环境 
7、以下三步默认,直接点击下一步   
8、安装完成 
4. Idea配置
????????当今Java领域中的开发工具,IDEA应该是最为主流,IDEA支持多种代码版本管理工具,Git就是最重要的一项,IDEA与Git的集成非常方便,通过File->Seting->Version Control->Git 进行相关设置,详细如下。 
????????在Setting界面中选择Git项,在Path to Git executable处选择,上面git的安装目录,这样当前IDEA环境根据此配置找到对应的git,完成环境的集成。通过点击“Test”验证当前是否集成成功,如果成功则弹出当前安装git的版本号。如图所示。 
5. 提交变化
????????从git服务器上正常拉取源码分支,根据需求做对应的功能实现开发,每完成1个功能时需要提交到git服务器进行版本管理,在IDEA中提交代码非常方便,一般通过工具栏git相关功能按钮即可实现,如图。 在Commit Message 框中填写本次版本变化说明后,点击Commit按钮提交到远程服务器。 
????????所有功能开发完成需要将代码同步提交到远程git服务器进行代码共享,即本地代码仓库与远程代码仓库进行同步操作,在IDEA中可以通过右击代码项目,在快捷菜单中选择Git->Repository->Push调出代码提交确认界面。 
根据代码版本变列确认界面所示的变化项,点击Push完成提交操作。 
6. 放弃变更
????????有时候,我们用Git的时候有可能commit提交代码后,发现这一次commit的内容是有错误的,哪么需要使用git reset 命令撤销这一次错误的commit。 如果是最近的一次提可以使用Undo commit 命令来撤销本次提交内容,但如果是以前的历史提交内容,则可能需要用的如下参数进行重置。 **–hard:**重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。 **–soft:**重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。 –mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。 使用场景: –hard:想抛弃目标节点后的所有commit(可能觉得目标节点到原节点之间的commit提交都是错了,之前所有的commit有问题)。 –soft:可以使用–soft合并commit节点,假如你需要把这些commit整合成一个commit的时候)時,可以考虑使用reset --soft来让 commit 演进线图较为清晰。 –mixed(默认):合并commit节点的效果(与上面–soft合并commit节点差不多);   
7. 变更基线
????????基线是项目源码储存库中每个版本在特定时期的一个“快照”。它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准。建立一个初始基线后,以后每次对其进行的变更都将记录为一个差值,直到建成下一个基线。 ????????在日常开发过程中有时候由于自身问题会不小心提交到远程git服务器错误的内容,需要将本地分支与远程分支一起撤销某次提交。将当前代码支付基线进行变更到指定提交点位置。 例如,我们在提交代码的时候不小心把一些敏感的内容,提交到服务器了,为了内容保密急需撤销某次提交。可以参考如下具体步骤如下。  git服务器上的代码分支提交commits记录。  IDEA同步git服务版本信息。  选择需要撤销的分支提交点,右键选择Reset Current Branch to Here.      
|