在项目开发过程中,项目没开发到一个节点就会对当前项目进行备份,这个备份就是项目的一个版本;当我们继续开发一个阶段后,再次进行备份,就生成新的版本——多个版本的集合就是项目的版本库。
在项目版本管理中,我们可以使用手动进行管理,但是存在一些问题:
· 需要手动维护版本的更新日志,记录每个版本的变化
· 需要手动查找历史版本,当历史版本比较多的时候,查找工作很繁琐
· 当我们需要回退到某个版本时,只能够手动的通过IDE工具手动打开
Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何大小项目的版本管理。
核心功能:
· 项目的版本管理
· 团队协同开发
git光网地址:https://git-scm.com/download/win/
选择所需要的版本,进行下载
// 查看命令
git --version
· 工作空间(workspace):存放项目代码的目录,就是项目的根目录
· 版本仓库(Repository):存放项目历史版本的目录,就是执行git init指令之后,在工作空间文件夹生成的.git目录
· 暂存区:(Index):就是版本库用于临时储存跟新的缓存空间
· 在工作空间的目录中,右键“Git Bash Here”打开git终端
· 在Git终端中输入git init指令,创建版本库(就是一个.git目录)
git status
git add a.txt ## 只将工作空间中的某个文件add到暂存区
git add . ## 将工作空间中所有文件都add暂存区
git commit -m '版本说明'
因为我们将暂存区的内容提交到版本时,会记录当前版本的提交的用户信息,因此在版本提交之前需要先绑定用户信息
git config --global user.name 'ergou'
git config --global use.email '[email protected]'
git checkout 版本号
远程仓库,远程版本库;实现版本库的远程存储,以实现团队的协同开发
· 使用GitLab搭建私服
· 远程仓库提供商
· GitHub https://gitbub.com
· Gitee(码云) https://gitee.com
· Coding
注册账号然后登陆
· 创建远程仓库:https://gitee.com/qfytao/j2010.git
· 远程仓库管理(添加开发人员)
a、创建本地空间
D:\dmwy
src
main
java
resources
resources
tst
java
pom.xml
b、初始化本地仓库
git init
c、将工作空间搭建的项目结构add到暂存区
git add
d、将暂存区文件提交到版本库,生成第一个版本
git commit -m '创建项目'
e、为当前项目创建一个远程仓库
https://gitte.com/qfytao/fmwy.git
建立D:\fmwy中的本地仓库 和 远程仓库 的关联
git remote add origin https://gitee.com/qfytao/fmwy.git
git remove -v
push到远程仓库需要gitee的帐号和密码
git push origin master
· 在E盘创建ws目录(空目录),进入ws目录,打开Git客户端
· 创建本地版本库
git init
· 拉去远程仓库
git pull 远程仓库地址 master
git pull https://gitee.com/qfytao/fmwy2.git master
场景: Helloworld.java [bbb]
开发者1:开A 开发者2:开B
------------------------------------------------------------------------------------------
git pull fmwy2 master git pull fmwy2 master
在Hellworld.java中新增内容 “bbb”
在Hellworld.java中新增内容 “aaa”
git add .
git commit -m ''
git push fmwy2 master
git add .
git commit -m ''
git push fmwy2 master【会失败!!!----在我pull之后,push之前被其他开发人员push过】
问题:我该如何操作?
git pull fmwy2 master 【将小乔修改的内容拉取到我本地】
对文件进行冲突合并
git add .
git commit -m ''
git push fmwy2 maste
HelloWorld.java
>>>>>>>>>>>>>>>>>>>>>HEAD
aaa
=================
bbb
<<<<<<<<<<<<<<<<<<<<< sikdfhjkasdfhjasdfhjk
分支就是版本库中记录版本位置(支线),分支之间项目会影响,使用分支可以对项目起到保护作用分支就是一条时间线,每次提交就在这条时间线上形成一个版本
· 创建一个新的版本库,默认创建一个主分支—master分支
· 每个分支可以进行单独管理(常规分支、保护分支、只读分支)
· 分支是可以合并的
git branch branch_name
git branch
git branch branch_name # 切换到指定分支上的最新版本
git checkout 历史版本 -b branch_name # 签出指定的历史版本创建新分支
· 三方合并
· 快速合并
# 在master分支执行 git merge dev 表示将dev分支合并merge
git merge breanch_name
git使用
1、gitee 注册、登录(记住密码)
本地:
2、本地新建仓库(本地新建一个文件夹)
3、在文件夹上右击,点击 git bash here 进入git操作框
4、输入 git init
5、新建内容(已有项目可以吧项目复制进去)
6、本地仓库和远程仓库建立链接
gitee:
1、新建仓库
2、复制
git config --global user.name “账号名字”
git config --global user.name “邮箱地址”
在本地执行(右击 git bash here)上面两行代码==>把远程仓库的账号和本地git同步
3、执行本地奥做部分的第二部 - 第五步
4、git add. (把需要提交的部分提交到仓库 “ . ” 是全部提交的意思,如果值提交单个文件,把 “ . ” 替换成文件名称即可
例如:只提交 index.html 那就输入 git add index.html)
5、git commit -m “这里可以写类似备注的内容”
6、本地仓库和远程仓库建立连接 git remonte add orgin “项目地址”(项目地址在 gitee 新建仓库的部分去找)
7、git push origin master
常用命令
git clone “项目地址”(克隆已有项目到本地)
git pull(拉取项目内容到本地)
···············修改代码的过程···············
git add .(提交代码)
git commit -m “这里可以写类似备注的内容”
git push origin “分支名称”
git branch(查看当前分支)
git checkout 分支名称(切换到某个分支)
合并分支:
1、切换到master分支
2、git merge “需要合并的那个分支的名称”
3、git push origin master