Git & GitHub 操作
一、下载
Git官网
下载后直接执行文件
查询git版本号:
git --version
二、Git基础命令
git工作原理:
-
工作区
我们能看到的,并且用来写代码的区域 -
暂存区
临时存储用的 -
历史区
生成历史版本
代码提交:工作区->暂存区->历史区
如果想还原代码 暂存区和历史区都可以还原(撤回)
工作区提交暂存区:$ git add -A
暂存区提交历史区: $ git commit -m’描述’ # 生成历史版本信息
如果想提交到 中央仓库(github)
先拉取: $ git pull origin mian/master
在提交: $ git push origin mian/master
如果哪一天想要回滚
历史区到工作区: $ git checkout 文件名
暂存区到工作区:$ git reset 文件名 回滚至工作区的 文件未修改时状态 / $ git reset HEAD 回滚至工作区的 文件修改之后状态
1、git的全局配置
第一次安装完成git后,我们在全局环境下配置基本信息:我是谁?
#查看配置信息
# --local:仓库级,--global:全局级,--system:系统级
$ git config <--local | --global | --system> -l
#查看当前配置信息 -l 是 --list 简写
$ git config -l
#查看全局级配置信息
$ git config --global -l
# 修改全局配置信息 用户名和邮箱
$ git config --global user.name 'xxx'
$ git config --global user.email 'xxx'
# 清屏
$ clear
2、创建仓库完成版本控制
# 创建本地git仓库 在当前目录下生成一个隐藏文件夹 ".git" (这个文件夹千万不要删,因为暂存区和历史区还有一些其它信息都在这个文件夹中,删了就不是一个完整的仓库)
$ git init
把本地编写完成的代码后(工作区),把一些文件提交到暂存区
# 把某一个文件或者文件夹提交到暂存区
$ git add <file>
# 把当前仓库中所有最新修改的文件都提交到暂存区
$ git add . / -A
# git add . #包含修改和增加的,但不包含删除的
# git add -u #包含修改和删除的,但不包含新增的
# git add -A #同时具备 . 和 -u 特性
# 查看当前文件的状态(红色代表在工作区,绿色代表在暂存区,看不见东西证明所有修改的信息都已经提交到历史区)
$ git status
# 撤回提交文件 从暂存区删除
$ git rm --cached <file>
# 提交所有文件
$ git add . # 或者 git add -A
# 需要把某些文件忽略提交,项目跟目录增加 .gitignore
把暂存区内容提交到历史区
# 提交到历史区
$ git commit -m'描述信息:本次是第一次提交的描述' # -m'' 不加空格
# 查看添加记录
$ git log
# 查看所有的历史记录(包括回滚的信息)
$ git reflog
# 回退历史版本
$ git reset --hard <commit的id>
回退历史版本
回退回滚记录的版本
从工作区提交到暂存区,从暂存区提交到历史区:是把内容复制一份传过去的,本区域中依然存在这些信息(只有这样才能对比出那些文件在某个区)
3、git和github
一个网址(一个开源的源代码管理平台),用户注册后,可以在自己账号下创建仓库,用来管理项目的源代码(源代码基于git传到仓库中)
我们所熟知的插件、类库、框架等都在这个平台有托管,我们可以下载观看和研究源码等
把本地仓库信息提交到运程仓库
//=> 建立本地仓库和远程仓库的连接
# 注意:如果是新建的文件夹 要从 工作区-》暂存区-》历史区 顺序提交 再提交到远程仓库
# 查看本地仓库和哪些远程仓库保持链接
$ git remote -v
# 让本地仓库和远程仓库新建一个链接 origin是随便起的一个链接名(可以改成自己想要的,只不过一般都用这个名字)
$ git remote add origin [git远程仓库地址]
# 删除关联信息
$ git remote rm origin
# 提交之前最好先拉取
$ git pull origin main
# 把本地代码提交到远程仓库(需要输入GitHub的用户密码)
$ git push origin main
/**
* 真实项目开发流程
* 1.组长或者负责人先创建中央仓库(增加协作者)
* 2.小组成员基于 git clone 命令把远程仓库默认的内容克隆到本地一份
* $ git clone [git远程仓库地址]
* git clone 解决了三个事情:
* ①.初始化一个本地仓库 git init
* ②.和对应的远程仓库保持了关联 git remote add origin [git远程仓库地址]
* ③.把远程仓库默认的内容拉取到本地 git pull origin main
* 3.每个小组写完自己的代码后,基于"git add/git commit" 把自己修改的内容存放到历史区,然后通过 "git pull/git push" 把本地信息和远程仓库信息同步即可(可能涉及冲突处理)
*/
# 使用clone 命令
$ git clone [git远程仓库地址] [别名(文件夹名称):可以不设置,默认是仓库名]
# 把本地新增一个文件 提交暂存区
$ git add .
# 从暂存区提交历史区
$ git commit -m提交xx信息'
# 提交中央仓库 可以省略 push后面的信息 因为本机有记录了
$ git push
# 拉取中央仓库内容 可以省略 pull后面的信息
$ git pull
注:如果git remote -v 出现:fatal: not a git repository (or any of the parent directories): .git 错误 执行: git init 命令 因为本地没有创建工作区
分支命令
# 克隆分支 -b 指定要克隆的分支,默认是master分支
$ git clone <git远程仓库的网址> -b <分支名称> <本地目录>
# 创建分支
$ git branch <分支名>
# 查看所有分支
$ git branch -v
# 切换分支
$ git checkout <分支名>
# 创建分支并且跳转到分支上 (常用)
$ git checkout -b <分支名>
# 合并分支
$ git checkout main # 先切换到主干
$ git merge <分支名> # 合并
# 删除分支
$ git checkout main # 先切换到主干
$ git branch -D <分支名> # 删除