跳转到内容

❧ 常用命令使用

alt git工作原理图

Git工作原理,如图所示:

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

配置

Terminal window
# 显示当前的Git配置:
git config --list
# 编辑Git配置文件:
git config <--local | --global | --system> -e
# 添加配置项
git config <--local | --global | --system> --add <name> <value>
# 获取配置项
git config <--local | --global | --system> --get <name>
# 删除配置项
git config <--local | --global | --system> --unset <name>
# 配置提交记录中的用户信息
git config --global user.name <用户名>
git config --global user.email <邮箱地址>
# 配置可以缓存密码,默认缓存时间15分钟
git config --global credential.helper cache
# 配置密码的缓存时间,单位:秒
git config --global credential.helper 'cache --timeout=<缓存时间>'
# 配置长期存储密码
git config --global credential.helper store

—local:仓库级

—global:全局级

—system:系统级

克隆

Terminal window
git clone <远程仓库的网址> [本地目录]
# 指定分支克隆
git clone <远程仓库的网址> -b <分支名称> [本地目录]

状态

Terminal window
# 以简短模式查看本地仓库的状态
# 文件状态:A 新增,M 修改,D 删除,?? 未添加到Git中
git status -s

提交注释修改

Terminal window
# 修改commit注释
git commit --amend

远程仓库

Terminal window
# 修改远程仓库的别名
git remote rename <原远程仓库的别名> <新的别名>
# 修改远程仓库的 URL 地址
git remote set-url <远程仓库的别名> <新的远程仓库URL地址>

分支

Terminal window
# 创建新分支,新的分支基于上一次提交建立
git branch <分支名>
# 修改分支名称
# 如果不指定原分支名称则为当前所在分支
git branch -m [<原分支名称>] <新的分支名称>
# 强制修改分支名称
git branch -M [<原分支名称>] <新的分支名称>
# 删除指定的本地分支
git branch -d <分支名称>
# 强制删除指定的本地分支
git branch -D <分支名称>
# 删除指定的远程仓库的分支
git push <远程仓库的别名> :<远程分支名>
git push <远程仓库的别名> --delete <远程分支名>

检出

Terminal window
# 切换到已存在的指定分支
git checkout <分支名称>
# 创建并切换到指定的分支,保留所有的提交记录
# 等同于 "git branch" 和 "git checkout" 两个命令合并
git checkout -b <分支名称>
# 创建并切换到指定的分支,删除所有的提交记录
git checkout --orphan <分支名称>
# 替换掉本地的改动,新增的文件和已经添加到暂存区的内容不受影响
git checkout <文件路径>

查看历史记录

Terminal window
# 一行显示,commitId 完整显示
git log --pretty=oneline
# 一行显示,commitId 简短显示
git log --oneline
# 显示全部记录(空格向下翻页、B向上翻页、Q退出)
git reflog
# 打印指定数量的最新提交的记录
git log -<指定的数量>

回滚还原

Terminal window
# 撤销git add,没有文件路径,撤销全部文件
git reset HEAD [文件路径]
# 撤销git commit
git reset --soft HEAD^
# 撤销到指定的提交记录
git reset --hard <commit ID>

-–soft,仅仅在本地库移动HEAD指针

-–mixed,在本地库移动HEAD指针并重置暂存区

-–hard,在本地库移动HEAD指针,并重置暂存区和工作区

忽略已提交文件

Terminal window
# 1. 首先修改 .gitignore 文件,把要忽略的文件或目录添加进去
# 2. 从暂存区中移除文件,但不会删除本地的文件
git rm --cached <file>
# 2. 从暂存区中移除文件夹,但不会删除本地的文件夹
git rm -r --cached <directory>
# 3. 移除之后,提交并推送到远程仓库

比较

Terminal window
# 比较暂存区中的文件和上次提交时的差异
git diff --cached
git diff --staged
# 将工作区和暂存区进行比较
git diff [file name]
# 将工作区和本地库进行比较
git diff HEAD [file name]
# 比较两次提交之间的差异
git diff <id1> <id2>
# 比较两个分支之间的差异
git diff <分支名称> <分支名称>

注:如果不加文件名则是比较多个文件

合并

Terminal window
# 把已经提交的记录合并到当前分支
git cherry-pick <commit ID>
# 把指定的分支合并到当前所在的分支下
$ git merge <分支名称>

标签

Terminal window
# 打印所有的标签
git tag
# 添加轻量标签,指向提交对象的引用,可以指定之前的提交记录
git tag <标签名称> [<commit ID>]
# 添加带有描述信息的附注标签,可以指定之前的提交记录
git tag -a <标签名称> -m <标签描述信息> [<commit ID>]
# 切换到指定的标签
git checkout <标签名称>
# 查看标签的信息
git show <标签名称>
# 删除指定的标签
git tag -d <标签名称>
# 将指定的标签提交到远程仓库
git push <远程仓库的别名> <标签名称>
# 将本地所有的标签全部提交到远程仓库
git push <远程仓库的别名> –tags

临时缓存

Terminal window
# 缓存
git stash save [save message]
# 缓存记录列出
git stash list
# 显示改动的文件,添加-p参数显示详细改动
git stash show [stash@{num}]
# 恢复,只能恢复一次
git stash pop [stash@{num}]
# 恢复,可恢复多次
git stash apply [stash@{num}]
# 删除指定缓存
git stash drop [stash@{num}]
# 删除所有缓存
git stash clear

stash命令可用于临时缓存和恢复修改,可跨分支

注:在未 add 之前才能执行 stash !!!