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的节点。避免在共享分支使用
    
相关推荐
小学鸡!21 分钟前
IDEA工具使用介绍、IDEA常用设置以及如何集成Git版本控制工具
java·git·intellij-idea
Tisfy1 小时前
Github - 如何提交一个带有“verified”标识的commit
git·ssh·github·ssh key·gpg
火眼99881 小时前
一篇文章了解 Kafka
大数据·分布式·kafka
fanchael_kui2 小时前
elasticsearch-java客户端jar包中各模块的应用梳理
java·大数据·elasticsearch
lovelin+v175030409662 小时前
低代码/无代码开发平台下的电商API接口创新应用
大数据·人工智能·爬虫·python·数据分析
Android出海2 小时前
Facebook广告无法投放?查看原因与解决方案
大数据·新媒体运营·流量运营·用户运营·内容运营·facebook
努力的布布2 小时前
Elasticsearch-搜索推荐:Suggest
大数据·elasticsearch·搜索引擎
小伍_Five3 小时前
掌握大数据处理利器:Flink 知识点全面总结【上】
大数据·学习·flink
GZ_TOGOGO3 小时前
大数据_HBase的列族属性配置
大数据·数据库·hbase
songqq274 小时前
【详细讲解】hive优化
大数据·hive