Git上传代码

背景

在软件开发行业,主流存在着两种版本控制工具,git 和 svn,由于svn存在着一些问题,渐渐的现在市面上,git成为了主流,git也成为开发人员必备的基础技能,会不会用git,能不能熟练使用git,也是企业考察的一个重点。

git是linux之父Linus Torvalds (林纳斯·托瓦兹)开发的,据传Linus 只用了两周就开发出了git,并发布了稳定版本,一个月之内,git就已经用于linux的源码的管理了。

2. 版本控制系统的介绍

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

  1. 代码备份
    1. 本地代码仓库
    2. 远程代码仓库
  2. 版本控制
    1. 随时切换版本
    2. 各个版本之间互不干扰
  3. 协同工作
    1. 合并代码
    2. 解决冲突
    3. 回退代码
    4. 代码追踪
    5. 提交记录
    6. 提交说明
  4. 代码变动

Git和SVN

svn

​ SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑, 所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。
在这里插入图片描述

​ 问题:

  1. 一旦svn服务器出故障,svn无法切换版本,无法提交(工作中,多版本切换是常态)
  2. 硬盘损坏,所有版本的代码都丢失,本地不一定有所有版本的代码
  3. svn合并代码不友好,新手很容易误删别人的代码

git

​ Git是在2005年,Linux系统的创建者Linus Torvalds 为了帮助全球的开发者,维护Linux系统内核的开发 而开发了自己的开源分布式版本控制工具 。

分为两种类型的仓库:本地仓库和远程仓库。

在这里插入图片描述

git完美解决了svn遇到的问题,成为了现在主流的版本控制管理工具。

git 下载安装

下载

官网下载地址:https://git-scm.com/downloads

在这里插入图片描述

安装

  1. 双击安装包,进入安装向导界面
  2. 一路next
  3. 等待安装
  4. 安装完成,点击Finish
    在这里插入图片描述

说明

  1. 安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明Git安装成功。
    在这里插入图片描述

    1. Git GUI:Git提供的图形界面工具
    2. Git Bash:Git提供的命令行工具
  2. 运行Git命令客户端,使用git --version 命令,可以查看git版本

在这里插入图片描述

小知识点:git命令客户端,是linux命令,可以使用它练习一下linux命令,比如

	1. cat : 查看文件
   	2. ll : 文件列表 等同于 ls -l
   	3. mv: 移动文件到指定目录
   	4. cp:拷贝文件到指定目录
   	5. vim:编辑文件

TortoiseGit安装和汉化

一般在工作中还是使用图形化界面多一些。

安装

  1. 双击安装包,进入安装向导界面

  2. 一路next

  3. 选择安装目录

  4. 安装

  5. 配置 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    配置 https://gitee.com/ 上的用户名和账号
    在这里插入图片描述
    在这里插入图片描述

5.2 汉化

  1. 安装中文语言包

    TortoiseGit-LanguagePack-2.9.0.0-64bit-zh_CN.msi
    在这里插入图片描述

  2. 进入设置

在这里插入图片描述
3. 选择中文,点击应用并确认
在这里插入图片描述

  1. 完成
  2. 在这里插入图片描述

其余Git的图形化界面工具

Sourcetree
在这里插入图片描述

小结

  1. git是工作必备技能,一定要牢牢掌握
  2. 一般工作中,使用图形化工具比较多一些
    1. TortoiseGit (小乌龟git)
    2. sourcetree (有兴趣的可以了解一下,我在使用的)
    3. idea的git插件 (后面会讲)
  3. 虽然实际工作中,图形化工具使用较多,但还是要了解git的命令,这样对图形化工具的使用才能得心应手

Git入门

Git工作流程

Git分为本地仓库和远程仓库。

6.1.1 本地仓库

6.1.1.1 工作流程

在这里插入图片描述

6.1.1.2 常用命令

在这里插入图片描述

6.1.1.3 使用步骤(命令行方式)

