git入门(一):本地仓库相关命令
git概述
git是分布式版本控制系统,分为两种类型的仓库:本地仓库和远程仓库
本地仓库:开发者在自己电脑上的git仓库
远程仓库:在远程服务器上的git仓库,一般为多个开发人员使用的公共仓库
git仓库之间常用的几种操作
clone:克隆,将远程仓库复制到本地
push:推送,将本地仓库代码上传到远程仓库
pull:拉取,将远程代码下载到本地仓库

git工作流程
- 将远程仓库克隆到本地
- 从本地仓库checkout检出代码后进行代码修改
- 提交前先将代码提交到暂存区
- 将代码从暂存区提交到本地仓库,本地仓库中保存着修改的各个历史版本
- 代码修改完成后需要和团队成员共享时,将代码push到远程仓库

git下载与安装:
官网下载,和一般软件安装无区别,一路下一步即可
安装完成后点击鼠标右键会出现git GUI和git Bash两个选项说明安装成功,GUI是git提供的图形操作界面,Bash是git提供的命令行工具。
git代码托管服务
上面已经知道git两种仓库类型,本地仓库和远程仓库。那么我们怎么搭建远程仓库进行git相关命令学习呢?可以借助网上的代码托管服务来搭建远程仓库,比较常用的有github 码云 gitlab
以下实例都是基于码云上远程仓库进行的实验,码云地址https://gitee.com 服务器在国内,相比github和gitlab速度更快。个人注册基本功能可以免费使用。
git常用命令(一)
- 环境配置
- 获取git仓库
- 工作目录、暂存区、版本库概念
- git工作目录下文件两种状态
- 本地仓库操作
- 远程仓库使用
下面对每一个场景详细介绍
环境配置
git安装完成以后第一件事情就是设置环境信息,配置用户名和邮箱;因为每次代码提交都会使用该信息。 这里的用户名和邮箱可以是任意字符串,git不会对其进行校验
环境配置方法:
1、创建空文件夹,该文件夹作为本地仓库使用的父文件夹
2、新创建的文件夹鼠标右键,点击git Bash使用下面命令配置用户信息和查询用于信息
设置用户信息
git config --global user.name "mygit"
git config --global user.email "mygit@qq.com"
设置的用户信息被保存在~./gitconfig文件中
查询配置信息
git config --list #查询所有用户信息,上面的配置命令只是配置信息的一部分,还有很多配置信息适用默认值或者可以不关注,使用--list可以查询其使用值
git config user.name #查询配置信息中的user.name信息
获取git仓库
方法一:本地初始化仓库
- 设置用户信息路径下新建一个文件夹
- 进入新建的文件夹后鼠标右键调出git Bash
- 执行git init
- 执行完成后在当前文件夹会出现一个隐藏的文件夹.git就表示本地仓库初始化成功了


方法二:克隆远程仓库到本地
- 首先在码云上注册账号,创建一个远程仓库
码云上不同时间登录网站界面可能不相同,截图仅供参考

- 创建远程仓库后复制远程仓库地址

- 本地克隆远程仓库信息
在配置用户信息的文件夹下右键进入git Bash
执行git clone https://xxxxx #https://xxx为复制的远程仓库地址;本地仓库名称不用指定,保持和远程仓库一致即可

工作区、暂存区、版本库概念
为了更好的学习git这几个概念应该理解清楚,后面会反复用到这些概念。
- 工作区
本地初始化或者远程仓库克隆的那个文件夹就是工作区,如上面的mytest20210523
- 暂存区
工作区里面的.git隐藏文件夹有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
- 版本库
工作区下面的.git隐藏文件夹就是版本库,版本库存储了很多日志信息、配置信息、文件版本信息等。

git工作目录下文件两种工作状态
- untracked(未被纳入版本控制)
- tracked(已被纳入版本控制)
git status
查看有变化的文件,下面示例中.gitignore文件被修改,test.py文件第一次新建没有添加到暂存区是状态为untracked

git add filename
#将修改的文件从工作添加到暂存区,添加到暂存区以后原来tracked的文件.gitignore由红色变为绿色;原来untrackted的test.py文件由untrackted变为tracked状态,文件颜色也变为绿色

git reset HEAD filename
#将添加到暂存区的操作撤销,文件重新回到工作区的状态

git commit
#将当前暂存区修改的文件提交到版本库。 注意:不会提交工作区修改的文件,工作区文件只有git add添加到暂存区才可以git commit。 git commit以后如果工作区没有未添加到暂存区的文件那么git status就返回所有文件状态与版本库一致

git commit -a
#将contracked状态修改的文件全部进行add和commit了;这样就不需要对文件逐个进行add
本地仓库操作命令
文件状态章节已经介绍了git status git add git commit命令,下面介绍本地仓库的其它常用操作命令
git reset
#回退git commit
git reset --soft HEAD~1
#回退最近一次commit到暂存区commit之前的状态

git reset --hard HEAD~1
#回退最近一次commit到工作区add之前的状态(回退git commit和commit包含暂存区所有add操作,如果add过untraccted文件reset以后新创建的文件会被删除)

git log
#查询commit的历史记录

git reset --hard commitid
#将版本库回退到指定版本id的commit提交状态,下面示例是回退到添加test1.txt文件的提交状态

git rm filename
#删除trackted状态的文件,该操作默认提交到暂存区,commit后文件就在本地仓库被彻底删除了

.gitignore
#该文件内容为git版本管理需要忽略文件的规则配置,详见仓库初始化文件内示例
浙公网安备 33010602011771号