首页 > 其他分享 >【面试宝典】Git 版本控制常用命令

【面试宝典】Git 版本控制常用命令

时间:2023-08-26 13:11:18浏览次数:142  
标签:文件 Git 版本控制 仓库 git 常用命令 远程 分支

一. Git 概述

  • Git 是目前世界上最先进的分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),包括:

    • 代码回溯:Git在管理文件过程中会记录日志,方便回退到历史版本
    • 版本切换:Git存在分支的概念,一个项目可以有多个分支(版本),可以任意切换
    • 多人协作:Git支持多人协作,即一个团队共同开发一个项目,每个团队成员负责一部分代码,通过Git就可以管理和协调
    • 远程备份:Git通过仓库管理文件,在Git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取
  • 工作原理:

    • 通过 Git 仓库来存储和管理软件开发过程中的源代码文件,Git 仓库分为两种:

      • 本地仓库:开发人员自己电脑上的 Git 仓库
      • 远程仓库:远程服务器上的 Git 仓库image.png
    • commit:提交,将本地文件和版本信息保存到本地仓库

    • push:推送,将本地仓库文件和版本信息上传到远程仓库

    • pull:拉取,将远程仓库文件和版本信息下载到本地仓库image-20210924173708313.png

  • Git、GitHub、GitLab、Gitee

    • Git:分布式版本控制工具,可以保存文件的所有修改记录,并使用版本号进行区分,可以随时浏览历史记录,抢救还原改错的文件,还可以对比不同版本的文件差异,起到恢复和保护的作用(起到合并和冲突的作用)
    • GitHub:主流的开源代码托管平台,相当于存放和管理代码的网盘,可以把自己的代码上传,进行共享和维护,也可以免费下载学习其他人的项目

二. 下载安装与配置获取

2.1 下载 Git

  • 基于 Windows 系统的官网下载
  • 安装流程(新手小白可以一直无脑 Next 直至 Finish)image.pngimage.png
  • 右击桌面出现 Open Git 表示安装成功image.png

2.2 配置 Git

  1. 打开 Git Bash,设置用户信息(输错了重新来一遍即可)
    1. 设置用户信息

git config --global user.name "Mr_Dinosaur"
git config --global user.email "[email protected]"

  1. 查看配置信息

git config --global user.name
git config --global user.email
git config --list

2.3 解决 Gitbash 乱码问题

  1. 打开 Gitbash 执行如下命令:

git config --global core.quotepath false

  1. ${git_home}/etc/bash.bashrc 文件最后加入如下命令:

export LANG=“zh_CN.UTF-8”
export LC_ALL=“zh_CN.UTF-8”

三. 基础操作

  • Git 文件通常包含 3 种状态:

    • 已提交(committed):数据已经安全地保存在本地数据库中
    • 已修改(modified):修改了文件,但还没保存到数据库中
    • 已暂存(staged):对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
  • 这会让 Git 项目拥有 3 个阶段:

    • 工作区(working Directory):主要用于存放开发的代码
    • 暂存区(Staging Area):临时保存修改文件的地方
    • Git 仓库(Repository):存储了很多配置信息、日志信息和文件版本信息等image.png
  • 要使用Git对我们的代码进行管理,首先需要获得Git仓库,通常有两种方式:

    • 在本地初始化 Git 本地仓库(不常用)
    • 从远程仓库克隆(常用)

3.1 获取本地仓库

  1. 在任意目录下创建空目录(如 GitTest 文件夹)作为本地 Git 仓库
  2. 进入这个目录中,右键打开 Git Bash 窗口
  3. 在本地初始化Git仓库:

git init(创建仓库)
git init -b 分支名(同时创建仓库+分支)

  1. 如果在当前目录中看到 .git 文件夹(此文件夹为隐藏文件夹)则 Git 仓库创建成功image.png

3.2 Git 本地常用命令

  1. Git工作区中的文件存在两种状态(文件的状态会随着我们执行Git的命令发生变化)
  • untracked 未跟踪(未被纳入版本控制)
  • tracked 已跟踪(被纳入版本控制)
        1)Unmodified 未修改状态
        2)Modified 已修改状态
        3)Staged 已暂存状态 image.png
  1. 使用命令切换文件状态:
    1. 创建空文件

touch Test01.txt

  1. 查看文件状态

git status

  1. 将文件的修改加入暂存区

git add Test01.txt(提交指定文件)
git add .(提交所有文件)

  1. 将暂存区的文件取消暂存 / 切换到指定版本

