git 介绍
- git是免费、开源的分布式版本控制工具
- 能快速高效处理各类项目,解决了集中式版本控制的缺陷【服务器down掉,协同操作就不可行了】,
- git的服务器断网也可以开发,因为版本控制是在本地进行的,每个客户端保存的也是整个完整项目(包含历史记录上的,相对来说更加安全)
- 基于远程服务器的远程代码仓库,一般称为远程库
git 现阶段代码托管中心
* 局域网:gitLab
* 互联网:gitHub【外网】、Gitee码云【国内网站】
git 基本工作流
- 工作区【代码存放本地磁盘的目录】、执行命令
git add 到第二步 - 暂存区【临时存储】执行命令
git commit 到第三步 - 本地库【历史版本-无法删除】执行命令
git push 到第四步 - 远程库
安装及初始化操作
git官网安装 :
https://git-scm.com/downloads
git init 新建项目的时候,初始化本地库;当然如果存在项目直接git clone 了项目即可;操作完成会生成对应的.git文件- 设置用户签名【首次安装git必须设置】,用来区分是哪个操作者提交的代码的
git config --global user.name [名字]
git config --global user.email 【邮箱】
ssh免密登录
1、执行命令 ssh-keygen -t rsa -C “yan_yan@.xxx.com” 直接敲三次回车,不用输入【输入密码,通常不输入,否则每次提交拉取代码就很麻烦】
ssh-keygen 用于ssh免登录协议生成免密的-t rsa 其中-t表示指定的算法,rsa即著名的非对称算法-C “yan_yan@xxx.com” -c表示描述,一般后面加的邮箱
2、执行完上面命令根目录就生成了.ssh文件,里面包括两个文件私钥id_rsa 、公钥id_rsa.pub 3、将~/.ssh/id_rsa.pub 公钥文件内的内容复制在gitlab中找到settings、ssh keys然后生成密钥即可
- gitlab的ssh生成私钥
git命令
创建远程库别名
一般提交的时候远程库链接太长,创建别名方便提交
git remote -v
git remote add 别名 远程库地址名称
克隆代码【包括:拉取代码、初始化本地库、创建别名origin】
git clone 代码链接
git clone --depth=1 ***
基本工作流
git status
git add
git rm --cache 文件名
git commit - m “注释信息”
git push 【远程库】 分支名
git pull 【远程库】 分支名
基础命令
git reflog
git log
git reflog 查看版本号
git reset --hard 版本号
分支相关操作
git branch 分支名
git branch -v
git checkout 分支名
git fetch 分支名
git merge 分支名
git branch -D bug_yan
分支git push origin --delete bug_yan
本地暂存文件
git stash [message]
git stash list
git stash pop stash@{num}
git stash clear
部分命令演示
- 创建别名
git commit信息 && git relog 查看简单的版本信息 git reset 回退操作 - 查看当前分支指向和版本号
- 查看本地分支以及分支最后一次提交记录
git 分支
分支: 版本控制中有需要同时多任务开发,故需要为每个任务创建分支,程序员在自己分支开发,不会影响主分支和其他分支,分支的底层是指针的引用 分支冲突::不同分支修改同一个文件,系统不知道取誰的修改,故是冲突需要我们人为解决;解决完冲突需要重新添加提交
团队协作
同团队协作:同一团队的,设置权限限制。才有push权限 跨团队协作:fork一个项目A成为新项目B,然后push到B【版本由自己本地控制】,再向原来项目发起pull request,审核通过,A merge B即可
- github组内协作邀请成员
git项目规范
持续更新~
其他
- 创建忽略文件
- 因为有些包体积大,有些包只是编辑器生成的效果,所以创建忽略文件,设置不上传文件
- 文件是以 .gitignore后缀名,建议存放在项目根目录
.history
*.log
- git是按照行信息为基础维护文件的
- git控制版本是通过调用指针指向版本信息
参考
https://www.bilibili.com/video/BV1vy4y1s7k6?p=45
|