Git常用命令 | 青训营笔记

71 阅读5分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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