git简介
Git是一个分布式版本控制工具,对开发过程中的代码进行管理和存储
包括:
- 本地仓库:自己电脑
- 远程仓库:服务器
commit:提交,将本地文件和版本信息保存到本地仓库
push:推送,将本地文件和版本信息上传到远程仓库
pull:拉取,将远程仓库文件和版本信息下载到本地仓库
git功能
- 代码回溯
- 版本切换
- 多人协作
- 远程备份
Git下载和安装
下载完成
远程仓库:
github:GitHub
gitee:工作台 - Gitee.com
Git常用指令
Git全局配置
安装完git后首先要设置用户名称和email地址,因为每次提交,都要使用该用户信息
设置用户信息
不需要和社区账号一致,可任意设置,只是一个标识
git config --global user.name "jiaran"
git config --global user.email "1828233753@qq.com"
查看配置信息
git config --list
获取git仓库
- 在本地电脑初始化一个git仓库
- 从远程仓库克隆
本地初始化
在任意目录下建立空文件夹作为新仓库
进入目录中右击打开git bush
输入指令
git init
创建成功后如下列图所示
远程仓库克隆
将远程仓库克隆到本地
在一个空文件夹(所选的仓库位置)中输入命令:
git clone [远程仓库地址]
克隆成功后如下图所示:
git基本概念
版本库:.git文件夹就是版本库,本地仓库,存储了很多版本信息日志信息和文件版本信息。
工作区:包括.git文件夹的目录就是工作区,也成为工作目录
暂存区:.git文件夹的index文件就是暂存区,也叫stage。是一个暂时修改文件的地方。
工作区文件状态:
- untracked 未跟踪(未被纳入版本控制)
- tracked 已跟踪(被纳入版本控制)
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
使用add将工作区的文档加入缓存区,并使用status查看状态
使用commit指令提交到版本库,并用写明分支信息
任何文件直须提交到暂存区一次
如果将已经提交过暂存区的文件修改,则查看状态会出现下图所示:
修改文件已成为已修改状态。
文件的状态会随着我们执行Git的命令而变化。
本地仓库操作
本地仓库常用指令:
- git status 查看文件状态
- git add 将文件修改加入暂存区
- git reset 将文件取消暂存或者切换到指定版本
- git commit 将暂存区的文件修改提交到版本库
- git log 查看日志
其中用reset进行代码回溯
git reset --hard 【版本号】
版本号用log查看。
远程仓库的操作
远程仓库常见指令:
- git remote 查看远程仓库
- git remote add 添加远程仓库
- git clone 从远程仓库克隆
- git pull 从远程仓库拉取
- git push 推送到远程仓库
查看
关联远程仓库的(从远程clone,或者上传过的):
没有关联远程仓库的(一直在本地的):
一个本地仓库对应一个远程仓库,所以本地上传需要先远程建立一个仓库
使用指令:
git remote add origin https://gitee.com/shengjiaranzhiyin/mxl_study_02.git
后面跟着<别名><url> 成功后查看远程能够显示
推送
git push origin master
其中origin是别名,master是分支,可以将本地的推送到远程仓库
克隆
git clone <url>
拉取
git pull origin master
分支操作
分支可以把自己的工作从开发的主线上分离开来,以免影响开发主线,同一仓库
可以有多个分支,各个分支相互独立互不干扰
通过git init命令创建本地仓库时默认会创建一个master分支
相关指令
- git branch 查看分支
目前只有一个master分支,并且*处在master分支
- git branch [name] 创建分支
创建了一个新分支b1
- git checkout [name] 切换分支
转换到分支b1中
切换回master中,在b1中的修改都消失
- git push [shortName] [name] 推送至远程仓库分支
- git merge [name] 合并分支
把指定分支的代码合并到当前分支。
- git branch -d [name] 删除分支
标签操作
git标签,指某个分支某个特定时间点的状态,通过标签可以很方便的切换到标记时的状态。
比如人们会使用这个功能来标记发布节点(v1.0,v1.2)等。
- git tag 列出已有标签
- git tag [name] 创出标签
- git push [shortname] [name] 将标签推送到远程仓库
- git checkout -b [branch] [name] 检出标签