Git快速入门技巧&常见问题

Git快速入门技巧&常见问题

前情提要

​ 最近在来回不停切环境开发项目,总是发现各种奇奇怪怪的问题,解决Git各种工具应用、代码版本冲突、多环境切换配置冲突等问题,总是会有重复的问题出现,正常来说一次配置完成即可,但是真到了环境崩了的情况不得不又各种找补,归根结底还是对Git原生不熟练(过于依赖工具),导致出现问题的时候反而不明确问题出现的原因,导致排查内容无限重复、无限踩坑,因此抽了一点时间重新梳理了Git相关的内容,针对新环境开发快速入门上手GIt,介绍常用的Git管理工具以及常见Git问题分析&排查思路。

Git VS SVN

​ SVN:集中式版本控制系统,都有一个统一的版本号,放在一个统一的服务器上,工作时把最新的版本的代码拉取到电脑上,代码完成后在把写完的代码推送到服务器上,由于所有的操作都需要服务器的支持,对网络要求比较大,而且如果服务器里的数据出了问题,那么所有的数据都会丢失,本机客户端仅保存当前版本的信息

​ Git:分布式版本控制系统,每个人的电脑都相当于服务器,当你拉取仓库的代码后,你的电脑就是一个完整的版本库,工作时不需要联网,所有版本都在自己的本机里,当你想把自己的代码提交到主仓库时,只需要在联网时合并推送到主仓库
在这里插入图片描述

Git安装使用&配置

参考网站

Github秘籍大全

1.Git安装

Git安装

​ Git相关软件最基础的入门软件就是GIt原生+小乌龟(ToriseGit
​ Git软件推荐下载路径:Git软件官方下载Git for Windows阿里镜像

在这里插入图片描述

Git安装说明

​ 可以选择参考的教程进行安装,但一般来说就是傻瓜式的安装(一步步默认选择即可),Git安装主要关注两点:环境变量配置GitBash/GIt GUI

之所以推荐傻瓜式安装方式是为了快速入门,后续这些配置都可以结合实际开发场景进行调整,或者是遇到操作问题回来复盘这些配置反而会有进一步的了解

​ 1)关注是否将git执行指令加入环境变量(可以通过CMD窗口操作,安装完成通过git --version查看安装版本信息确认是否安装成功)

​ 2)关注Git Bash、Git GUI的搭配使用
在这里插入图片描述
在这里插入图片描述

Git基础配置(配置文件路径:~/.gitconfig文件,windows对应用户下)

# 全局设置个人用户名和邮箱地址

// 获取个人用户名
git config --global user.name
// 设置个人用户名
git config --global user.name "myName"

// 获取个人邮箱
git config --global user.email
// 设置个人邮箱
git config --gloabl user.email "myEmail"

// 查看git配置
git config --list

2.Git使用

自建本地仓库

场景:创建一个本地Git仓库=》添加文件并提交=》推送到仓库

1)创建本地Git仓库

​ 选择一个文件夹目录(例如:GitRepo),将其初始化为Git仓库

​ 进入到该目录下执行指令(可通过CMD窗口或者GitBash操作git命令行,此处选用CMD)

# 初始化GitRepo为Git仓库
git init

​ 初始化操作完成,会看到目录下生成一个.git目录

在这里插入图片描述

2)查看分支(初始化仓库默认创建了master分支:可以通过git bash窗口查看内容)

// 查看分支
git branch

// 会在当前目录显示分支信息(例如.../GitRepo(master))

3)在仓库下添加一个文件(hello.txt),并将其添加到暂存区

# 1.添加一个hello.txt文件,并通过git status查看文件状态
git status

# 2.将hello.txt添加到暂存区
git add hello.txt

# 3.再次查看文件状态
git staus

在这里插入图片描述

4)提交暂存区文件到仓库

# 1.提交暂存区文件到仓库(git commit -m '提交说明')
git commit -m 'create hello.txt'


# 2.查看文件状态
git status

在这里插入图片描述

5)修改hello.txt文件内容、重新提交并推送到仓库

​ 上述操作提交完成,可以看到hello.txt文件图标的变化(有一个绿色对钩标识),当对文本内容进行了修改之后会发现图标变了(变成一个红色感叹号)

# 1.修改hello.txt文件内容,查看文件状态
git status

# 2.重新提交到暂存区
git add hello.txt

# 3.再次提交暂存区文件到仓库
git commit -m 'modify hello.txt'

在这里插入图片描述

