Git是什么?
Git,强大的版本管理工具,用于对代码进行管理处理,相比于SVN而言其中比较方便的是其将自己电脑当做一个完整的本地仓库,当需要进行协调开发时不必在将两个人之间的代码上传至远程仓库 只需要互相推送给对方即可。 不过因为SVN操作步骤深入人心 所以一般也会将Git当做SVN去使用,进行远程仓库的连接。
Git的工作流程:
本地仓库:由你创建 在本地模拟远程仓库的一个文件夹
工作区:你编写的代码,项目模块等修改的区域。你需要分清 本地仓库是用来存放 为了保证你代码一致性, 经历不要改写你存在本地仓库的代码,而是将本地仓库中的代码进行取出 进行修改。
暂存区: 当你项目代码修改完毕后 将其提交至本地仓库时 会进行暂存操作 而不是直接提交到本地仓库中,这主要是为了让你在协作开发时保证代码统一。
远程仓库: 类似于SVN中中央仓库的概念。用于对多人并行开发项目的代码综合,存在服务器中 提高项目代码的安全性
Git安装:
软件下载:
下载地址:https://git-scm.com/download
注意:对于Git的linux版本需要进行代码下载,我在这里进行了tar包压缩。
百度网盘: https://pan.baidu.com/s/1NAa03SJg9KerbN_nLhu8RQ 提取码:ww1u
软件安装:
安装git的exe文件时你可以将眼睛比起来然后按下一步即可。 没有什么需要特别注意的,如果非要说的话 那就是安装地址,如果需要自己选择 则手动选吧
安装TortoiseGit下一步下一步即可,当看到语言选项时 默认为英文。
唯一需要注意的是配置好安装的gie.exe文件的路径
然后配置开发者姓名和邮箱。 在每次代码提交时都会讲这些信息包含在提交信息中
单击完成按钮完成配置 ,当配置完毕时 在桌面单击右键会出现
就安装好了
*如果需要安装中文语言包则安装Tortoise-LanguagePack安装包进行安装,依然是下一步
安装完成后 在Tortoise中设置语言
使用Git管理文件版本
创建本地仓库:
首先创建一个空目录 路径任意
然后右键
或者在开始菜单中启动。如果是从开始菜单启动gitBash 则需要切换目录到仓库所在目录
使用: $git init命令 执行仓库创建命令
如果使用的TortoiseGit工具则直接在目录下右键
版本库创建成功,会在目录下创建一个.git的隐藏目录 开启你电脑的隐藏显示后即可看见
版本库: ".git"目录就是版本库,文件保存在此
添加文件
添加文件过程:
在创建目录下 创建一个txt文件,右键文件
这是文件变为带"+"号
点击提交 即可将文件保存在版本库中
当对文件进行修改后 文件会带号,我们需要再次提交进行更新,当然 我们也可以查看修改日志。也就是什么时候改过什么
当文件内容修改后 需要和修改前比对修改那些内容时 可以使用"比较差异功能"
可以将修改进行还原
注意: 此操作会撤销所有未提交的修改 所以 当做还原操作是需要慎重慎重的
删除文件也可以通过git进行删除
案例:将Java工程提交至仓库
1、将参考资料中java工程复制到工作目录中
2、将工程添加到暂存区
将需要提交的文件选中
还可以对文件或文件夹进行忽略操作:
选择保留本地文件后 文件夹内会多出一个.gitignore文件 该文件就是忽略文件,也可以在其中将内容删除 来达到取消忽略的目的
远程仓库
添加远程仓库
常用的个人远程仓库就是gitHub了。我们就来演示一下将本地代码同步到github
1、在github上创建仓库
点击Create repository按钮仓库就能创建成功了
github上支持两种同步方式"https"和"ssh"。如果使用httos则不需要配置即可使用
使用ssh方式则需要由客户端生成秘钥 详细步骤下面来说
首先我们需要知道什么是ssh协议,有什么用
SSH不是框架中的ssh 而是Secure Shell(安全外壳协议),为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效的防止远程管理过程中的信息泄露问题。在使用时 你必须为自己创建一对秘匙,并把其中的公用密匙放在需要访问的服务器上,如果你要连接服务器 客户端会向服务器发送请求去请求你的密匙并进行安全验证。
ssh秘钥生成:
执行: ssh-keygen -t rsa 然后一直回车即可 执行完成后会在C:\Users|用户名\.ssh默认目录下生成两个文件
ssh秘钥配置:
在key部分将id_rsa.pub文件内容添加进去 点击 "add ssh key" 按钮完成配置
同步到远程仓库:
1、使用git Bash:
在本地仓库文件中选择
然后在其中执行:
git remote add origin git@github.com:sublun/mytest.git
git push -u origin master
注意:红色字体部分替换为个人用户名
如果出现如下错误:
可以先执行: $ git remote rm origin
2、 使用TortoiseGit同步
由于TortoiseGit使用的ssh工具是"PuTTY" git Bash使用的ssh工具是"openSSH" 如果想让其生成秘钥:
Url:远程仓库地址
推送Url:也是远程仓库地址
Putty秘钥:选择刚生成的秘钥中的私钥
然后在本地仓库文件夹中点击右键 选择git同步
从远程仓库克隆到本地,克隆后会创建一个新的本地仓库 选择 任意一个部署仓库的目录 然后克隆
如果是使用Git bash则需要使用命令: $ git clone git@github.com:sublun/mytest.git
如果使用TortoiseGit则在任意目录下点击右键
从远程仓库取代码:
Git中从远程分支获取最新的版本到本地有这样2个命令:
1.git fetch:相当于是从远程获取最新版本到本地 不会自动合并代码
2.git pull: 相当于从远程获取最新版本并合并代码到本地
在使用 git pull时需要考虑好是否需要进行代码合并
如果使用TortoiseGit则右键菜单点击拉取或获取即可
git搭建私服
远程仓库实际上与本地仓库没什么不同,就是为了7*24小时开机并交换大家修改。
GitHub是不能当做公司实际代码存储位置的 所以实际中还是需要自己搭建一台私有服务器
步骤:
私服考虑到效率,性能,系统稳定性等各方面因素 在linux下进行搭建
1、安装git服务环境准备
yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc
2、下载Git压缩包, 压缩包在我百度网盘链接中有
下载后解压缩,然后进入解压缩好的文件夹中
cd git
autoconf
./configure
make
male install
3、添加用户
adduser -r -c'git version control' -d /home/git -m git
该命令执行后会创建/home/git 目录作为git用户的主目录
4、设置密码
passwd git 输入两次密码
5、切换到git用户
su git
6、创建git仓库
git --bare init/home/git/first
注意: 如果不适用"--bare"参数 初始化仓库后 提交master分支时会报错,这是因为git默认会拒绝push操作 需要.git/config添加如下代码
[receive]
denvCurrentBranch = ignore
推荐使用: git --bare init来初始化仓库
搭建完成后就可以向连接github一样连接使用了,但是我们搭建的git服务器没有配置秘钥登录,所以每次连接时需要输入密码。
使用命令连接:
$ git remote add origin ssh://git@192.168.25.156/home/git/first
或: $ git remote add origin git@192.168.25.156:first
分支管理
创建或合并分支
在每次提交,git都会将其串成一条时间线,这就是分支。每次提交 分支线就会越来越长
我们也可以将在另一个分支上的工作合并在这条分支上 当另一个分支指向这条分支时就会进行合并了
合并只需要改变其指针指向即可
使用TortoiseGit管理分支:
1、创建分支
在本地仓库文件夹中右键 从菜单中选择"创建分支"
如果想创建完毕后直接切换到新分支 可以勾选"切换到新分支"或从菜单中选择"切换/检出"进行切换
合并分支
分支切换后就可以对工作区中文件进行修改了,提交到dev分支时 原本master分支不受影响.
合并时只需要右键菜单选择合并即可
解决冲突
两个分支中编辑内容是相互独立互不干扰的,如果两个分支同时对一个文件进行编辑然后在合并 就可能会出现冲突
在进行合并提交时会报出合并错误
冲突需要手动解决,在冲突文件上右键"解决冲突"
注意: 在实际开发中需要与冲突代码的人员进行协商处理 不然可能会出现代码功能丢失的情况
冲突解决完毕后就可以进行提交了
在IDEA中使用Git
在开发工具IDEA中 如果Git安装在默认目录下 idea会自动找到git位置 如果更改了git的安装位置则需要手动配置git路径
选择File----setting打开设置窗口,找到Version Control下的git选项:
选择git安装目录后点击Test按钮测试是否正确配置
将工程添加至git
1、在Idea中创建一个工程
2、创建本地仓库
菜单中选择vcs ---- Import into Version Control ---- Create Git Repository
选择好后 点击OK按钮,在工程的上级目录创建本地仓库, 则选中的目录就是本地仓库的工作目录
选择之后 工具栏中就多出了git相关工具的按钮:
将工程添加至本地仓库
点击Commit按钮,将工程添加至本地仓库
推送到远程仓库
在工程上右键,选择git-Repository-push或在菜单中选择vcs-git-push
点击Define remote连接 配置https形式的URL,git形式的无法通过 然后点击OK
点击push按钮就会将本地仓库推送到远程 如果是第一次配置推送 则需要输出github用户名和密码
从远程仓库克隆
关闭工程后 在idea欢迎页面有"Check out from version control" 下拉框 选择git
推荐使用https形式的url 点击test按钮后显示连接成功 点击ok按钮会将远程仓库克隆下来 倒入idea中
如果需要从服务端同步代码 可以使用工具条中Update按钮