Git常用操作命令

本文介绍了Git的基本概念,工作流程,详细讲解了Git的安装、配置、常用命令,包括分支管理和远程仓库操作。内容涵盖从创建、切换、合并分支,到与GitHub等远程仓库的交互,如推送、拉取、解决合并冲突等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GIT 分布式版本控制工具

目标

  • 了解 Git 基本概念
  • 能够概述 Git 工作流程
  • 能够使用 Git 命令
  • 熟悉 Git 代码托管服务
  • 能够使用 IDE 操作 Git

概述

开发中的实际场景

  1. 备份
  2. 代码还原
  3. 系统开发
  4. 追溯问题

版本控制的方式

集中式

中央服务器, 下载

例子: SVN 、CVS

分布式

没有中央服务器,每个仓库都是一个完整的版本 推送/拉去

例子:GIT

SVN

在这里插入图片描述

GIT

GIT工作流程图

在这里插入图片描述

  1. clone(克隆)
  2. checkout(检出)
  3. add(添加)
  4. commit(提交)
  5. pull(拉取): 从远程库拉取到本地库,自动进行合并(merge),然后放到工作区,相当于fetch+merge
  6. push(推送)

Git安装与常用命令

Git安装

下载与安装
基本配置

配置全局用户名和邮箱

提交时的邮箱和地址,在日志中展示,明确提交者的信息

命令:

git config -g  user.name="用户名"
git config -g user.email="邮箱地址"
为常用指令配置别名(可选)

用户目录下的 .gitconfig文件增加如下格式内容:

[alias]
	别名 = 原操作
	# 例如 要为 git log --oneline 设置 别名 lg1
	lg = log --oneline
基础操作指令

在这里插入图片描述

查看提交日志

命令 : git log [option]

options:

  1. --all 显示所有分支
  2. --pretty=oneline 提交信息一行显示
  3. --abbrev-commit 输出信息更简短
    1. --graph 已图的形式显示
版本回退

命令: git reset --hard <提交hash值>

可通过 git reflog查看所有的操作记录

分支

查看本地分支

命令: git branch

创建本地分支

命令: git branch <分支名>

切换分支

命令: git checkout <已存在的分支名>

根据当前创建一个新分支,并切换到新分支

git checkout -b <新分支名>
合并分支

一个分支上的提交可以合并到另一个分支

命令: git merge <需合并到当前分支的分支名>

删除分支

不能删除当前分支,只能删除其他分支

删除分支时,需要做各种检查

git branch -d <其他分支名>
git branch -D <分支名称> # 此方式 不做任何检查,强制删除
解决冲突

当两个分支上对文件的修改可能会存在冲突,例如,同时修改了文件的同一行,这时就需要手动解决冲突,步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)
开发中分支使用原则与流程

在开发中,一般有如下分支使用原则与流程(非绝对):

  • master(生产)分支

    线上分支,主分支

  • develop(开发)分支

    从 master 创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期要求,都可以在此版本进行开发,开发完成后,需要合并到 master 分支,准备上线

  • feature/xxx分支

    从 develop 创建的分支,一般是同期并行开发,但不同期上线创建的分支,分支上的研发任务完成后,合并到 develop 分支

  • hotfix/xxx分支

    从 master 派生的分支,一般作为线上bug修复使用,修复完成需要合并到 master 、test、develop 分支

  • 其他分支,如:

    • test分支(用于测试)
    • pre(预上线分支)

在这里插入图片描述

Git远程仓库

常用的托管服务【远程仓库】

操作

添加远程仓库

命令: git remote add <远端名称> <仓库地址>

  • 远端名称,默认是origin,取决于远端服务器设置
  • 仓库地址, 从远端服务器获取到的URL
查看远程仓库

命令: git remote

推送到远程仓库

命令:git push [-f] [-set-upstream] [远端名称[本地分支名][:远端分支名]]

  • 如果远程分支名和本地分支名相同,可以只写本地分支

    git push origin master
    
  • --set-upstream 推送到远端的同时并且建立起和远端分支的关联关系

    git push --set-upstream origin master
    
  • 如果当前分支已经和远端分支关联,则可以省略分支名和远端分支名

    git push 
    
  • -f 强制覆盖

本地分支与远程分支的关联关系

git branch -vv

从远程仓库克隆

git clone <仓库路径> [本地目录]

  • 本地目录 可以省略,会自动生成一个目录
从远程仓库中抓取和拉取
抓取(fetch)

git fetch [远程名][分支名]

  • 抓取命令就是将远程仓库中的更新都抓取到本地,不进行合并
  • 如果不指定远端名和分支名, 则抓取所有分支
拉取(pull)

git pull [远程名称][分支名]

  • 拉取命令就是将远程仓库的修改拉到本地并自动进行合并,等同于 fetch + merge

  • 如果不指定远端名和分支名,则抓取所有并更新当前分支

解决合并冲突

如果推送到远程有冲突时,需要先拉取最新的远程仓库,经过合并后才能推送到远端分支

Note: 远程分支也是分支,合并时冲突的解决方式和解决本地冲突的方式相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值