跳至主要內容

〔Git〕常用命令

大林鸱大约 5 分钟版本控制命令

项目前的 Git 配置

  1. 检查 git 版本
git --version
  1. 查看 git 相关命令
git --help
  1. 查看当前的 git 配置信息
git config --list
  1. 查看 git 用户名 或 邮箱
# 查询 git 所使⽤的用户名
git config user.name

# 查询 git 所使⽤的 email
git config user.email

# 注: --global 表示全局, 没有--global 表示只查询在当前项目中的配置
git config --global user.name
git config --global user.email
  1. 全局配置用户名(设置 git 使⽤者名称)
git config --global user.name "username"
  1. 设置 (配置)全局邮箱
git config --global user.email "eamil@qq.com"
  1. 修改提交者

git 的配置分为本地和全局,全局的配置对当前用户所有项目有效,本地的配置对当前项目有效。

git config --local user.name "username"
git config --local user.email "eamil@qq.com"

Git 对项目代码进行管理

  1. 初始化 git 储存
git init
  1. 需要提交的所有修改放到暂存区(Stage)
git add _ # 将工作区所有修改添加到暂存区
git add . # 将工作区所有修改添加到暂存区
git add <file-name> # 将指定文件添加到暂存区
git add _.js # 提交所有 .js 格式文件
# 注:<file-name> 指的是文件的名称
git add -f <file-name> # 强制添加 指定文件添加到暂存区
  1. 将暂存区的文件恢复到工作区
git reset <file-name> # 从暂存区恢复指定到工作区
git reset -- . # 从暂存区恢复所有文件到工作区
git reset --hard # 把暂存区的修改退回到工作区
  1. 查看工作区、暂存区的状态
git status
  1. 移除暂存区的修改
git rm --cached <file-name> # 将本地暂存区的内容移除暂存区
  1. 将缓存区的文件,提交到本地仓库(版本库 )
git commit <file-name> ... "相关的记录信息" # 将缓存区的指定文件提交到本地仓库
git commit -m "相关的记录信息" # 将缓存区的所有文件提交到本地仓库
git commit -am '相关的记录信息' # 跳过暂存区域直接提交更新并且添加备注的记录信息
git commit --amend '相关的记录信息' # 使用一次新的 commit,替代上一次提交,如果代码没有任何新变化,则用来修改上一次 commit 的提交记录信息
  1. 撤销 commit 提交
git revert HEAD # 撤销最近的一个提交(创建了一个撤销上次提交(HEAD)的新提交)
git revert HEAD^ # 撤销上上次的提交

查看日志

  1. 查看历史提交(commit)记录
git log # 查看历史 commit 记录
git log --oneline # 以简洁的一行显示,包含简洁哈希索引值
git log --pretty=oneline # 查看日志且并且显示版本
git log --stat # 显示每个 commit 中哪些文件被修改,分别添加或删除了多少行
# 注:空格向下翻页,b 向上翻页,q 退出
  1. 查看分支合并图
git log --graph
  1. 查看版本线图
git log --oneline --graph

Git 版本控制

  1. 回到指定哈希值对应的版本
git reset --hard <Hash> # 回到指定 <Hash> 对应的版本
# 注: <Hash> 是版本的哈希值
git reset --hard HEAD # 强制工作区、暂存区、本地库为当前 HEAD 指针所在的版本
  1. 版本回退
git reset --hard HEAD~1 # 后退一个版本
# 注:~ 后面的数字表示回退多少个版本

五、分支管理

  1. 查看分支
git branch # 查看所有本地分支
git branch -r # 查看所有远程分支
git branch -a # 查看所有远程分支和本地分支
git branch --merged # 查看已经合并的分支
  1. 创建分支(依然停留在当前的分支)
git branch <branch-name> # 创建分支,依然停留在当前的分支
# 注: <branch-name> 是分支的名称
  1. 切换分支
git checkout <branch-name> # 切换到指定分支,并更新工作区
git checkout - # 切换到上一个分支
  1. 创建并切换分支(创建一个新的分支,并切换到这个新建的分支上)
git checkout -b <branch-name> # 创建一个新的分支,并切换到这个新建的分支上
  1. 合并分支(合并某一个分支到当前分支)
git merge <branch-name> # 合并<branch-name>分支到当前分支
  1. 删除分支
git branch -d <branch-name> # 只能删除已经被当前分支合并的分支
git branch -D <branch-name> # 强制删除分支
  1. 删除远程分支
git push origin --delete <remote-branch-name>
# 注:<remote-branch-name> 远程分支名

远程仓库(团队协作 🌟)

  1. 克隆远程仓库(从远程仓库拉取代码)
git clone <url>
# 注:<url> 远程仓库的地址
  1. 本地库与远程库进行关联
git remote add origin <url>
  1. 查看远程仓库地址别名
git remote -v
  1. 新建远程仓库地址别名
git remote add <alias> <url>
# 注: <alias> 远程仓库的别名
  1. 删除本地仓库中的远程仓库别名
git remote rm <alias>
# 注: <alias> 远程仓库的别名
  1. 重命名远程仓库地址别名
git remote rename <old-alias> <new-alias>
# 注:<old-alias> 旧的远程仓库,<new-alias> 新的远程仓库
  1. 把远程库的修改拉取到本地
git fetch <alias/url> <remote-branch-name> # 抓取远程仓库的指定分支到本地,但没有合并
git merge <alias-branch-name> # 将抓取下来的远程的分支,跟当前所在分支进行合并
git pull <alias/url> <remote-branch-name> # 拉取到本地,并且与当前所在的分支进行合并
# 注: <alias/url> 远程仓库的别名 或者是 远程仓库地址
# <remote-branch-name> 远程分支名
  1. 将本地的分支推送到远程仓库

⚠️ 在推送前要先拉取哦 git pull

git push <alias/url> <branch-name> # 将本地的每个分支推送到远程仓库
git push <alias/url> --force # 强行推送 当前分支到远程仓库,即使有冲突
git push <alias/url> --all # 推送所有本地分支到远程仓库
# 注: <alias/url> 远程仓库的别名 或者是 远程仓库地址
# <branch-name> 本地分支名
上次编辑于: