分布式版本控制系统(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 需求方账号
venkim.com