这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
配置Git
配置用户信息
全局配置的文件放在C:/User/用户名文件夹/.gitconfig
git config --global user.name "xxx"
git config --global user.email "xxx"
检查配置信息
// 查看所有全局配置项
git config --list --global
// 查看指定的全局配置项
git config user.name
git config user.email
打开帮助手册
// 打开 git config 命令的帮助手册
git help config //在浏览器打开
// 在终端打开简单的帮助手册
git config -h //在终端打开
忽略文件
.gitignore 配置文件
※以
#开头的是注释※以
/结尾的是目录※以
/开头防止递归※以
!开头表示取反 ※可以使用glob模式进行文件和文件夹的匹配(glob指简化了的正则表达式)
例子:
#忽略所有的.a 文件
*.a
#但跟踪所有的lib.a,即便你在前面忽略了.a文件
!lib.a
#只忽略当前目录下的 TODO文件,而不忽略subdir/TODO
/TODO
#忽略任何目录下名为build的文件夹
build/
#忽略 doc/notes.txt,但不忽略doclserver/arch
.txtdoc/*.txt
#忽略doc/目录及其所有子目录下的.pdf文件
doc/**/*.pdfc
Git简单使用
四种状态:未跟踪、未修改、已修改、暂存区
基本流程
初始化仓库
git init
检查文件状态
git status
// 精简显示文件状态
git status -s
git status --short
※未跟踪的文件前面会有(红色“??”)标记
※添加到暂存区的文件前面有(绿色“A”)标记
※已跟踪、修改过、还没放入暂存区,前面有(红色“M”)标记
※已跟踪、修改过、已经放入暂存区,前面有(绿色“M”)标记
※被移除的文件前面有(绿色“D”)标记
跟踪新文件c
※跟踪新文件
※把已跟踪、且已修改的文件放到暂存区
※把有冲突的文件标记为已解决状态
git add xxx //将指定文件加入暂存区
git add . //将所有新增和修改过的文件加入暂存区
提交更新
git commit -m "xxxxxx"
远程推送
//-u表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带-u参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称
实际案例:
git push -u origin payment: pay
//如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化:
git push -u origin payment
不是第一次推送直接运行 git push即可
拉取远程最新代码
//从远程拉取当前分支最新代码
git pull
撤销对文件的修改
//用git仓库中的文件覆盖已修改的文件
git checkout --文件名
跳过使用暂存区
将工作区→暂存区→Git仓库变为 工作区→Git仓库
//给git commit加上-a选项,可以跳过git add步骤
git commit -a -m "xxxxxx"
移除文件
移除暂存区的文件
git reset HEAD 要移除的文件名 //移除指定文件
git reset HEAD . //移除所有文件
移除文件
//git仓库和工作区(本地项目文件夹中的文件)同时移除
git rm -f 文件名
//只移除git仓库中的文件
git rm --cached 文件名
版本回退
查看提交历史
//按时间先后顺序列出所有的提交历史,最近的提交排在最上面
git log //按键Q可以退出查看
//只展示最新的两条提交历史,数字可以按需进行填写
git log -2
//在一行上展示最近两条提交历史的信息
git log -2 --pretty=oneline
//在一行上展示最近两条提交历史的信息,并自定义输出的格式
// %h 提交的简写哈希值‰an作者名字―‰ar作者修订日期,按多久以前的方式显示―%s提交说明
git log -2 --pretty=format: "h | %an | %ar | %s"
回退到指定版本
//在一行上展示所有的提交历史
git log --pretty=oneline
//使用git reset --hard命令,根据指定的提交ID回退到指定版本
git reset --hard <CommitID>
//在旧版本(回退之后的版本,默认只能查看当前版本之前的历史提交)中使用git reflog --pretty=oneline命令,查看命令操作的历史
git reflog --pretty=oneline
//再次根据最新的提交ID,跳转到最新的版本
git reset --hard <CommitID>
Git分支
查看分支列表
git branch
创建新分支
// 基于当前分支创建,新分支的代码和当钱分支一模一样
git branch 分支名称
切换分支
git checkout 分支名称
分支快速创建和切换
// -b表示创建一个新分支
git checkout -b 分支名称
合并分支
//切换到master
git checkout master
//合并分支
git merge 分支名称
删除分支
//只删除本地分支
git branch -d 分支名称 //合并之后才可删除 否则报错
git branch -D 分支名称 //强制删除,不管有没有合并
删除远程分支
//删除远程仓库中,指定名称的远程分支
git push 远程仓库名称 --delete 远程分支名称
//示例:
git push origin --delete pay
查看远程仓库信息
所有分支列表&仓库地址等
git remote show 远程仓库名称
跟踪分支
//从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同
git checkout 远程分支的名称
//示例:
git checkout pay
//从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称
//示例:
git checkout -b payment origin/pay