6)查看提交日志

# 查看提交日志
git log

# 查看所有分支的提交记录,可根据索引码切换分支版本内容
git reflog
git reset --hard 版本唯一索引值

在这里插入图片描述

​ 基于上述操作完成仓库创建,编辑文件并进行版本管理。(此处所有的操作都是基于Git仓库构建,这个Git仓库是在本地的磁盘资源上,且为单一分支版本管理,后续引入远程仓库、多人协作、多分支模式)
​ 如何理解本地仓库和远程仓库:本地仓库类似于当前案例创建的存放在本地磁盘资源的仓库,它只能供个人使用。如果是多人协作模式,其他开发者可能需要通过其他方式访问到这个仓库,因此引入远程仓库概念,通过一个平台(专门存放仓库信息),所有的开发者可以通过网络资源访问到远程仓库并进行协作开发,这里GitLab、GitCode、GitHub、Gitee则是起到这么一个平台的作用。其实所谓的本地和远程的概念区分主要在于仓库的托管交由谁负责,如果是本机负责则为本地仓库、如果是交由平台负责则是远程仓库

克隆仓库

​ 场景:clone现有仓库=》提交代码=》推送到远程仓库

1)通过clone将远程仓库拉取到本地进行开发

​例如GitHub上现有一个仓库(拥有对其的访问权限)

# 1.clone远程仓库到本地(选择仓库存储路径)
git clone https://github.com/holic-x/drawio-repo.git


# 2.创建文件,参考上上述步骤完成操作(操作指令都是大同小异)

// 添加内容到暂存区
git add .

// 提交到本地仓库
git commit -m 'create hello-remote.txt'

// 推送到远程仓库
git push

在这里插入图片描述

​ 当执行git push指令的时候,此时会弹出github用户名、密码确认的窗口,输入用户名密码验证通过后则可进行push操作

创建远程代码仓库

​ 远程代码仓库可以通过平台可视化界面进行创建,然后本地通过clone拉取元辰仓库代码到本地,然后进行开发。

​ 还有一种方式是先创建好本地从仓库然后再创建远程仓库,岂可信息步骤参考如下:

1)创建本地仓库

2)创建或者修改文件,添加文件到暂存区,提交到版本库

3)创建远程仓库

4)将本地仓库推送到远程仓库(推送代码之前需要配置SSH公钥)

分支branch

​ 仓库新建默认提供了一个master分支,前面的案例是基于master分支进行开发,当多人参与协作开发或者是项目模块划分开发分支划分等情况,一个项目可能会发散不同的分支,因此通过分支管理来进一步管理项目内容

1)创建分支

# 查看目前所有分支
git branch

# 切换分支并切换(创建dev分支并切换)
git checkout -b dev

# 切换分支(如果切换指定分支不存在会报错)
git checkout dev

在这里插入图片描述

2)切换分支并管理内容

# 1.切换到dev分支
git checkout dev

# 2.新建一个文件,并将其推送到仓库

// 添加所有文件到暂存区
git add .

// 提交暂存区内容到仓库
git commit -m 'create dev-hello.txt'

在这里插入图片描述

3)合并分支
​ 将dev分支的内容合并到主分支:

# 1.先切换到master分支
git checkout master

# 2.执行merge操作
git merge dev

// 如果没有检测到可合并的内容状态提示Already to date.

在这里插入图片描述

3.Git工作流程

在这里插入图片描述

​ Workspace: 工作区,平时存放项目代码的地方

​ Index / Stage: 暂存区,用于临时存放改动,事实上它只是一个文件,保存即将提交到文件列表信息

​ Repository: 仓库区(或版本库),安全存放数据的位置,这里面有提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

​ Remote: 远程仓库,托管代码的服务器,可以简单的认为是项目组中的一台电脑用于远程数据交换

远程仓库的工作流程

在这里插入图片描述

文件的状态
在这里插入图片描述

untracked:未跟踪,此文件在文件夹中, 但没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged

tracked:已跟踪,被纳入版本控制

结合一个文件的创建=》提交操作去理解文件状态的变化,平时可以通过git status查看文件状态信息区跟踪:

  1. 新建文件—>untracked
  2. 使用add命令将新建的文件加入到暂存区—>staged
  3. 使用commit命令将暂存区的文件提交到本地仓库—>unmodified
  4. 如果对unmodified状态的文件进行修改—> modified
  5. 如果对unmodified状态的文件进行remove操作—>untracked
  • 35
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值