Git常用命令总结

文章目录

  • [0 前言](#0 前言)
  • [1 初始化配置](#1 初始化配置)
  • [2 创建仓库](#2 创建仓库)
  • [3 工作区域和文件状态](#3 工作区域和文件状态)
  • [4 添加和提交文件](#4 添加和提交文件)
  • [5 git reset 回退版本](#5 git reset 回退版本)
  • [6 git diff](#6 git diff)
  • [7 分支](#7 分支)
  • [8 合并分支](#8 合并分支)

0 前言

本篇文章分享的是一些git的使用方法,掌握这些方法基本就可以满足日常的开发需求了。

1 初始化配置

复制代码
git config --global user.name  "your name"  # 配置用户姓名
git config --global user.email  "your email"  # 配置用户邮箱
git config --global --list  # 查看当前配置信息

2 创建仓库

  • git init,初始化一个本地仓库,并关联到远程仓库

    复制代码
     1.在本地创建一个新的目录,进入目录后执行 git init 即可初始化仓库,初始化之后文件夹里面会有一个.git的隐藏目录,这说明这个目录已经是一个git管理的仓库了
     2.然后创建一个远程的空仓库,一般来说都是在github上创建的
     3.通过 git remote add origin '远程仓库地址',将本地仓库和远程仓库关联起来,通过 git remote -v即可查看远程仓库的地址
     4.我们在github上创建的新仓库的分支名叫main,但是我们本地初始化的仓库的分支名一般是master,所以我们要先将本地的分支名重命名,git branch -m main,将本地分支重命名为 main
     5.完成这些之后就可以将本地代码和远程仓库代码进行同步了,也就还是把本地的代码推到远程仓库,在推送之前需要先pull一下,也就是将远程仓里的内容同步更新到本地仓库,这是会出现两种情况:
     	一是,如果远程仓库已经有了提交历史记录,那么本地和远程就具有不同的提交历史,就会导致pull失败,所以要改用git pull origin main --allow-unrelated-histories,然后就pull成功了。此时,本地和远程仓里的提交记录也会合并,可以使用git log查看全部的提交历史记录
     	二是,如果远程仓库没有提交记录,那么就直接推送成功
     6.执行git add . 和 git  commit -m "initial commit" 将本地仓库的内容提交
     7.通过 git push -u origin main,将本地的内容全部推送到远程新建的仓库,-u是将本地分支和远程分支关联起来,这样之后push、pull的时候就不需要输入远程分支的信息了。要想确保推送成功,需要本地仓库不是空的,否则会报错:error: src refspec main does not match any
  • git clone,将已有的远程仓库拉取到本地

    复制代码
     1.git clone '远程仓库地址'
     2.通过 git remote -v,即可查看关联的远程仓库地址 

3 工作区域和文件状态

  • 工作区域分为:工作区、缓存区、本地仓库

  • 文件状态分为:

    复制代码
     未跟踪:未被 git 追踪的文件,一般是新建的文件,可以通过 git add 进行跟踪
     未修改:没有被修改的文件
     已修改:已被修改但没有add到暂存区的文件
     已暂存:已经被修改而且被add到暂存区的文件
     被忽略:一般指 .gitignore 文件中定义的文件

4 添加和提交文件

  • git status:查看当前处于哪一个分支和当前文件的状态
  • git add:将修改的文 件添加到暂存区,以便后续的commit操作
  • git commit:提交暂存区的文件,这个操作不会提交未添加到暂存区的文件
  • git log:查看提交的历史记录。也可以添加 --oneline 参数来查看简洁版的提交记录

5 git reset 回退版本

  • git reset --soft '版本id':保存工作区和暂存区的内容
  • git reset --hard '版本id':不保存工作区和暂存区的内容
  • git reset --mixed '版本id':保存工作区内容,不保存暂存区内容,这也是resert的默认参数
  • git ls-files:查看暂存区的文件
  • git reflog:查看所有的操作记录,这个可以保证我们可以回退到任何一个版本

6 git diff

  • git diff:比较工作区和暂存区之间的不同
  • git diff HEAD:比较工作区和版本库之间的差异
  • git diff --cached:比较暂存区和版本库之间的差异
  • git diff "版本一ID" "版本二ID":比较两个版本之间的差异
  • git diff "分支一" "分支二":比较两个分支之间的差异

7 分支

  • git branch 分支名:创建分支
  • git checkout 分支名:切换分支
  • git switch 分支名:创建分支,并切换到分支,比较推荐
  • git merge 分支名:合并分支到主干
  • git branch -d 分支名:删除分支
  • git log --graph --oneline --decorate --all:图形化查看分支的情况

8 合并分支

  • merge合并

    复制代码
     1.当前在主干上,将其他的分支合并到主干上:git merge 分支名
     2.解决合并分支时的冲突:直接手动编辑冲突的文件并保存,然后就可以添加和提交了,最后就合并成功了
     3.如果不想继续合并了,使用 git merge --abort 终止合并
  • rebase合并

    复制代码
     1.将当前分支合并到另一个分支上,这里有两种情况:
     	一是,当前在分支上,将分支合并到主干上,这里是将分支剪切并合并到主干上了:git rebase 分支名
     	二是,当前在主干上,这会将主干与另一分支共同提交之后的提交进行剪切,然后合并到分支上:git rebase 分支名
     2.无论如何,最终的结果就是只有一个分支了,另一个分支就没有了
  • merge和rebase的区别

    复制代码
     1.merge的优缺点
     	优点:不会破坏原分支的提交历史,方便回溯和查看
     	缺点:会产生额外的提交节点,分支图比较复杂
     2.rebase的优缺点
     	优点:不会新增额外的提交记录,形成线性历史,比较直观和干净
     	缺点:会改变提交历史,改变了当前分支branch out的节点。避免在共享分支使用
相关推荐
qq_377572773 小时前
git commit - revert + reset + checkout + reorder
git
喂完待续4 小时前
Apache Hudi:数据湖的实时革命
大数据·数据仓库·分布式·架构·apache·数据库架构
青云交4 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图
2301_767233229 小时前
Git使用和理解上的一些问题
git
还是大剑师兰特10 小时前
Flink面试题及详细答案100道(1-20)- 基础概念与架构
大数据·flink·大剑师·flink面试题
水无痕simon11 小时前
5 索引的操作
数据库·elasticsearch
1892280486113 小时前
NY243NY253美光固态闪存NY257NY260
大数据·网络·人工智能·缓存
武子康14 小时前
大数据-70 Kafka 日志清理:删除、压缩及混合模式最佳实践
大数据·后端·kafka
CCF_NOI.15 小时前
解锁聚变密码:从微观世界到能源新未来
大数据·人工智能·计算机·聚变
杨荧15 小时前
基于Python的电影评论数据分析系统 Python+Django+Vue.js
大数据·前端·vue.js·python