步骤:

  1. 创建工作目录、初始化本地 git 仓库
    在这里插入图片描述

  2. 新建一个 test.txt 文件(暂不执行添加操作)

  3. 使用 status 命令,查看状态
    在这里插入图片描述在这里插入图片描述

  4. 使用 add 命令添加,并查看状态
    在这里插入图片描述

  5. 使用 commit 命令,提交到本地历史仓库
    在这里插入图片描述

  6. 使用 log 命令,查看日志
    在这里插入图片描述

  7. 修改 test.txt 文件
    在这里插入图片描述

  8. 添加并提交,查看日志
    在这里插入图片描述

使用步骤(图形化方式)

步骤:

  1. 创建工作目录、初始化本地 git 仓库
    在这里插入图片描述

  2. 新建一个 test.txt 文件(暂不执行添加操作)

  3. 使用 status 命令,查看状态

  4. 使用 add 命令添加,并查看状态
    在这里插入图片描述
    在这里插入图片描述

  5. 使用 commit 命令,提交到本地历史仓库
    在这里插入图片描述
    在这里插入图片描述

  6. 使用 log 命令,查看日志
    在这里插入图片描述
    在这里插入图片描述

  7. 修改 test.txt 文件

  8. 添加并提交,查看日志

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.1.1.5 历史版本切换

​ 在多个提交的版本记录中,可以任意的切换

步骤:

  1. 查看 my_project 的 log 日志

    1. 使用 git reflog:可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)
      在这里插入图片描述
  2. 增加一次修改记录在这里插入图片描述

  3. 将代码切换到第二次修改的版本

    1. 指令:git reset --hard 版本唯一索引值

    在这里插入图片描述
    在这里插入图片描述

6.1.1.6 分支管理

在这里插入图片描述
在这里插入图片描述

⚫ 分支的使用场景

  1. 周期较长的模块开发
    1. 假设你准备开发一个新功能,但是需要一个月才能完成
    2. 第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug
    3. 那现在就需要放下手中的新功能,去修复Bug
    4. 但这20%的代码不能舍弃,并且也担心丢失
    5. 这就需要开启一个新的版本控制。
  2. 尝试性的模块开发
    1. 业务人员给我们提出了一个需求
    2. 经过我们的思考和分析 该需求应该可以使用技术手段进行实现
    3. 但是我们还不敢确定
    4. 我们就可以去创建一个分支基于分支进行尝试性开发。
分支在真实工作的场景
  1. 开发人员从需要添加功能的开发分支上,拉取代码
  2. 构建自己的分支
  3. 在自己的分支上进行开发
  4. 将代码合并到开发分支上
  5. 由上线人员或者有权限的开发人员,将开发分支合并到对应的上线分支上
  6. 完成代码上线

使用分支管理可以有效的避免污染主线分支或者上线分支,从而造成一些不必要的麻烦

分支工作流程

由每次提交的代码,串成的一条时间线
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. Master是所在分支的名称,一般不可修改
  2. Head是指向分支的指针
  3. Dev是另一个分支的名称,可随意定义
    1. 工作中分支定义:
      1. Master(主分支,一般用作上线分支)
      2. Dev(开发分支,又叫做测试分支,开发阶段使用,开发完成并测试完成后,合并到主分支)
      3. 开发人员分支(开发人员从Dev拉取的分支,用于开发阶段使用,功能开发完成后,合并到Dev分支,供测试人员测试)
创建和切换分支
  1. ​ 创建分支:git branch 分支名,如果不知道如何使用 可以 用 git branch --help 打开说明文档
    在这里插入图片描述
    在这里插入图片描述
  2. 切换分支:git checkout 分支名
    在这里插入图片描述
    总结:不同分支之间的关系是平行的关系,不会相互影响
    git branch --list 查看分支列表
合并分支和删除分支
  1. 合并分支:git merge 分支名

    1. 切换到master分支
      在这里插入图片描述

    2. 将xiaoming 分支合并到master
      在这里插入图片描述

    3. 完成合并,查看日志

    4. 在这里插入图片描述

  2. 删除命令:git branch -d 分支名

  3. 查看分支列表:git branch --list

