Git
版本控制
什么是版本控制?
常见的版本控制工具
- Git
- Svn
- …
版本控制分类
1.本地版本控制
记录文件每次的更新
2.集中式版本控制
所有版本数据保存在服务器上,协同者从服务器同步或上传自己的修改。
代表产品:SVN
3.分布式版本控制 Git
每个人拥有全部的代码。
不会因为服务器损坏或网络问题造成不能工作!
Git与SVN最主要区别
系统分布模式 | 版本库的位置 | 联网要求 | |
---|---|---|---|
SVN | 集中式版本控制系统 | 版本库放在中央服务器 | 必须联网 |
Git | 分布式版本控制系统 | 每个人的电脑就是完整版本库 | 无需完全联网 |
Git是目前世界上最先进的分布式版本控制系统
Git历史
以Linux的开源为由头
前身:收费版的BitKeeper
Git下载卸载
官网:https://git-scm.com/
软件下载:
官网:https://git-scm.com/download/win 速度慢!
淘宝镜像下载:https://npm.taobao.org/mirrors/
软件卸载
1.清理环境变量
系统变量 - Path
2.卸载软件
软件安装
无脑下一步即可
Git启动
开始菜单的Git项:
Git Bash:如同Linux和Unix分格的命令行,多被使用
Git CMD:Windows风格的命令行
Git GUI:图形化界面,不推荐使用
git bash 和 git gui可在任意文件夹下右键使用并自动切换文件路径到该文件夹下
基本的Linux命令
命令 | 作用 |
---|---|
cd | 改变目录 |
cd … | 退回上一个目录,直接cd进入默认目录 |
pwd | 显示当前所在的目录路径 |
clear | 清屏 |
ls | 列出当前路径下所有文件以及文件夹,没有就显示空 |
touch | 新建文件,没有后缀不是文件夹 |
rm | 删除文件,不能删除文件夹 |
mkdir | 创建文件夹 |
rm -r | 删除一个文件夹(包含该文件夹下的所有文件) |
mv | 移动文件 mv 目标文件 目标目录 |
reset | 重启终端 |
history | 查看历史命令 |
help | 帮助 |
exit | 退出 |
# | 表示注释 |
警告!Linux核按钮! 试试就逝世: rm -rf /
Git配置
Git所有配置文件都保存在本地!可以查阅!
查看配置信息
查看配置 git config -l
查看系统配置git config --system --list
查看全局自定义配置git config --global --list
以上是已经设置好的样子!
*必做 设置配置信息
git config --global – user.name “YourName”
git config --global – user.email “YourEmail@XXX.com”
Git基本理论(核心)
工作区域
Git本地有三个工作区域:
工作目录(Working Directory)
暂存区(Stage/Index)
资源库(Repository或Git Directory)
区域 | 解释 | |
---|---|---|
Workspace | 工作区 | 平时存放项目代码的地方 |
Index/Stage | 暂存区 | 临时存放文件的改动,本质上只是一个文件,保存即将提交的文件列表信息 |
Repository | 仓库区(本地仓里) | 数据被安全存放的地方,这里有提交的所有版本数据。其中HEAR指向最新入库的版本 |
Remote | 远程仓库 | 托管代码的服务器。国内码云Gitee/国外Github Github较慢 |
工作流程
一般流程:
- 在工作目录中添加、修改文件; 一个文件:创建或修改了User.xml
- 将需要进行版本管理的文件放入暂存区; 添加命令:git add
- 将暂存区域的文件提交到git仓库。 提交命令:git commit
以上只是在本地进行!
Git项目搭建
本地项目搭建
- 选择一个路径目录;
- 在该目录下右键使用Git Bash;
- 输入命令:
git init
。
完成后目录下生产一个.git目录,里面存储了版本等所有信息
克隆远程仓库项目
- 在gitee或者github上打开别人的仓库,选择
克隆/下载
复制路径; - 选择一个路径目录;
- 在该目录下右键使用Git Bash;
- 输入命令:
git clone 仓库的URL
; - 等待下载完成。
Git文件操作
认识文件的4种状态
状态名 | 解释 | 操作 | |
---|---|---|---|
Untracked | 未跟踪 | 一般新建的(或产生的)文件在文件夹中,但是并未加入到git仓库版本控制。 | 使用git add 将其状态变为Staged |
Unmodify | 未修改 | 此文件已入库受控,且未作修改,即版本库的文件快照内容与文件夹的该文件完全一致。 | ①若修改了内容则会变成Modified状态;②使用git rm 将其移除版本控制变为Untracked状态 |
Modified | 已被修改 | 文件仅仅是被修改了内容,没有其他操作。 | ①使用git add 将其变为Staged状态;②使用git checkout 撤销修改返回Unmodify状态。git checkout就是将版本库里的文件取出,覆盖当前修改。 |
Staged | 暂存状态 | ①执行git commit 则将修改同步到库中,这时版本库中的文件和本地文件夹中的文件变成一致,文件变为Untracked状态。②执行git reset HEAD 文件名 取消对应文件的暂存,文件状态变为Modified |
查看文件状态命令
通过git status
命令就可以查看上述的状态了!
#查看指定文件的状态
git status 文件名字
#查看所有文件的状态
git status
# git add . 添加所有文件到暂存区
# git commit -m
Gitee码云使用
码云官网:https://gitee.com/
注册账号,完善信息
配置SSH公钥
为什么要配置SSH公钥?
SSH是将本机与远端绑定的唯一性钥匙,绑定后使用git push命令就不需要繁琐的输入账户密码,从而实现免密登录!
1.在本机上生成公钥
# 进入 C:\Users\Administrator\.ssh 目录
# 在该目录下右键git bash
# 使用下面的命令生成公钥即可
ssh-keygen
# 生成公钥也可以选择使用加密算法例如:
ssh-keygen -t rsa
2.将生成的公钥复制粘贴到码云上的SSH公钥处
Git工具
第三方独立工具
如小乌龟:TortoiseGit
编译器集成Git工具
Eclipse IDE 、 IDEA、HbuilderX等编译器都可以自行下载Git相关插件进行使用!
Git多人协作(重要)
Git分支
git分支常用命令
#列出所有本地分支
git branch
#列出所有远端分支
git branch -r
#新建一个分支,但依然停留在当前分支
git branch 分支名
#切换分支指向
git checkout 分支名
#新建一个分支,并切换到该分支
git checkout -b 分支名
#合并并指定分支到当前分支
git merge 分支名
#删除分支
git branch -d 分支名
#删除远程分支
git push origin --delete 分支名
git branch -dr 分支名
多人协作(重要)
Git分支
git分支常用命令
#列出所有本地分支
git branch
#列出所有远端分支
git branch -r
#新建一个分支,但依然停留在当前分支
git branch 分支名
#切换分支指向
git checkout 分支名
#新建一个分支,并切换到该分支
git checkout -b 分支名
#合并并指定分支到当前分支
git merge 分支名
#删除分支
git branch -d 分支名
#删除远程分支
git push origin --delete 分支名
git branch -dr 分支名