前言
都3202年了,相信大家在管理项目中大部分都使用Git了。有些命令使用的比较少,就容易忘记。
所以,就有了今天这篇文章,当自己的一个记录吧。
git config
Git配置相关的指令,像配置user、email...
# 检查一下用户名和邮箱是否配置
git config --global --list
# 设置全局用户
git config --global user.name 'your name'
git config --global user.email 'xxxxx@example.com'
# 设置局部用户(在指定项目目录下,可配置不同项目有不同的git用户)
git config user.name 'ccc'
git config user.email 'xxxxx@example.com'
# 设置全局的一次性修改配置
git config --global --edit
# 查看全局配置
cat ~/.gitconfig
git 生成密钥
ssh-keygen -t rsa -c 'xxxxx@example.com'
git remote
# 初始化仓库
git init
# 查看已关联的仓库
git remote -v
# 关联远程仓库
git remote add origin https://github.com/xxxx/xxxx.git
# 删除远程仓库
git remote remove origin
# 直接修改远程仓库
git remote set-url origin https://github.com/xxxx/xxxx.git
# 查看远程仓库的详细信息
git remote show
git remote show origin
git clone
# git clone <远程仓库地址>
git clone http://github.com/xxx/xxx.git
# git clone <远程仓库地址> <本地目录名>
git clone http://github.com/xxx/xxx.git <project_name>
git branch
# 查看本地仓库所有分支
git branch
# 查看远程仓库所有分支
git branch -r
# 查看本地和远程仓库的所有分支
git branch -a
# 基于当前分支,新建一个分支
git branch <new_branch_name>
# 删除分支:被删除分支 --是-- 基于当前分支新建出来的,可用-d 或 -D
git branch -d <local_branch_name>
# 删除分支:被删除分支 --不是-- 基于当前分支新建出来的,只能使用 -D
git branch -D <local_branch_name>
# 删除远程分支
git push origin --delete <remote_branch_name>
# 重命名当前分支
git branch -m <new_name>
git checkout
# 切换到本地分支
git checkout <local_branch_name>
# 切换到指定某次提交的commit_id
git checkout <commit id>
# 从现有分支中新建新的分支,并切换到新分支
git checkout -b <new_branch_name>
# 从远程分支中新建新的分支,并切换到新分支
git checkout -b <new_branch_name> origin/<remote_branch>
# 放弃工作区的修改,只影响工作区
git checkout .
# 放弃工作区和暂存区的修改,影响工作区和暂存区
git checkout -f
git status
查看工作区以及暂存区的状态
git stataus
git add
将工作区的修改暂时添加到暂存区
# 将工作区的所有修改提交到暂存区
git add .
# 将指定目录添加到暂存区,包括子目录所有修改
git add [dir]
# 将src目录下的所有js文件添加到暂存区
git add src/**/**.js
git commit
将暂存区的修改,提交到本地仓库
# 将暂存区的修改,提交到本地仓库
git commit -m '提交信息'
# 将暂存区和工作区的修改,提交到本地仓库
git commit -am '提交信息'
# 避开钩子函数的检查,强制提交
git commit -m '提交信息' --no-verify
git commit -m '提交信息' -n
# 将暂存区的修改,加到上一次的commit中,进入commit编辑,输入:wq 退出
git commit --amend
# 修改上一次提交的commit信息(未push到远程仓库)
git commit --amend --only -m '新的提交信息'
git pull
拉取远程仓库分支的代码到本地仓库
#拉取代码,将远程仓库分支拉取到本地
git pull
git push
将本地的代码推送到远程仓库
# 将本地仓库的分支推送到远程分支
git push
git marge
合并本地仓库的其他分支到当前分支
# 把本地仓库的某分支合并到当前分支
git merge <local_branch>
# 取消合并
git merge --abort
git log
用于查看Git版本提交历史,可以根据追加的参数不同,过滤出自己想要的结果。
git log
# 查看所有的提交记录
git log -all
# 将记录一行一行的形式展示:简洁明
git log --oneline
# 记录以图形化的形式展示
git log --graph
# 显示每次更新的文件修改统计信息,会列出具体文件列表
git log --stat
# 展示前10条
git log -10
# 按作者分类,过滤出前10条
git shrtlog -10
# 过滤出 'xxx' 的前10条记录,不包括 merge的记录
git log --author='XXX' -10 --no-merges
# 过滤出 commit 提交的注释中 包含'feat'关键字的前10条记录,不包括merge 的记录
git log --grep='feat' -10 --no-merges
git reset
代码回滚,可以使代码回滚到指定的提交版本
注意:不会保留原来的commit记录!!!
# 仅是撤销commit记录,所有改动都保留(工作区和暂存区)
# HEAD^ 代表上个版本
git reset --soft HEAD^
git reset --soft commit_id
# 撤销commit记录,不保留改动,直接回退到指定的提交版本
git reset --hard HEAD^
git reset --hard commit_id
# 强推到远程
git push origin dev --force