git reset Test01.txt(取消暂存)
git reset --hard 版本号(切换到指定版本,版本号通过 git -log 查看)

  1. 将暂存区的文件修改提交到版本库

git commit -m "提交文件到版本库"(提交说明)
**git commit ***

  1. 查看提交日志

git log
git log --all(显示所有分支)
git log --pretty=oneline(将提交信息显示为一行)
git log --abbrev-commit(使输出的 commit 更简短)
git log --graph(以图的形式显示)
git log --pretty=oneline --abbrev-commit --graph(可结合使用)

  1. 查看已删除的记录

git reflog

  1. 添加文件至忽略列表

touch .gitignore(创建一个 .gitignore 文件(文件名称固定),列出需要忽略的文件模式)

  1. 使用命令修改文件内容:
    1. 进入文件

vi Test01.txt

  1. 编辑文件模式

i
a
o
O

  1. 退出编辑模式

ESC 键

  1. 退出文件

:wq(退出并保存)
:q(退出不保存,含询问提示)
:q!(强制退出不保存,不含询问提示)

  1. 删除文件

rm -f Test01.txt(强制删除指定文件,含询问提示)
rm -rf Test01.txt(强制删除指定文件,不含询问提示,慎用)

3.3 获取远程仓库

  1. 通过 Git 提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
  2. 从远程仓库克隆

git clone 远程仓库地址url

image.png

常用的托管服务:

  • GitHub:面向开源及私有软件项目的托管平台,只支持 Git 作为唯一的版本库格式进行托管
  • Gitee(码云):国内的代码托管平台,由于服务器在国内,所以相比于 GitHub 速度会更快
  • GitLab:用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务,一般用于在企业、学校等内部网络搭建 Git 私服

3.4 Git 远程常用命令

  1. 查看远程仓库:(已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git克隆的仓库服务器的默认名字)image.png

git remote

  1. 添加远程仓库:

git remote add <仓库简称> <仓库地址url>

  1. 从远程仓库克隆到本地:Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件

git clone

  1. 从远程仓库拉取:(获取最新版本并合并到本地仓库)

git pull [short-name] [branch-name]

如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories )
解决方法:git pull --allow-unrelated-histories

  1. 推送到远程仓库:在使用 git push 命令将本地文件推送至码云远程仓库时,需要进行身份认证,认证通过才可以推送image.png

git push [remote-name] [分支名]
git push -u origin [分支名](将本地新建的分支推送远端)

3.5 Git 分支管理

  • 使用分支的意义在于:在副分支(develop/dev)上进行开发,最后合并到主分支(main/master),以免保证开发主线的稳定性

  • 每个人开发的那一部分就是一个分支,使得每个人的开发互不影响,在每个人都开发完后就将所有的代码汇总到一起,此时就要执行分支的合并操作image.png

  • 开发中分支使用原则与流程:

    • master(生产)分支:线上分支,主分支,中小规模项目作为线上运行的应用对应的分支
    • develop(开发)分支:准备上线的主要开发分支
    • develop 和 master 分支是不可删除的
    • feature/xxxx分支:从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支,用完后可删除
    • hotfifix/xxxx分支:从master派生的分支,一般作为线上bug修复使用,修复测试完成后需要合并到master、test、develop分支
    • 其他分支
      • test分支(用于代码测试)
      • pre分支(预上线分支)image.png
  • 例如我们要开发新功能,可以在 develop 分支上在建一个分支,新功能一般叫做 feature 分支,开发完以后,再合并到 develop 分支上面去(而不是直接提交到 master 分支),项目做完了最后 develop 再合并到 master 分支上

  1. 常用分支命令
    1. 查看分支

git branch(显示的 *号表示所在的分支)
git branch -r(查看所有远程分支)
git branch -a(查看所有本地分支和远程分支)

  1. 创建分支

git branch 分支名(新分支会建立在当前分支的版本之上,所以会有当前分支的内容)

  1. 切换分支:(分支上的内容必须先提交,才能切换分支)

git checkout 分支名(需要先切换到目标分支上)
git checkout -b 分支名(创建新分支并切换)

  1. 合并分支

git merge 被合并的分支名称(将分支合并到 master 主线上)

  1. 重命名分支

git branch -m 原名称 新名称

  1. 删除分支

git branch -d 分支名(删除分支时,需要做各种检查)
git branch -D 分支名(不做任何检查,强制删除)

  1. 标签操作(Git 中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态)
    1. 列出已有的标签

git tag

  1. 创建标签

git tag [name]

  1. 将标签推送至远程仓库

