目录
Git
1.1、概述
Git是一个免费的、开源的分布式版本控制系统 ,可以快速高效地处理从小型到大型的各种项目
Git易于学习,占地面积小,性能 极快 。 它具有廉价的本地 库 ,方便的暂存区域和多个工作
流分支等特性。 其性能优于 Subversion、 CVS、 Perforce和 ClearCase等 版本控制 工具。
官网地址:http://git-scm.com/
1.2、版本控制
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换
1.3、版本控制工具
集中式版本控制工具
CVS、SVN、VSS
集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
分布式版本控制工具
Git、Mercurial、…
像Git这种分布式版本控制工具 ,客户端提取的不 最新版本的文件快照,而是把代码仓库完整地镜像下来 (本地库) 。这 样 任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行 恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份 。
分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷 :
- 服务器断网的情况下也可以进行开发,因为版本控制是在本地进行的
- 每个客户端保存的也都是整个完整的项目 ,包含历史记录 更加安全
1.4、Git简史
1.5、Git工作机制
1.6、Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库
3、Git常用命令
命令名称 作用
git config --global user.name 用户名 设置用户签名
git config --global user.email 邮箱 设置用户签名
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit m " 日志信息 " 文件名 提交到本地库
git reflog 查看历史记录
git reset hard 版本号 版本穿梭
3.1、设置用户签名
基本语法
git config --global user.name
用户名git config --global user.email
邮箱
3.2、初始化本地库
基本语法:git init
3.3、查看本地库状态
基本语法:git status
3.3.1、新增文件
语法:vim hello.txt
,然后按 i 键进入 INSERT,要想复制粘贴 ,需要先按 esc 键,之后 yy
复制,p
粘贴
3.4、添加暂存区
3.4.1、将工作区的文件添加到暂存区
基本语法:git add 文件名
3.5、提交本地库
3.5.1、将工作区的文件提交到本地库
基本语法:git commit -m "日志信息" 文件名
3.6、修改文件
语法:vim 文件名
3.7、历史版本
3.7.1、查看历史版本
基本语法:
git reflog
查看版本信息git log
查看版本详细信息
3.7.2、版本穿梭
语法:git reset --hard 版本号
Git分支
1.1什么是分支
- 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支
- 使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行
- 对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本
1.2分支的好处
- 同时并行推进多个功能开发,提高开发效率。
- 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
1.3分支的操作
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
1.3.1查看分支
基本语法:git branch -v
1.3.2、创建分支
基本语法:git branch 分支名
1.3.3、切换分支
基本语法:git checkout 分支名
1.3.4、修改分支
1.3.5、合并分支
基本语法:git merge 分支名
冲突产生的原因:
- 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。
- 有两套完全不同的修改。 Git无法替我们决定使用哪一个。必须 人为决定新代码内容。
解决冲突
-
编辑有冲突的文件,删除特殊符号,决定要使用的内容
特殊符号:
<<<<<< HEAD
当前分支的代码=======
合并过来的代码>>>>>>>hot-fix
Github
远程仓库操作
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容克隆到本地 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
创建远程仓库别名
基本语法:
git remote -v
查看当前所有远程地址别名git remote add 别名 远程地址
起别名
推送本地分支到远程仓库
基本语法:git push 别名 分支
拉取远程库分支到本地库
语法:git pull 别名 分支
克隆远程仓库到本地
基本语法:git clone 远程地址
- 拉取代码
- 初始化本地仓库
- 创建别名
邀请加入团队
选择邀请合作者
跨团队协作
将远程仓库的地址复制发给邀请跨团队协作的人,比如东方不败。
在东方不败的 GitHub账号里的地址栏复制收到的链接,然后点击 Fork将项目叉到自己的本地仓库
东方不败就可以在线编辑叉取过来的文件。编辑完毕后,填写描述信息并点击左下角绿色按钮提交。
3.5、SSH免密登录
3.5.1、Gitee
在 C盘 User 自己的账户下右键 git bash here,ssh-keygen -t rsa -C 自己的邮箱签名
IDEA集成Git
配置Git忽略文件
- 在用户家(C/User/用户名) 下创建
git.ignore
- 在 .gitconfig 文件中引用忽略配置文件(.gitconfig 在家目录中)
- 在 IDEA 里面定位
IDEA初始化本地库
添加到暂存区就变为了绿色,我们可以写些代码,然后将 project 添加到暂存区
切换版本
更改后,先添加暂存区,在提交本地库
先添加,然后点击提交目录,也可以直接提交到本地库
查看版本信息
在IDEA的左下角,点击 Git,然后点击 Log查看版本,右键选择要切换的版本,然后在菜单里点击 Checkout Revision
创建分支,切换分支
在弹出的Git Branches框里 点击 New Branch按钮。
填写分支名称
然后再 IDEA的右下角看到 hot-fix,说明分支创建成功,并且当前已经切换成 hot-fix分支
合并分支
在IDEA窗口的右下角,将 hot-fix分支合并到当前 master分支。
合并分支冲突
我们现在站在master分支上合并 hot-fix分支,就会发生代码冲突。
点击 Conflicts框里的 Merge按钮,进行手动合并代码。
手动合并完代码以后,点击右下角的 Apply按钮。代码冲突解决,自动提交本地库。
IDEA集成Github
设置GitHub账号
令牌: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
我们在 Github 点击 Settings -> Develop Settings,点击 Generate token
分享项目到Github
push推送本地库到远程库
pull拉取远程库到本地库
clone克隆远程库到本地库
码云
国内代码托管中心——https://gitee.com/
IDEA安装码云插件
码云复制Github项目
将 GitHub的远程库 HTTPS链接复制过来,点击创建按钮即可。
如果GitHub项目更新了以后,在码云项目端可以手动重新同步,进行更新!