Git和Github
Git
安装
官网:https://git-scm.com/
配置
配置用户名 命令行
git config -global user.name “remo”
配置邮箱 命令行
git config -global user.email “xxxx@xx.com”
检查版本 命令行
git --version
Git中的三个区域
1.工作区
2.暂存区
3.Git仓库
Git中的三种状态
1.已修改 modified
2.已缓存 staged
3.已提交 committed
检查配置信息
查看全局配置项 命令行:
git config --list --global
查看指定配置项 命令行:
git config user.name
将尚未进行版本控制的本地目录转换为 Git 仓库
1.打开项目列表
2.输入命令行 git init
git init 命令会创建一个名为 .git 的隐藏目录,这个 .git 目录就是当前项目的 Git 仓库,里面包含了初始的必要文件,这些文件是 Git 仓库的必要组成部分。
工作区中的四种状态
查看状态
查看当前仓库下的文件状态 命令行:
git status 详细状态
git status -s 简单状态
常用命令行
命令行 | 操作 |
---|---|
git init | 新建git仓库 |
git status | 检查状态 详细版 |
git status -s | 检查状态 简化版 |
git add 文件名 | 跟踪新文件 |
git add . | 跟踪全部新文件 |
git commit -m “说明” | 提交至git仓库 |
git commit -a -m “说明” | 不经过暂存区直接提交至git仓库 |
git reset HEAD – 文件名 | 移出暂存区 |
git rm -f 文件名 | 从 Git 仓库和工作区中同时移除对应的文件 |
git rm --cached 文件名 | 只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件 |
Git仓库控制流程
- 新建git仓库 使用命令行 git init
- 项目中的所有文件都为 未跟踪状态 未跟踪标识为 红色的??
- 跟踪新文件 使用命令行 git add 文件名
- 跟踪目录下所有文件 使用命令行 git add .
- 跟踪的新文件会处于暂存区 已缓存状态标识为 绿色的A
- 提交到git仓库 使用命令行 git commit -m “提交说明”
- 当跟踪文件被修改,没有放入暂存区 标识符为 红色的M
- 当git add 把修改文件放入暂存区 标识符为 绿色的M
忽略文件
创建 .gitignore文件
- 格式规范:
- 以 # 开头的是注释
- 以 / 结尾的是目录
- 以 / 开头防止递归
- ! 开头表示取反
- 可以使用 glob 模式进行文件和文件夹的匹配
- glob 模式是指简化了的正则表达式:
- 星号 * 匹配零个或多个任意字符
- [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
- 问号 ? 只匹配一个任意字符
- 在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)
- 两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)
.gitignore例子
查看提交历史
回退历史版本
Github
常见五种开源协议
使用HTTP上传
- 将现有的Git仓库提交至Github
命令行:
git remote add origin https://github.com/CookChopper/project_02.git
git branch -M main
git push -u origin main
- 当Git仓库修改文件后,将新文件上传到Github
命令行
git push origin main
SSH上传
- 先生成一个 SSH KEY
命令行: 邮箱换成自己的github注册邮箱
ssh-keygen -t rsa -b 4096 -C “your_email@example.com”
连续三次回车
创建 id_rsa 和 id_rsa.pub这两个文件
-
打开 id_ras.pub 文件 复制文件中的key
-
进入github网站 打开Settings
-
title是key的名字 key输入刚才复制的密钥
-
检查SSH是否配置成功
命令行
ssh -T git@github.com
输入yes
出现以下代码,表示成功
Hi CookChopper! You’ve successfully authenticated, but GitHub does not provide shell access.
CookChopper是username
- 上传到Github仓库
命令行
git remote add origin git@github.com:CookChopper/project_02.git
git branch -M main
git push -u origin main
克隆远程仓库到本地
git clone 仓库地址
分支
查看分支列表
git branch
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
创建分支并同时切换到该分支
git checkout -b 分支名称
合并分支
先切换到主分支
git checkout master
合并功能分支
git merge 分支名称
删除分支
git branch -d 分支名称
git branch -D 分支名称 强制删除
合并分支遇到冲突时
当两个分支同时对一个文件进行修改,合并时就会遇到冲突
先用vscode 打开冲突的文件 手动解决冲突
然后执行以下命令
git add .
git commit -m “提交信息”
远程分支的操作
一般远程仓库名称为 origin
第一次推送本地分支到远程仓库
git push -u 远程仓库的别名 本地分支仓库:远程分支的别名
示例:
git push -u origin reg:register
如果本地分支要跟远程分支同名
git push -u origin reg
后面推送本地分支到远程仓库
git push
查看远程分支的列表
git remote show 远程仓库名称
跟踪分支/下载分支
从远程仓库中下载分支到本地仓库
git checkout 远程分支名称
从远程仓库下载远程分支,并进行重命名
git checkout -b origin 远程分支名称:本地分支名称
同步远程分支的最新代码
git pull
删除远程分支
git push 远程仓库名称 --delete 远程分支名称
示例:
git push origin --delete register
总结
新建分支
git checkout -b login
修改文件后
git add .
git commit -m “提交信息”
合并分支
git merge login
上传仓库
git push
删除分支
git branch -d login
上传本地分支到远程仓库
git push origin 分支名