git push [shortName] [name]

  1. 检出标签

git checkout -b [branch] [name]

  1. 解决冲突
    1. 合并分支后,多个分支对同一个文件的同一个地方进行修改的时候(不是同一个地方是不会出现冲突的),就会发生冲突
    2. 需要手动解决冲突:即手动删除文件中的一个分支,留下另一个分支
      1. 处理文件中冲突的地方
      2. 将解决完冲突的文件加入暂存区(add)
      3. 提交到仓库(commit)502459a449624c0194c21e4015580c0a.png

标签:文件,Git,版本控制,仓库,git,常用命令,远程,分支
From: https://www.cnblogs.com/ZWJ-zwj/p/17658681.html

相关文章

  • Typora+PicGo 上传图片至GitHub仓库
    提前准备好Github账号、PicGo、Typora创建Github账号地址:https://github.com/下载PicGo地址:https://github.com/Molunerfinn/PicGo/releases/下载Typora地址:https://typora.yjjxx.cn/index.html1.创建Github仓库 点击new新建仓库输入Repositoryname(PicGo中要用到),选择Public......
  • Git的一些基本操作1
    1.检查文件的状态可以使用gitstatus命令查看文件处于什么状态,例如:在状态报告中可以看到新建的index.html文件出现在Untrackedfiles(未跟踪的文件)下面。未跟踪的文件意味着Git在之前的快照(提交)中没有这些文件;Git不会自动将之纳入跟踪范围,除非明确地告诉它“我需要......
  • Git的基本操作
    1.获取Git仓库的两种方式①将尚未进行版本控制的本地目录转换为Git仓库②从其它服务器克隆一个已存在的Git仓库以上两种方式都能够在自己的电脑上得到一个可用的Git仓库 2.在现有目录中初始化仓库如果自己有一个尚未进行版本控制的项目目录,想要用Git来控制......
  • 关于git的一些基础知识记录
    一.配置用户信息安装完Git之后,要做的第一件事就是设置自己的用户名和邮件地址。因为通过Git对项目进行版本管理的时候,Git需要使用这些基本信息,来记录是谁对项目进行了操作1.空白处鼠标右键,选择GitBashHere输入以下命令:  2.Git的全局配置文件通过gitconfig......
  • 解决:git SSL certificate problem: unable to get local issuer certificate
    今天遇到了gitupdate失败。记录一下错误:gitSSLcertificateproblem:unabletogetlocalissuercertificate这个问题是由于没有配置信任的服务器HTTPS验证。默认,cURL被设为不信任任何CAs,就是说,它不信任任何服务器验证。找到任意一个文件夹。右键选择>GitBashHere(......
  • Allure常用命令
    命令格式:allure [option]  [command]  [commandoptions]allure--help帮助allure--version查看版本信息allureserve 生成在线版本的测试alluregenerate<allure-result中间文件> -o  输出目录(默认路径:allure-report)引入依赖<?xmlversion="1.0"e......
  • git_使用git worktree命令使不同分支的代码文件可以同步运行
    情景再现:我本地代码正在开发后台系统的过程中,前台开发的同事时不时地会来找我要IP地址,使用正在开发的后台管理系统来进行一些数据的增删改查.这个时候直接提供正在开发的版本的开发服务器地址是不行的,因为随着代码的编写时不时的报个bug是家常便饭,对于使用者来说非常......
  • 安卓 adb常用命令
    什么是adb:adb是PC电脑与android手机进行通信操作的工具软件,类似于Xshell可以通过windows访问操作Linux如何安装adb软件(环境):下载adb绿色免安装版什么是adbshell:切换进入Linux内核的命令行界面(android的底层使用的是Linux内核,所以切换进入Linux内核命令行界面后,可以使用Lin......
  • git 用法 记录 处理分支 合并分支 解决分支冲突
      gitstatus  查看分支状态gitadd.提交到暂存区gitcommit-m'优化'提交到准备pushgitpull 拉取最新分支gitpush 提交到git上 gitbranch 查看所有分支gitcheckout 分支名字  切换到指定分支gitpullorigin'分支名字'  拉取分支名字最......
  • IDEA + github 初次使用踩坑
    大学毕业至今没怎么用过git,作为计算机专业的学生多少汗颜,工作用的gitblit,在IDEA上也只会pullcommitpush三个按键. 由于最近上班摸鱼时间太多,打算多用用git,也多在github活跃一些. 建立本地仓库,commit然后push自然不多提了,网上的攻略很多.简单记录......