1、git基本概述
1.1 Git和代码托管中心
代码托管中心的任务:维护远程库
1.局域网环境下
- GitLab服务器
2.外网环境下
- GitHub
- 码云
3.本地库与远程库
- 团队内协作
- 不同团队协作
2、工作区、暂存区、本地库基本操作
2.1 本地库初始化
- 命令:git init
- 效果
- 注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改
2.2 设置签名
1.形式
用户名:tom
Email 地址:goodMorning@atjiahui.com
2.作用:区分不同开发人员的身份
3.辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
4.命令
- 项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name tom_pro
git config user.email goodMorning_pro@atjiahui.com
信息保存位置:./.git/config文件 - 系统用户级别:登录当前操作系统的用户范围
git config --global user.name tom_pro
git config --global user.email goodMorning_pro
@atjiahui.com
信息保存位置:~/.gitconfig文件 - 级别优先级
就近原则:项目级别优先于系统用户级别,二者都有时采取项目级别的签名
如果只有系统级别的签名,就以系统级别签名为准
二者都没有不允许
2.3 添加提交以及查看状态
-
查看状态
命令:git status -
添加至暂存区
命令:git add 文件名+后缀 -
提交至本地库
命令:git commit 文件名+后缀
进入vim编辑器添加本次提交的描述
行命令:Esc + shift + : + set nu
退出命令:Esc + shift + : + wq -
修改文件然后提交
进入文件命令:vim 文件名+后缀
退出命令:Esc + shift + : + wq
此时查看状态,添加至暂存区:
提交:可以不进入vim编辑器,直接添加本次提交的描述:
命令:git commit -m “commit message” good.txt -
总结
2.4 查看历史记录
- git log
多屏显示控制方式:空格向下翻页,b 向上翻页,q 退出 - git log --pretty=oneline
- git log --oneline
- git reflog
HEAD@{移动到当前版本的步数}
2.5 前进后退历史版本
-
基于索引值操作(前进后退)
命令:git reset --hard 索引值
-
使用^符号(只能后退)
命令:git reset --hard HEAD^
一个^表示后退一个,n个表示后退n个
-
使用~符号(只能后退)
命令:git reset --hard HEAD~步数
后退数为步数
2.6 reset的三个参数对比
查看帮助文档命令:git help reset
2.7 删除文件后找回
删除文件命令:rm 文件名+后缀
查看本地文件:ll
删除操作已经提交到本地库:
- 首先创建文件并提交本地库:
- 执行删除操作并将删除操作提交本地库:
- 通过reset命令找回未删除版本:
删除操作未提交到本地库:
2.8 文件比较
3、分支管理
3.1 什么是分支?
3.2 分支的好处
- 同时并行推进多个功能开发,提高开发效率
- 各个分支在开发过程中,如果某一个分支开发失败。不会对其他分支有任何影响,失败的分支删除重新开始即可
3.3 分支操作
- 解决冲突
4.本地库与远程库之间的操作
4.1 在本地库创建远程库地址别名
在创建完远程库之后复制远程库HTTP地址后创建别名
-
创建别名
git remote add 远程库地址别名 远程库地址 -
查看别名与地址
git remote -v
4.2 推送操作
git push add 远程库地址别名 远程库分支
例如:git push origin master 推送到origin所代表的的运程库的master分支。
4.3 克隆
git clone 远程库地址
将远程库的内容全部克隆到本地。
效果:
-
完整的把远程库的内容下载到本地
-
创建origin远程库地址别名
-
初始化本地库
4.4 拉取
pull = fetch + merge
pull相当于抓取合并:git pull 远程库地址别名 远程库分支
1.把远程库的内容下载到本地:git fetch 远程库地址别名 远程库分支
例如:git fetch origin master
只是把远程库的内容下载到本地,并没有改本地工作区的文件。
2.查看下载的内容:
- 先切换:git checkout 远程库地址别名/远程库分支
例如:git checkout origin/master - 查看:cat 文件名
例如:cat huashan.txt - 切换回去:git checkout 远程库分支
例如:git checkout master
3.合并:
git merge 远程库地址别名/远程库分支
例如:git merge origin/master