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的节点。避免在共享分支使用
相关推荐
司徒小夜1 小时前
处理git没做修改,但是文件显示变更的情况
git
Mikhail_G1 小时前
Python应用函数调用(二)
大数据·运维·开发语言·python·数据分析
m0_749317522 小时前
vscode里如何用git
ide·git·vscode
黑客笔记2 小时前
攻防世界-XCTF-Web安全最佳刷题路线
大数据·安全·web安全
软件测试小仙女2 小时前
鸿蒙APP测试实战:从HDC命令到专项测试
大数据·软件测试·数据库·人工智能·测试工具·华为·harmonyos
Hello.Reader3 小时前
Git 安装全攻略Linux、macOS、Windows 与源码编译
linux·git·macos
Elastic 中国社区官方博客3 小时前
Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
大数据·人工智能·elasticsearch·搜索引擎·云计算·全文检索·aws
王景程3 小时前
SELinux是什么以及如何编写SELinux策略
git·github
反向跟单策略3 小时前
期货反向跟单运营逻辑推导思路
大数据·人工智能·数据分析·区块链
Chuncheng's blog4 小时前
如何基于Mihomo Party http端口配置git与bash命令行代理
git·http·bash