git学习
版本控制
定义
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一
主流的版本控制器
- Git
- SVN
- CVS
- VSS
- TFS
Git 和SVN的区别
- SVN是集中式版本控制系统。版本库是在服务器的,工作人员需要先从服务器获取最新的版本,修改完成后,再提交到服务器上。此功能必须联网。
- Git是分布式版本控制系统。没有中央服务器,每个人的电脑就是一个版本库,只需将自己的修改推送给对方,就可以看到对方的修改。此功能不需要联网。
注:Git是目前世界上最流行的分布式版本控制系统
Git环境搭配
安装
卸载
Git的必要配置
设置用户名和邮箱(用户表示,必须)
常用的Linux命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jWdTfRPd-1634207030615)(C:\Users\李传城\AppData\Roaming\Typora\typora-user-images\image-20211013181936811.png)]
Git基本理论
(核心所有的实践都基于这个理论 )
工作区域:
Git本地有三个工作区域:工作目录、暂存区、资源库。如果再加上远程的git仓库,就可以分为四个工作区域。
文件在这四个区域之间的转换关系如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OSac4V8L-1634207030618)(C:\Users\李传城\AppData\Roaming\Typora\typora-user-images\image-20211013194938556.png)]
Git项目创建及克隆
本地仓库的方式有两种:一种是创建全新的仓库,另一种是克隆远程仓库
本地仓库搭建
1、创建全新的仓库,需要用GIT管理的项目的根目录执行:
//在当前目录下创建一个Git代码库
$ git init
克隆远程仓库
另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地!
// 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url] https://gitee.com/kuangstudy/kuang_livenote.git
Git的基本操作命令
查看文件状态
# 查看指定文件状态
git status[filename]
# 查看所有文件状态
git status
# git add . 添加文件到暂存区
# git commit -m "注释消息内容" 提交暂存区中的内容到本地仓库 —m 提交信息
忽略文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ZBsassW-1634207030619)(C:\Users\李传城\AppData\Roaming\Typora\typora-user-images\image-20211014110632335.png)]
idea向仓库提交项目需要忽略的文件:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNPdmBf6-1634207030621)(C:\Users\李传城\AppData\Roaming\Typora\typora-user-images\image-20211014110217044.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2rv5hEch-1634207030622)([外链图片转存失败,源站可能有防盗C:\Users\李传城\AppData\Roa链机制,建议(i\Tyiora\tgpora-user-images\imageUzZY-2021101411025588.3335)(C:%5CUsers%5C%E6%9D%8E%E4%BC%A0%E5%9F%8E%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20211014110255588.png#pic_center)]
)]
码云的注册和使用
github是有墙的,比较慢,在国内的话,我们一般使用gitee,公司中有时候会搭建自己的git服务器
1、注册登录码云,完善个人信息
2、设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们平时工作是在本地仓库!)
3、将公钥信息public key添加到码云账户中即可!
4、使用码云创建一个自己的仓库
克隆到本地!
IDEA中集成Git
1、新建项目,绑定git。
- 将我们远程的git文件目录拷贝到项目中即可!
- 注意观察idea中的变化
2、修改文件,使用IDEA操作git。
- 添加到暂存区
- commit提交
- push到远程仓库
3、提交测试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-purqLWEb-1634207030623)(C:\Users\李传城\AppData\Roaming\Typora\typora-user-images\image-20211014160812881.png)]
这些都是单个人的操作
关于git中分支说明
关于分支常用到的git命令
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# 新建一个分支,指向指定commit
$ git branch [branch] [commit]
# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]
# 切换到指定分支,并更新工作区
$ git checkout [branch-name]
# 切换到上一个分支
$ git checkout -
# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]
# 删除分支
$ git branch -d [branc![请添加图片描述](https://img-blog.csdnimg.cn/d35fa67ef1e44ebca3b15b72a94229a4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARXhwbG9yZXJfTGM=,size_20,color_FFFFFF,t_70,g_se,x_16)
h-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
选择一个commit,合并进当前分支
$ git cherry-pick [commit]
删除分支
$ git branch -d [branch-name]
删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]