在这里插入图片描述
在这里插入图片描述

6.1.2 远程仓库

6.1.2.1 工作流程

在这里插入图片描述
在这里插入图片描述

远程仓库平台介绍
  1. Github
    1. 域名:https://github.com
    2. 介绍:GitHub是全球最大的开源项目托管平台,俗称大型程序员社区化交友网站 各类好玩有趣的开源项目,只有想不到,没有找不到。
  2. 码云
    1. 域名:https://gitee.com
    2. 介绍:码云是全国最大的开源项目托管平台,良心平台,速度快,提供免费私有库
远程仓库平台操作

操作情况

  1. 情况1:先有本地项目,远程为空
    1. 步骤
      1. 创建本地仓库
      2. 创建或修改文件,添加(add)文件到暂存区,提交(commit)到本地仓库
      3. 创建远程仓库
      4. 推送到远程仓库
  2. 情况2:先有远程仓库,本地为空
    1. 步骤
      1. 将远程仓库的代码,克隆到本地仓库
        1. 克隆命令:git clone 仓库地址
      2. 创建新文件,添加并提交到本地仓库
      3. 推送至远程仓库
      4. 项目拉取更新 拉取命令:
        1. git pull 远程仓库名 分支名
6.1.2.4 创建远程仓库
  1. 注册码云账号

  2. 创建仓库

将本地代码推送到远程:在这里插入图片描述

在推送之前,需要先将本地代码和远程仓库代码关联:

  1. git remote add<name> <url>

在这里插入图片描述
2. 推送 git push<name>在这里插入图片描述

发现报错,git@gittee.com:Permission denied

没有权限。

和远程仓库关联有两种方式:

  1. ssh方式

    1. 在这里插入图片描述
    2. 使用ssh方式,需要配置SSH公钥
  2. http方式在这里插入图片描述

    1. 使用http方式,不需要配置SSH公钥

      1. 在这里插入图片描述

      2. 在这里插入图片描述

      3. 使用http方式 会弹出用户密码输入框,输入gitee的账号密码即可,下次可直接使用,git会进行记忆存储

      在这里插入图片描述
      4. 在这里插入图片描述在这里插入图片描述
      注意:如果是idea项目提交,注意在本地目录添加.gitignore,将不相关的文件,目录等排除在提交之外

*.iml
.idea/
*.ipr
*.iws
.idea_modules/
target/
*.project
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties

注意:在从本地提交项目前,不要在gitee上,编辑文件,并提交,这样会造成本地和远端版本来源不一致,导致无法提交

解决方案是:强制拉取最新的代码,在提交,强制拉取代码命令:git pull origin master --allow-unrelated-histories

创建SSH公钥

使用ssh方式,需要配置SSH公钥

生成SSH公钥步骤 :

  1. 设置Git账户

    1. 查看git账户 : git config user.name
    2. 查看git邮箱:git config user.email
    3. 设置全局账户名和邮箱: git config --global user.name “账户名” git config --global user.email “邮箱”
    4. 查看是否生成过SSH公钥 :cd ~/.ssh
  2. 生成SSH公钥

    1. 命令: ssh-keygen –t rsa –C “邮箱” 在这里插入图片描述 在这里插入图片描述
  3. 设置账户公钥

    id_rsa.pub 就是公钥

    1. 查看公钥命令:cat ~/.ssh/id-rsa.pub
      在这里插入图片描述

    2. 设置码云账户公钥(在设置里面)
      在这里插入图片描述

  4. 公钥测试

    1. 命令:ssh -T git@gitee.com

    在这里插入图片描述

推送代码到远程仓库

步骤 :

  1. 为远程仓库的URL(网址),自定义仓库名称
    1. git remote add 远程名称 远程仓库URL
  2. 推送
    1. git push -u 仓库名称 分支名
从远程仓库克隆,拉取

