Git系列(1)
前言
git & github中的专业术语
watch star fork issue repository
pull requeset pull merge fetch
git官网: https://git-scm.com
--------------------------------------------------------------------
1. git 工作区域
git有三个区域
*.本地仓库
^git commit
**.暂存区 -临时存储
^ git add
***.工作区 -写代码
git
-版本控制
-协同修改
-数据备份
-版本管理
-文件系统快照
-权限控制
-历史记录
-查看修改人,时间,内容,日志信息
-分支管理
-多条分支同时推进任务
-git简介
-git命令行操作
设置签名
用户名
邮箱地址
作用:区分不同开发人员的身份
命令:
---项目级别/仓库级别
仅在当前本地库范围内有效
git config
信息保存位置:./.git/config文件
---系统用户级别
登录当前操作系统的用户范围
git config --global
信息保存位置: ~/.gitconfig文件
---级别优先级
就近原则:项目级别优先系统用户级别
基本操作
状态查看操作
git status
添加操作
git add
提交操作
git commit
版本前进后退
基于索引值操作
git reset --hard[局部索引值]
使用^符号:
只能后退
git reset --hard HEAD^
使用~符号
只能后退
git reset --hard HEAD~n
删除文件并找回
前提条件:删除前,文件存在时的状态提交到了本地库
操作: git reset --hard[指针位置]
指针位置:删除操作已经提交到本地库,历史记录或当期位置
删除操作未提交到本地库,使用HEAD
比较文件差异:
git diff [文件名]
将工作区的文件和暂存区进行比较
git diff [本地库中历史版本] [文件名]
将工作区的文件和本地库历史记录比较
不带文件名比较多个文件
git reset --hard
reset命令的三个参数对比
--soft参数
仅仅在本地库移动HEAD指针
--mixed参数
在本地库移动HEAD指针
重置暂存区
--hard参数
在本地库移动HEAD指针
重置暂存区
重置工作区
分支管理:
什么是分支?
在版本控制过程中,使用多条线同时推进多个任务
分支的好处
同时并行推进多个功能开发,提高开发效率
各个分支在开发过程中,互不影响
分支操作
创建分支
git branch [分支名]
查看分支
git branch -v
切换分支
git checkout [分支名]
合并分支
第一步:切换到接受修改的分支(被合并,增加新内容)上
git checkout[被合并分支名]
第二步:执行merge命令
git merge[有新内容分支名]
解决冲突
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:git add[文件名]
第四步:git commit -m "日志信息"
attention:此时不能带具体文件名
克隆
命令
git origin [远程地址]
克隆有三个效果
*.完整的把远程库下载到本地
**.创建origin远程地址别名
***.初始化本地库
拉取
pull == fetch + merge
git fetch [远程库地址别名][远程分支名]
git merge [远程库地址别名/远程分支名]
解决冲突:
如果不是基于远程库的最新版所做的修改,不能推送,必须先拉取
拉取下来如果进入冲突状态,则按照'分支冲突解决'操作解决即可
本地修改,推送到远程
---------------------------------------------
SSH登录
进入当前用户的家目录
cd ~
删除.ssh目录
rm -rvf .ssh
运行命令生成.ssh密钥目录
ssh-keygen -t rsa -C 邮箱地址
[注意:这里-c这个参数是大写的C]
进入.ssh目录查看文件列表
cd .ssh
查看id_rsa.pub文件内容
cat id_rsa.pub
复制id_rsa.pub文件内容,
登录GitHub,点击用户头像-->Setting-->SSH and GPG keys --> New SSH Key
输入复制的密钥信息
回到Git bash 创建远程地址别名
git remote add origin_ssh 远程地址
----------------------
git 工作流
分类
集中式工作流
GitFlow工作流
Forking工作流