人手一本,前途无量
前言
本文仅列举常用git指令,详细讲解作者根据不同学习需求进行了不同的讲解:
快速上手【文字版】
详细学习【文字版】
快速上手【视频版】
全局配置
显示用户名邮箱
git config --global user.name
git config --global user.email
配置用户名邮箱
git config --global user.name "Your name"
git config --global user.email "your@email.com"
避免重复用户名密码输入
git config --global credential.helper store
仓库
// 添加远程仓库地址,其中“仓库备注”一般设置为origin
git remote add 仓库备注 仓库地址
// 删除某个远程仓库,其中“仓库备注”一般设置为origin
git remote remove 仓库备注
// 显示某个远程仓库的地址,其中“仓库备注”一般设置为origin
git remote show 仓库备注
分支和提交
add
// 添加单个文件
git add 文件路径
// 添加所有文件(不包含.开头的文件)
git add *
// 添加所有文件
git add .
clean
// 删除所有未被追踪的文件
git clean
// 删除所有未被追踪的文件及文件夹
git clean -df
commit
git commit -m "提交描述"
// 将所有变动add并且提交
git commit -a -m "提交描述"
查看文件变动
// 显示哪些文件做了哪些修改(提前这些文件还没有被add)
git diff
// 显示最近一次提交做了哪些修改
git show
// 显示某次提交做了哪些修改
git show 提交id
提交历史
// 查看提交历史,信息包含:提交描述;
git log --pretty=oneline
// 查看提交历史,信息包含:提交者,时间,描述
git log
// 查看提交历史,信息包含:提交者,时间,描述,变动文件列表
git log --stat
// 查看提交历史,信息包含:提交者,时间,描述,文件详细变动
git log -p
同步代码
// 将本地某个分支代码同步到远程仓库,其中“仓库备注”一般为origin
git push 仓库备注 分支名称
// 将本地所有分支代码同步到远程仓库
git push 仓库备注 --all
// 将远程某个分支代码同步到本地仓库,并且和本地代码融合,其中“仓库备注”一般为origin
git pull 仓库备注 分支名称
// 将远程当前分支代码同步到本地仓库,仅仅同步代码,并不会合并
git fetch
// 将远程所有分支代码同步到本地仓库,仅仅同步代码,并不会合并
git fetch --all
分支
// 查看本地分支列表
git branch
// 查看远程分支列表
git branch -r
// 查看本地和远程分支列表
git branch -a
// 创建分支
git branch 分支名称
// 切换分支
git checkout 分支名称
// 创建并切换分支
git checkout -b 分支名称
// 创建分支并将其关联到远程分支,适用于远程仓库出现新分支,本地拉取的情况
// 以下命令只是关联,拉取仍需要pull
git checkout -b 分支名称 仓库备注/远程分支名称
融合
// 融合某个分支的代码
git merge 仓库备注 分支名称
// 合并任意分支的某次提交
git cherry-pick 提交id
反操作
// 撤销某次提交(本次撤销会以新的提交的方式实现)
git revert 提交id
// 撤销某次提交后面的所有提交
git reset --hard 提交id
// 查看操作日志
git reflog
// 将处于modified状态的文件恢复到修改前状态
git checkout 文件路径
// 取消add
git reset HEAD 文件路径
Stash
// 查看暂存列表
git stash list
// 暂存当前代码,使用默认“暂存描述”
git stash save
// 暂存当前代码
git stash save “暂存描述“
// 应用某个暂存,其中“暂存序号”形如“stash@{0}”
git stash apply “暂存序号”
// 删除某个暂存,其中“暂存序号”形如“stash@{0}”
git stash drop “暂存序号”
// 应用并删除栈顶(最新的)暂存
git stash pop
// 应用并删除某个暂存,其中“暂存序号”形如“stash@{0}”
git stash pop "暂存序号"
Tag
// 列举所有的标签
git tag
// 筛选符合特定格式的标签
git tag -l "v1.8.5*"
// 打标签
git tag -a 标签名称 -m "标签描述"
// 删除某个标签
git tag -d 标签名称
// 同步本地标签到远程仓库
git push 仓库备注 标签名称
// 将代码回到标签所在位置
git checkout 标签名称