情况2:先有远程仓库,本地为空

  1. 步骤

    1. 将远程仓库的代码,克隆到本地仓库

      1. 克隆命令:git clone 仓库地址(仓库地址 使用ssh地址和http地址都可以) 在这里插入图片描述
    2. 创建新文件,添加并提交到本地仓库

      1. git add hello.txt
      2. git commit -m ‘hello.txt’
    3. 推送至远程仓库

      1. git push -u origin master (git push -u 远程仓库名 分支名)

      在这里插入图片描述 在这里插入图片描述

    4. 项目拉取更新 拉取命令:

      1. git pull 远程仓库名 分支名
        在这里插入图片描述
6.1.2.8 解决代码冲突

​ 代码冲突产生的原因:
在这里插入图片描述

将test.txt的内容 更改为update count=2

远端test.txt的内容 更改为 update count=3

本地提交:​ 在这里插入图片描述
因为本地代码和远程仓库中的代码不一致,且是同一文件,造成了冲突

如何解决?

  1. 先使用拉取命令:git pull
    在这里插入图片描述

  2. 打开冲突文件test.txt
    在这里插入图片描述

  3. HEAD代表本机版本,17719a0a26a1f29e0ce9b499d7d39a2190b4799c 代表远端版本 中间使用======分隔

  4. 选择要使用的版本,此时我们选择本机的代码为要最终提交的代码

在这里插入图片描述
5. 提交,先git add, 然后 git commit 提交到本地,然后git push 推送到远端
在这里插入图片描述
在这里插入图片描述

IDEA中使用Git

7.1 关联Git

  1. File -> Setting

在这里插入图片描述
2. Version Control — Git — 指定git.exe存放目录
在这里插入图片描述
3. 点击 Test 测试
在这里插入图片描述

创建本地仓库并提交代码

  1. 打开工程

  2. 创建本地仓库
    在这里插入图片描述

  3. 关联git
    在这里插入图片描述

  4. 创建.gitignore文件

    *.iml
    .idea/
    *.ipr
    *.iws
    .idea_modules/
    target/
    *.project
    pom.xml.tag
    pom.xml.releaseBackup
    pom.xml.versionsBackup
    pom.xml.next
    release.properties
    dependency-reduced-pom.xml
    buildNumber.properties
    .mvn/timing.properties
    
  5. 提交代码

在这里插入图片描述

  1. 查看日志
    在这里插入图片描述

切换版本

​ 使用revert来进行历史版本的切换

在这里插入图片描述
在这里插入图片描述
Revert 操作会当成一个新的提交记录 这种回退的好处在于,如果后悔了“回退”这个操作 也可以回退到没有回退之前的版本 因为历史记录还保留提交记录

分支管理

  1. 创建并切换分支

  2. 可以切换回master
    在这里插入图片描述

  3. 分支合并
    在这里插入图片描述
    master合并dev01的内容

有冲突,点击Merge解决冲突

在这里插入图片描述
解决完冲突,点击Apply
在这里插入图片描述
4. 分支删除

1.在这里插入图片描述

分支在真实工作的场景

1.	开发人员从需要添加功能的开发分支上,拉取代码
2.	构建自己的分支
3.	在自己的分支上进行开发
4.	将代码合并到开发分支上
5.	由上线人员或者有权限的开发人员,将开发分支合并到对应的上线分支上
6.	完成代码上线

本地推送到远程

  1. push
    在这里插入图片描述
  2. 关联远程仓库
    在这里插入图片描述

远程克隆到本地

在这里插入图片描述

总结

  1. 可以使用 git 命令 --help 来查看相关的命令文档
  2. git init :初始化
  3. git add : 添加要提交的文件
  4. git commit -m “说明” : 提交到本地
  5. git push -u <分支名称> : 推送到远程仓库
  6. git pull <分支名称>: 将远程仓库代码拉取到本地
  7. git clone 克隆仓库
  8. git branch --help : 分支管理相关,通过help查看文档
    1. git branch 分支名 : 创建分支
    2. git checkout 分支名:切换分支
    3. git branch --list :分支列表
  9. 历史版本切换:Revert
  10. 分支合并
    1. Merge操作
    2. 代码冲突
      1. 解决冲突
      2. 提交代码
    3. 合并成功
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值