当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。(用于本地仓库提交的账户信息)
设置用户信息
git config --global user.name “用户名”
git config --global user.email “邮箱(可以不是真实存在但是符合规范)”
查看配置信息
git config --list
注意:上面设置的user.name和user.email并不是在注册码云账号时使用的用户名和邮箱,此处可以任意设置
只需要设置一次
要使用Git对我们的代码进行版本控制,首先需要获得Git仓库。
获取Git仓库通常有两种方式:
在本地初始化一个Git仓库(不常用)
从远程仓库克隆(常用)
执行步骤如下:
1. 在任意目录下创建一个空目录(例如repo1)作为我们的本地Git仓库
2. 进入这个目录中,点击右键打开Git bash窗口
3. 执行命令git init
如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功
仓库远程和本地都需要保持唯一,本地初始化的一开始没有版本号
git init
mac: command+shift+. 显示隐藏文件
相当于开发人员byhz 在本地初始化了一个本地仓库
git clone 远程仓库地址
例如:git clone https://gitee.com/hatman/git_code_demo.git
相当于:开发人员byhz clone的gitee上的远程仓库(带有版本库)
注:当输入gitee密码错误之后,可能就永久执行错误的账号密码。解决方案:清楚掉本地记录的用户和密码,并且下次输入自动保存命令
清除用户名密码:
git config --global credential.helper wincred
git credential -manager uninstall
保存用户名密码:
git config --global credential.helper store
开源项目不需要账号密码
版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
Git工作区中的文件存在两种状态:
untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)
1)Unmodified 未修改状态
2)Modified 已修改状态
3)Staged 已暂存状态
注意:这些文件的状态会随着我们执行Git的命令发生变化
本地仓库常用命令如下:
git status 查看文件状态
git add 将文件的修改加入暂存区
git reset 将暂存区的文件取消暂存或者是切换到指定版本
git commit 将暂存区的文件修改提交到版本库
git log 查看日志
git status 查看文件状态
git add 文件名 添加到暂存区
git reset 从暂存区中撤销
git commit -m "备注信息" 文件名 暂存区提交到版本库
git log 查看日志信息
1.修改文件
2.添加文件到暂存区
3.提交文件到版本库
4.查看版本日志
5.切换到指定版本
git reset –-hard 版本号
这个操作会导致切换后,后续版本丢失,日志丢失,版本并不会丢失
git status
git add 文件
eg:git add hello.txt
git commit -m "备注信息" 文件
eg:git commit -m "备注信息" hello.txt
git reset --hard 版本号
eg:git reset --hard 7514e7aca38c8bc67a6f8b57de3be1e49a8706b2
git reflog 查看历史版本
前面执行的命令操作都是针对的本地仓库,本节我们会学习关于远程仓库的一些操作,具体包括:
git remote 查看远程仓库
git remote add 添加远程仓库
git clone 从远程仓库克隆
git pull 从远程仓库拉取
git push 推送到远程仓库
之前的远程仓库有了版本号,不能将本地仓库的直接推送到远程仓库,需要重新创建一个远程仓库(不初始化)
git remote 查看远程仓库
git remote add
1.首先创建一个无版本库的远程仓库
2.本地仓库添加到远程仓库
git remote 查看远程仓库
git remote add 远程仓库别名 远程仓库地址 本地仓库添加到远程仓库
eg: git remote add orign https://gitee.com/hatman/local-for-orign.git
git push 别名 分支名(master) 推送到远程仓库
eg: git push orign master
1.远程仓库新增一个测试文件
2.从本地仓库拉取新的版本
get pull 别名 分支名
eg: git pull orgin master
克隆:本地没有仓库,将整个远程仓库全部复制到本地
拉取:本地与远程都有仓库,将远程新的版本拉取到本地
版本库创建的两种方式:
1.远程版本库clone到本地
远程仓库初始化一个仓库(初始化就有了版本库),就可以通过clone到本地,本地仓库就和远程仓库是同一个版本id。
2.本地版本库推送到远程空仓库
远程新建一个仓库但是不要初始化(空仓库),本地初始化一个版本库就可以推送到远程仓库。
gitee上清空仓库可以把版本库全部清除变成一个空的仓库
分支是Git 使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
通过git init 命令创建本地仓库时默认会创建一个master分支
master分支用于存放没有问题的代码(可以运行的)
其他分支:开发不同的功能,中间可以进行版本控制,等这个功能开发的没有问题了,就推送到master分支。
git branch 列出所有本地分支
git branch -r 列出所有远程分支
git branch -a 列出所有本地分支和远程分支
git branch 分支名
eg:git branch b1
git checkout 分支名
git add 文件名 (提交到暂存区)
eg: git add b1_hello.txt
git commit - ”备注“ 文件名 (提交到本地版本库)
eg: git commit - "备注" b1_hello.txt
git push 远程仓库别名 分支名 (本地版本库推送到远程仓库)
eg: git push orgin b1
推送后远程仓库没有该分支会自动创建,忘记远程仓库别名可以git romote查看
刚才的b1分支合并到主分支master
git merge 分支名
eg:git merge b1
Git 中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。
比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 、v1.2等)。
git tag 列出已有的标签
git tag [name] 创建标签
git push [shortName] [name] 将标签推送至远程仓库
git checkout -b [branch] [name] 检出标签 (此版本有问题就可以剪出到分支去修改)
git tag (查看已有标签)
git tag 标签名 (创建标签)
eg: git tag v0.1
git tag v0.2
git push 远程仓库别名 标签 (标签推送到远程仓库)
当发现某个版本有问题的时候,不能直接在主分支修改,需要检出标签
git checkout -b 检出分支名 标签
eg: git checkout -b b2 v0.2
比如v0.2版本有问题已经被检出到新的分支b2,当修改完成之后又需要合并会master并push到远程仓库