目录
- Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git的结构:
团队内协作:
团队外协作:
1、本地库操作
1.1 本地库初始化
git init
1.2 设置签名
用于区分不同开发人员身份
命令:
项目级别:仅在当前本地库范围内有效,信息保存在当前项目的.git/config中
git config user.name NAME
git config user.email EMAIL
系统用户级别:登录当前操作系统的用户范围,信息保存在家目录下的.gitconfig中
git config --global user.name NAME
git config --global user.email EMAIL
1.3 查看工作区、暂存区状态
git status
查询结果:
创建一个文件后,再次查询:
1.4 向暂存区中添加文件
将工作区的"新建/修改"添加到暂存区
git add FILENAME 或
git add . # 表示添加所有修改过的文件
1.5 提交到本地库
将暂存区的内容提交到本地库
git commit -m 提交日志 [FILENAME]
如果还有修改过的文件没有添加到暂存区,提交时有两种方式:
git add . & git commit -m 或
git commit -a -m
1.6 查看提交记录
git log
以简洁的方式显示:
git log --pretty=oneline 或
git log --oneline
查看简短的日志:
git reflog
1.7 前进后退版本
- 使用索引值操作[推荐]
- 使用^符号:只能后退
- 使用~符号:只能后退
git reset --hard 索引值
现在head指针指向了9a9ebe0索引所在版本:
# 后退三步,多少个^表示后退多少步
git reset --hard HEAD^^^
# 后退三步
git reset --hard HEAD~3
reset命令的三个参数对比
-
–soft参数
仅仅在本地库移动HEAD指针
-
–mixed参数
在本地库移动HEAD指针
重置暂存区
-
–hard参数
在本地库移动HEAD指针
重置暂存区
重置工作区
1.8 比较文件差异
# 和暂存区中的文件比较
git diff [FILENAME]
#和本地库中的文件比较
git diff HEAD [FILENAME]
git diff HEAD^ [FILENAME]
git diff INDEX [FILENAME]
2、分支管理
分支:在版本控制中,使用多条线同时推进多个任务。
分支的好处:
- 同时并行推进多个功能开发,提升开发效率。
- 各个分支在开发的过程中,如果某一个分支开发失败,不会对其它分支有任何影响。失败的分支删除重新开始即可。
2.1 查看所有分支
git branch -v
2.2 创建新的分支
git branch BRANCH_NAME
2.3 切换分支
git checkout BRANCH_NAME
2.4 合并分支
- 第一步:切换到接受修改的分支上(被合并,增加新内容)
- 第二步:执行merge命令
git merge BRANCH_NAME
解决冲突:
当两个分支中的同一个文件的同一个位置被修改了后,合并分支就会导致冲突。
冲突的解决:
-
编辑文件,删除特殊符号
-
把文件修改到满意的程度,保存退出
-
git add [文件名]
-
git commit -m
3、远程仓库操作
3.1 添加远程仓库地址
git remote add NAME ADDR
# 查看远程仓库地址
git remote -v
3.2 推送到远程仓库
git push REMOTE_ADDR BRANCH
3.3 克隆
git clone REMOTE_ADDR
克隆有三个效果:
- 完整地把远程库下载到本地
- 创建origin远程地址别名
- 初始化本地库
3.4 拉取
pull = fetch + merge
git fetch [远程库地址别名] [远程库分支名]
git merge [远程库地址别名/远程分支名]
git pull [远程仓库地址] [远程库分支名 ]
3.5 推送
git push [远程库地址别名] [远程库分支名]
解决冲突:
- 如果不是基于Github远程库的最新版所做的修改,不能推送,必须先拉取。
- 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。
3.6 SSH免密登录
生成ssh key
ssh-keygen -t rsa -C 邮箱账号
将家目录中的.ssh目录下的id_ras.pub中的内容复制到github中
推荐视频:《尚硅谷git教程》