总结一下在开发中常用到的Git命令

378 阅读5分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第26天,点击查看活动详情

先来一张Git的基本流程图

image.png Git自带一个 git config 的工具来帮助设置控制 Git外观和行为的配置变量,在我们安装完git之后,第一件事就是设置你的用户名和邮件地址

后续每一个提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改

设置用户信息命令:

git config --global user.name "[name]" //设置用户名
git config --global user.email "[email address]" // 设置邮箱
git config user.name // 查看用户名
git config user.email // 查看邮箱
git confg --list // 查看其他配置信息

初始化(这两种方法都会初始化)

git init // 创建或在当前目录初始化一个git代码库
git clone + 项目地址 // 下载一个项目和它的整个代码历史

日常使用到的基本操作

git add . // 提交全部文件修改到缓存区
git add  // <具体某个文件路径+全名> 提交某些文件到缓存区
git diff 查看当前代码 add后,提交了哪些内容
git diff --staged // 查看现在 commit 提交后,会提交哪些内容
git status // 查看当前分支状态
git pull 远程仓库名 + 远程分支名 // 拉取远程仓库的分支与本地当前分支合并
git pull 远程仓库名 + 远程分支名 + :本地分支名 // 拉取远程仓库的分支与本地某个分支合并
git commit -m + "注释"  // 提交代码到本地仓库,并写提交注释
git commit -v // 提交时显示所有diff信息
git commit --amend [file1] [file2] 重做上一次commit,并包括指定文件的新变化

提交信息的格式,一般遵循以下的规则

  • feat: 新特性,添加功能

  • fix: 修改 bug

  • refactor: 代码重构

  • docs: 文档修改

  • style: 代码格式修改, 注意不是 css 修改

  • test: 测试用例修改

  • chore: 其他修改, 比如构建流程, 依赖管理 在分支上的操作

    git branch // 查看本地所有分支 git branch -r // 查看远程所有分支 git branch -a // 查看本地和远程所有分支 git merge + 分支名 // 合并分支 git merge --abort // 合并分支出现冲突时,取消合并,一切回到合并前的状态
    git branch + 新分支名 // 基于当前分支,新建一个分支 git checkout --orphan + 新分支名 // 新建一个空分支(会保留之前分支的所有文件) git branch -D + 分支名 // 删除本地某个分支 git push + 远程主机名 + 本地分支名 + :远程分支名 //将本地分支推送到远程,如果本地分支名与远程分支名相同, 则可以省略冒号,也就是我们常用的 git push origin master 将本地的 master 分支推送到 origin 主机的 master 分支 git branch + 新分支名称 + 提交ID // 从提交历史恢复某个删掉的某个分支 git branch -m + 原分支名 + 新分支名 // 更换分支名 git checkout + 分支名 // 切换到本地某个分支 git checkout + 远程库名 + 分支名 // 切换到线上某个分支 git checkout -b + 新分支名> // 创建分支,并切换到这个分支 远程同步

    git fetch [remote] // 下载远程仓库的所有变动 git remote -v // 显示所有远程仓库 git pull [remote] [branch] // 拉取远程仓库的分支与本地当前分支合并 git fetch // 获取线上最新版信息记录,不合并 git push [remote] [branch] // 上传本地指定分支到远程仓库 git push [remote] --force // 强行推送当前分支到远程仓库,即使有冲突 git push [remote] --all // 推送所有分支到远程仓库 撤销操作

    git checkout [file] // 恢复暂存区的指定文件到工作区 git checkout [commit] [file] // 恢复某个commit的指定文件到暂存区和工作区 git checkout . // 恢复暂存区的所有文件到工作区 git reset [commit] // 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 git reset --hard + 版本记录号 // 重置暂存区与工作区,与上一次commit保持一致 git reset [file] // 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 git revert [commit] // 后者的所有变化都将被前者抵消,并且应用到当前分支 注意点

reset:真实硬性回滚,目标版本后面的提交记录全部丢失了

revert:同样回滚,这个回滚操作相当于一个提价,目标版本后面的提交记录也全部都有 存储操作

可能你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作,但又不想提交这些杂乱的代码,这时候可以将代码进行存储

git stash // 暂时将未提交的变化移除
git stash pop // 取出储藏中最后存入的工作状态进行恢复,会删除储藏
git stash list // 查看所有储藏中的工作
git stash apply + 储藏的名称 // 取出储藏中对应的工作状态进行恢复,不会删除储藏
git stash clear // 清空所有储藏中的工作
git stash drop + 储藏的名称 // 删除对应的某个储藏

最后附上一张很出名的Git指令图,希望大家在项目开发的时候都能很好的使用git,Git上出的错误可都不是小错误

image.png