分布式版本控制系统(git)

1.git的结构

 工作区 >{add}> 暂存区 >{commit}> 本地库 >{push}> 远程库

 远程库 >{clone,pull}>本地库 

 ps:花括号代表其间的操作方式 ,pull由fetch + merge组成

1.1  初始化

git init

1.2 linux查看隐藏文件

ls -lA

1.3 设置签名

//项目级别--仅在项目内有效
git config user.name 名字
git config user.email 邮箱
//系统级别--登录当前操作系统的用户范围
git config --global user.name 名字
git config --global user.email 邮箱
//查看项目级别
cat .git/config
//查看系统级别
cat ~/.gitconfig

 2. 查看git状态

git status

2.1 从工作区添加到暂存区

git add 文件名

2.2 从暂存区提交到本地库

git commit -m "版本更新信息" 文件名

2.3 查看历史记录

//详情历史记录
git log
//以每条一行显示历史记录
git log --pretty=oneline
// 以哈希值的一部分每条一行显示历史记录
git log --online
//以有指针每条一行显示历史记录
git reflog

2.4 选择历史版本

//基于索引值操作
git reset --hard 哈希值(git reflog中显示的哈希值)
//使用^符号,只能后退
git reset --hard HEAD^^(一个^表示后退一步)
//使用~符号,只能后退
git reset --hard HEAD~3(表示后退3步)

2.4.1 reset命令的三个参数作用

//仅在本地库移动HEAD指针
--soft
//在本地库移动HEAD指针
//重置暂存区
--mixed
//在本地库移动HEAD指针
//重置暂存区
//重置工作区
--hard

2.5 删除文件找回(当前的版本记录不可恢复,可使用选择版本操作恢复到没有删除的版本记录)

// 删除文件
rm 文件名

 2.6 在删除操作只添加到暂存区还没有添加到本地库时,找回删除文件

只需刷新操作即可

 git reset --hard HEAD

 2.7 比较文件

//当文件被修改还没有添加到暂存区时,可以比较文件与前一版本的差别
git diff 文件名
//当文件被修改添加到暂存区时,可以比较文件与历史版本的差别
git diff HEAD 文件名
git diff HEAD^^ 文件名

3.分支操作

3.1 查看分支

git branch -v

3.2 创建分支

git branch 分支名

3.3 切换分支

git checkout 分支名

3.4合并分支(合并要在需合并的分支上才能操作)

git merge 被合并的分支名

3.5 解决合并分支后产生的冲突(意思就是同一内容在两个分支上都有修改)

 产生冲突的表现,需要人为参与解决完成内容修改的确认,后保存

git add 文件名
//在冲突状态下,commit指令不用加文件名
git commit -m "修改后提示版本信息"

 4.本地库与远程库交互操作

4.1创建远程库地址别名

//查看别名
git remote -v
//创建别名
git remote add 远程库地址别名 远程库地址

4.2 push 推送操作

//从本地库推送到远程库
git push 远程库地址别名 分支名

4.3 clone 克隆操作

//从远程库克隆到本地库
git clone 远程库地址

克隆会默认操作三个效果:1.完整的把远程库下载到本地 2.创建origin远程地址别名 3.初始化本地库

4.4 pull 拉取操作

//在本地库从远程库克隆后,再从远程库下载就要需要使用pull拉取操作
//pull由fetch + merge两个操作组成

//分开操作
//fetch操作只是把远程库内容下载到本地,不会进行合并
git fetch 远程库地址别名 分支名
//merge操作
git merge 远程库地址别名/master
//查看下载的内容
git checkout 远程库地址别名/master

//组合操作
git pull 远程库地址别名 master

4.5 团队合作

 

 

 

4.6 跨团队合作

4.6.1 合作方

 

 4.6.2 需求方账号

 

 

 

 

 

posted @ 2019-11-14 21:01  venkim  阅读(187)  评论(0编辑  收藏  举报