gi sql的使用
1.git的官网和含义
2.部署
使用
版本控制
3.git 的基础命令 like linux
4.创建仓库
git init
5.git的使用
1.git管理版本控制的工作流程
2.切换版本
3.分支
4. 工作区 v s暂存区 vs本地仓库
6.git目录介绍
7.紧急任务
git stash
8.仓库备份:克隆
9.本地仓库 与远程仓库的链接
10.使用场景t的使用
1.git的官网和含义
官网: http://git-scm.com/
1.分布式版本控制系统:记录文件变化的,可以指定版本恢复
种类:
1.本地版本控制系统
优点 :
简单
缺点:
1.易出错
2.代码即成效率低下
2. 集中式版本控制系统
优点:
1.多人协同开发
缺点:
1.单点故障
3.分布式版本控制系统
解决:单点故障 多人协同开发
1.clients
2.server
优点:
1.高效
2.性能高
3. 分支操作、文件备份、定制工作流程
2.文件版本控制:
1.本地仓库
2.远程仓库
2.部署
1.下载(官网)
2.安装(官网)
3.使用
1.git 软件 工具
1.可视化界面进行操作
2.版本控制:
1.使用前配置
git config --global user.naem "lcatake"
git config --global user.email 2164714453@qq.com
2.设置git参数 =》本地仓库
帮助: git config --help
--global 全局(当前用户,所有仓库)
--system 对系统所有登录用户
--local 对某个仓库有效
3.查看 配置参数
git config --list --global
--system
--local
3.git 命令 like linux
1.帮助: git
2.版本: git -v
3.查看当前目录:pwd
4.查看文件:ll
5.切换目录:cd
6.创建文件:vim
4.创建仓库
1.项目:开发的代码文件
2.仓库:本地仓库 用于进行文件的版本控制
3.git init:
1.创建一个仓库
2.重新初始化一个 已经存在的仓库
3. 项目
1.项目存在:
cd 项目文件夹
git init
2.项目不存在:
git init test01(初始化:生成一个以 .git的文件夹(进行版本控制))
5.git的使用
1.git管理版本控制的工作流程:
工作区:项目目录
暂存区(index):临时存储文件
本地仓库:版本控制,存放各个版本的历史
1.将1.log文件加入到暂存区
git add 1.log 2.log
git add -u (工作区和暂存区文件名称一致) (更新)
2.将暂存区文件提交到本地仓库
git commit -m " Add 1.log"
git commit -am “Updata” (将已有文件从工作区自动添加 到本地仓库)
3.查看版本(历史日志)
git log : 当前项目最新的commit历史
git log --reflog:当前项目以前的commit历史
git log --oneline commit历史简写为每个历史一行
git log --oneline commit -n 2 显示最近几个commit
git log --oneline commit master 指定查看分支名字
git log --oneline --gragh 以图像化展示分支的commit历史
git log --oneline --gragh --all以图像化展示所有分支的commit历史
git log --reflog --oneine
gitk --all:
1.分支线, 历史树
2.path =》记录当前commit 变更文件
3.tree =》 记录当前commit 下文件结构
2.切换版本(指定head 的状态)
git reset --hard [<commit(哈希值)>]
3.分支:
一个分支一条线
默认分支
主分支:主线 master
帮助 git branch:
1.创建分支
git branch -c [<branch>](默认从master复制)
git checkout -B <new branch>(分支名) <start-point>(插入位置的哈希值)创建分支的同时切换分支
2.查看分支
git branch -v
git branch -av(查看本地仓库和远程仓库分支)
3.切换分支
git checkout [<branch>]
4.删除分支
git branch -d <branchname> 必须merge(合并分支)
-D <branchname> 强制删除分支
5.修改commit的msg信息
1.修改最新的commit的msg信息(哈希值会变)
git commit --amend
2.修改之前某一个commit的msg
git rebase (变基)基于之前某一个commit 进行修改当前的commit
-i 交互式
-p 选择
-r 重写某个commit
3.合并多个commit的msg合并成一个commit msg
git rebase -s 合并
p 合并到的表
s 要合并的表
s 要合并的表
4. 工作区 v s暂存区 vs本地仓库
1.文件差异
git status =》文件的个数 名字
2.查看文件内容差异
1.工作区vs 暂存区
git diff
2.暂存区vs 本地仓库
git diff --cashed
3.比较不同commit之间的差异
git diff 哈希值1 哈希值2
git diff HEAD(head指向的commit)
git diff HEAD HEAD~1(head指向的commit的前一个)
4.回复操作,撤回
工作区 vs暂存区 vs本地仓库
1. 工作区 =》暂存区
1.git add
git restore --staged <file>
2.工作区:
编写代码(git add 之前)
git restore <file>
2.暂存区 =》本地仓库
git reset --hard head
3.删除文件 文件重命名
git:
5.删除文件 : git rm
6.文件重命名: git mv
6.git目录介绍
1.HEAD 文件 当前项目 正在工作的分支
2.config :
记录项目的一些参数,一些配置信息
查看用户名称 :git config --local user.naem
3.refs/
heads/ 存储的是分支的指向 那个commit
commit hash(哈希值)=》 对应存储内容
查看 : git 擦头-file -t =》 文件类型 =>git 存储文件有关
-p =》文件内容
objiect:
commit:
tree:
tree =》文件夹
blob =>文件
git存储文件高效的原因:
不同的文件 只要文件内容有相同的部分就是
7.紧急任务
开发代码=》 线上bug =》commit
=》 开发代码 存起来 =》恢复开发
1.开发代码
vim 2.log
2.存起来
git stash
git stash list (代码存储处)
3.恢复 解决bug之前的代码
git statsh apply
11. 。gitignore
可以指定文件不需要被git管控
=》 xxx.java
=> xxx.calss
=>.idea 文件夹里的文件
8.仓库备份:克隆
git clone <repository> [<directory>]
repository:仓库
本地仓库:path(路径)
远程仓库:url(地址)
1.本地仓库 备份到本地
git clone /e/test/music/.git(指定到 .git) music_blk
2. 远程仓库 备份到本地
远程仓库:
本地项目
代码托管平台:github、gitlab、gitee
git clone http;//192.168.41.110/dl2262/dl2262.git
9…本地仓库 与远程仓库的链接
1.本地仓库链接到远程仓库
git remote add <name> <URL>
git remote add gitlab http;//192.168.41.110/dl2262/test01.git(从gitlab中的clone复制)
2.检查远程仓库的链接
git remote -v
fetch(拉,下载)
puth(推,上传)(更新远程仓库的分支)
pull= fetch+merge
3.本地仓库 push远程仓库
git push [--all]
git push [<repository(远程仓库)>[<refspec>(分支)...]]
git push gitlab master
报错:
1. dev =》 本地dev =》 远程 自动创建dev分支
2. master(fetch first) 解决:
先拉下来
git fetch/git pull :
1.git fetch [<repository>] [<refspec>...]
1.git fetch gitlab master =》默认先把远程拉下来 但文件没有和本地分支进行合并
2.git merge 远程分支
2.git fetch --all =》所有分支
报错:fatal:refusing to merge unrelated histories
git merge gitlab/master --allow-unrelated-histories(允许没有合并历史的分支进行合并)
10.场景:
1.多人协同开发
1.多人共同维护同一个分支 操作不同的文件
1.远程仓库创建一个分支
bigdata
2.准备两个本地仓库
git clone http;//192.168.41.110/dl2262/text01.git text01_blk
3.zahngsan 开发项目到本地仓库
lisi 开发项目到本地仓库
1.git fetch
2.git merge
3.git push
注意:
1.拉取远程仓库代码 =》本地仓库 和 远程仓库保持一致