1 Git配置
1.1 配置用户名与邮箱
git config --global user.name "..."
git config --global user.email "...@cookies.cn"
注意:如果使用了--global 选项,那么该命令只需要运行一次,即可永久生效
1.2 Git的全局配置文件
配置好的信息会被写入C:/Users/用户名文件夹/.gitconfig 中
Window + E 打开我的电脑
1.3 检查配置信息
除了上面的方法外,还可以运行如下命令
# 查看所有的全局配置项
git config --list --global
# 查看指定的全局配置项
git config user.name
git config user.email
1.4 获取帮助信息
使用git help <verb> 命令,无需联网即可在浏览器中打开帮助手册
# 想打开git config命令的帮助手册
git help config
用-h 选项可以获取更简明的help输出
# 想要获取git config命令的快速参考
git config -h
2 基本操作
2.1 获取Git仓库的两种方式
在现有目录中初始化仓库
如果有一个尚未进行版本控制的项目目录,想用Git来控制它
-
在项目目录中,通过右键打开Git Bash -
执行git init 命令将当前的目录转化为Git仓库
会生成一个.git 隐藏目录
2.3 Git中文件的状态
工作区中文件的4种状态
未跟踪(Untracked):不被Git所管理的文件
未修改(Unmodified):工作区中文件的内容与Git保持一致
已修改(Modified):工作区中文件的内容与Git不一致
已暂存(Staged):已被放到暂存区,准备修改后的文件保存到Git仓库中
使用git status --short 命令查看文件处于什么状态
2.4 移除文件
# 从Git仓库和工作区中同时移除index.js文件
git rm -f index.js
# 只从Git仓库中移除index.css,但保留工作区中的index.css文件
git rm --cached index.caa
2.5 Git忽略文件
.gitignore
# 忽略所有 .a 文件
*.a
# 但跟踪所有的 lib.a ,即时你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件
build/
# 忽略 doc/notes.txt ,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
2.6 提交历史与版本回退
# 按时间先后顺序列出所有的提交历史,最近的在最上面
git log
# 只展示最新两条
git log -2
# 在一行上显示所有的提交历史
git log --pretty=oneline
# 使用 git reset --hard 命令,根据指定的提交 ID 回退到指定版本
git reset --hard <CommitID>
# 在旧版本中使用命令查看命令操作的历史
git reflog --pretty=oneline
# 再次根据最新的提交 ID ,跳转到最新的版本
git reset --hard <CommitID>
3 Github
3.1 常见的开源许可协议
GPL
MIT
3.2 远程仓库的两种访问方式
HTTPS SSH
推荐使用SSH
SSH Key
作用:本地仓库和Github之间免登录的加密传输
两部分组成:
-
id_rsa (私钥文件,直接生成,存放在客户端电脑中即可) -
id_rsa.pub (公钥文件,需要配置到 Github 中)
生成SSH Key
-
打开 Git Bash -
粘贴如下命令,并替换成注册账号时填写的邮箱: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
连续敲击3次回车,即可在C:\Users\用户名文件夹\.ssh 目录中生成私钥、公钥文件
配置SSH Key
-
打开公钥文件,复制里面的内容 -
点击头像=>Setting=>SSH and GPG Keys =>New SSH Key -
复制进文本框 -
任意填写名称,用来标识Key的来源
检测是否配置成功
ssh -T git@github.com
4 分支
4.1 分支的概念
master:主分支——用来保存已完成的功能
功能分支:用来开发新功能,开发完成后合并到master主分支上
4.2 查看&创建&切换
查看
git branch
前面带*,说明当前所在分支
创建
git branch 分支名称
基于当前分支创建新分支
切换
git checkout 分支名称
4.3 快速创建并切换
git checkout -b 分支名称
4.4 合并分支&删除分支
# 1.切换到 master 分支
git checkout master
# 2.在 master 分支上运行 git merge 命令,将 login 分支的代码合并到 master 分支
git merge 分支名称
git branch -d 分支名称
4.5 上传分支&查看远程分支列表
# -u 表示把本地分支和远程分支进行关联,只在第一次推送时需要带 -u 参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称
# 实际案例
git push -u origin payment:pay
# 如果希望远程分支和本地分支保持一致,也可以简化
git push -u orgin payment
一般默认origin
查看远程仓库所有分支列表
git remote show 远程仓库名称
一般默认origin
4.6 跟踪分支&拉取分支&删除远程分支
# 从远程仓库中,把对应的远程分支下载到本地仓库
git checkout 远程分支的名称
# 示例:
git checkout pay
# 从远程仓库中,把对应的分支下载到本地,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称
# 示例:
git checkout -b payment origin/pay
# 从远程仓库更新代码
git pull
# 删除远程仓库中,指定名称的远程分支
git push 远程仓库名称 --delete 远程分支名称
# 示例:
git push origin --delete pay
|