Git
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具
。
Git工作机制
Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库
,一般我们简单称为远程库
。
- 局域网
GitLab
- 互联网
GitHub(外网)
Gitee码云(国内网站)
Git安装
官网地址: https://git-scm.com/或https://github.com/git-for-windows/git/releases
推荐安装 git2.40.0版本
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 版本号 | 版本穿梭 |
设置用户签名
git config --global user.name 用户名
git config --global user.email 邮箱
全局范围的签名设置:
git config --global user.name Layne
git config --global user.email [email protected]
git config --list
cat ~/.gitconfig
说明:
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。
※注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系。
初始化本地库
git init
查看本地库状态
git status
首次查看(工作区没有文件)
新增文件
再次查看(检测到未追踪文件)
添加暂存区
git add 文件名
提交本地库
git commit -m "日志信息" 文件名
历史版本
git reflog 查看版本信息
git log 查看版本详细信息
版本穿梭
git reset --hard 版本号
--首先查看当前的历史记录,可以看到当前是在48f4e22这个版本
--切换到之前版本,8ca80d7版本,也就是我们第一次提交的版本
Git分支操作
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)。
分支的好处
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支的操作
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
git branch -d 分支名 | 删除指定分支 |
查看分支
git branch -v
创建分支
git branch 分支名
切换分支
git checkout 分支名
--分支由master改为hot-fix
合并分支
git merge 分支名
-- 切换回到master分支
-- 在master分支上合并hot-fix分支
冲突产生的原因
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
查看状态(检测到有文件有两处修改)
解决冲突
编辑有冲突的文件
删除特殊符号,决定要使用的内容
特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix
添加到暂存区
执行提交
注意:此时使用git commit命令时不能带文件名
-- 发现后面MERGING消失,变为正常
分支合并代码
注意: 如果代码合并完成之后,分支结构的代码依然没有更新,如果需要和主分支一样 则执行代码合并
git merge master
创建分支和切换分支图解
master、hot-fix其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。所以创建分支的本质就是多创建一个指针。
HEAD如果指向master,那么我们现在就在master分支上,HEAD如果执行hotfix,那么我们现在就在hotfix分支上。
所以切换分支的本质就是移动HEAD指针。
Gitee(码云)操作
Git 代码托管服务
前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
l gitHub( 地址:https://github.com/ )
是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
l 码云(地址: https://gitee.com/ )
是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
l GitLab (地址: https://about.gitlab.com/ )
是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
Gitee简介
1.是什么: gitee是一个git项目托管网站,主要提供基于git的版本托管服务
2.能干嘛: gitee是一个基于git的代码托管平台, Git 并不像 SVN 那样有个中心服务器。目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。
3.去哪下: https://gitee.com/
码云帐号注册和登录
进入码云官网地址:https://gitee.com/,点击注册Gitee
创建远程仓库
远程仓库操作
命令名称* | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 origin |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
git remote rm 别名 | 删除现有远程库连接 |
创建远程仓库别名
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址
推送本地分支到远程仓库
git push 别名 分支名
第一次需要输入码云的用户名和密码
注意:推送时当前版本要和远程仓库版本一致才能推送。
克隆远程仓库到本地
git clone 远程地址
拉取远程库内容
git pull 远程库地址别名 远程分支名
邀请加入团队
点击管理**
选择仓库成员管理
IDEA集成Git(本地库)
首先配置Git忽略文件
(1) 创建忽略规则文件
-
文件名称:xxxx.ignore(前缀名随便起,建议是git.ignore)
-
这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig文件引用,建议也放在用户家目录下
-
git.ignore文件模版内容如下
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
(2)在.gitconfig文件中引用
(此文件在Windows的家目录中)
[user]
name = Layne
email = [email protected]
[core]
excludesfile = C:/Users/asus/git.ignore
注意:这里要使用正斜线(/),不要使用反斜线(\)
定位Git程序
初始化本地库
选择要创建Git本地仓库的工程。
添加到暂存区
右键点击项目选择Git -> Add将项目添加到暂存区。
提交到本地库
右键点击git 点击Commit directory
切换版本
查看历史版本
右键选择要切换的版本,然后在菜单里点击Checkout Revision。
创建分支
选择Git,在Repository里面,点击Branches按钮。
在弹出的Git Branches框里,点击New Branch按钮。
填写分支名称,创建hot-fix分支。
然后看到hot-fix,说明分支创建成功,并且当前已经切换成hot-fix分支
切换分支
切换到master分支
合并分支
切换到master分支,将hot-fix分支合并到当前master分支。
如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库。
解决冲突
如图所示,如果master分支和hot-fix分支都修改了代码,在合并分支的时候就会发生冲突。
我们现在站在master分支上合并hot-fix分支,就会发生代码冲突。
点击Conflicts框里的Merge按钮,进行手动合并代码。
手动合并完代码以后,点击右下角的Apply按钮。
代码冲突解决,自动提交本地库。
IDEA集成Gitee(码云)
DEA安装码云插件
Idea默认不带码云插件,我们第一步要安装Gitee插件
如图所示,在Idea插件商店搜索Gitee,然后点击右侧的Install按钮。
Idea重启以后在Version Control设置里面看到Gitee,说明码云插件安装成功
然后在码云插件里面添加码云帐号,我们就可以用Idea连接码云了。
push推送本地库到远程库
首先在Idea里面创建一个工程,初始化git工程,然后将代码添加到暂存区,提交到本地库,这些步骤上面已经讲过,此处不再赘述。
将本地代码push到码云远程库
自定义远程库链接。
给远程库链接定义个name,然后再URL里面填入码云远程库的链接即可
然后选择定义好的远程链接,点击Push即可
pull拉取远程库到本地库
右键点击项目,可以将远程仓库的内容pull到本地仓库。
选择远程库
pull了远程库中最新内容
注意:pull是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。
标签:git,代码,Git,本地,远程,分支 From: https://www.cnblogs.com/21CHS/p/18430669