ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

GIT

2022-09-01 21:00:33  阅读:141  来源: 互联网

标签:git 提交 -- GIT 版本 对应 分支


GIT

1、git概述

GIT是一个分布式版本管理工具(主要是用于管理对应的项目的版本 分支)(迭代式开发(自研公司的主项目外包的大项目也是迭代式开发))SVN(单机的版本管理工具 全部一个分支上干 )Git 是一个免费和开源的 分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容。

2、GIT环境安装

(1)下载工具

(2)安装工具

按照对应的指引 一步一步向下走(最好不要更改默认路径)

测试是否安装
点击对应的git Bash Here 进入里面输入对应的命令

git --version

3、Git入门

如何将对应的项目交给我们的git管理
(1)我们有一个对应的文件夹 project 在这个文件夹内容 点击右键打开的对应 git bash here(命令行)

git init

(2)就是会产生一个新的文件夹(这个文件夹就是对应的git本地仓库 如果你删了这个文件夹那么对应的那么这个仓库就没有 对应的里面管理的所有的数据也就没有了)

当我们这个里面有了.git这个文件夹后 我们的这个project就可以让对应的git来进行管理(这个文件夹是隐藏文件)

4、git的工作流程

(1)git分三个区

  • 工作区 (实际操作代码的代码)
  • 暂存区 (暂时保存对应的工作区提交的内容)
  • 版本库(历史区)(保存从暂存区提交过来的内容 版本库拥有最终解释权(多个版本))

(2)从工作区到对应的暂存区

  • 将对应的hello.txt 添加到暂存区
git add hello.txt
  • 查看对应的状态 (查看对应的暂存区及相关历史区的内容)
git status

  • 加入文件夹
git add ./hello

对应的空的文件夹 不允许加到git中

不是空文件夹 就会把文件夹内所有内容加入

  • 将对应的所有的内容加入
git add --all
git add .
  • 从暂存区撤回(不会影响工作区)
    撤回文件
git reset HEAD -- hello.txt

撤回文件夹

git reset HEAD -- ./hello

  • 撤回所有的内容
git reset HEAD -- .
git reset HEAD -- *

(3)从暂存区到版本库(提交了暂存区就没有了)

  • 将文件从对应的暂存区到对应的版本库
git commit hello.txt

作者不知道 (到版本库需要告诉他你是谁 你的名字和邮箱 --global填写了以后这个项目的提交就不需要再填 如果没写每次都要填)

  • 配置对应的用户信息
git config --global user.name ""
git config --global user.email ""

git这个命令行 相对于是一个linux的命令行(支持所有的linux命令)当你提交完会进入到对应的vi编辑器(vim)

  • vi编辑器有三种模式

阅读模式 :(只能读 不能操作 默认进去就是阅读模式)
插入模式 :(进行对应的值的填写和修改 i a 等进入对应的插入模式 按对应esc键就会到对应的阅读模式)
命令行模式 :(执行对应的保存退出等操作 通过阅读模式进入对应的命令行模式 :填写指令 :wq 保存后退出)

  • 查看对应的提交日志
git log

  • 简写方式
git commit 文件名 -m "提交信息"

(4)去版本库拿数据

--hard 会影响工作区和对应的暂存区

git reset --hard 版本号

拿最新的数据(最新的版本)

git reset --hard HEAD

 

5、分支

(1)分支相当于模块一个功能就有开一个功能分支 一个大的模块会开了一个模块分支(细化对应的每个功能以及相关的模块)

(2)我们当前的主分支 master(不能直接在上面做对应的代码开发 而是在底下开一个develop的分支(工作分支))

(3)分支命名必须遵从对应的规范

git 分支分为集成分支、功能分支和修复分支,分别命名为 master、feature 和 fix,均为单数。不可使用 features、future、hotfixes、hotfixs 等错误名称。

  • master(主分支,永远是可用的稳定版本,不能直接在该分支上开发)
  • master_check(未上线前的开发分支,该分支只做只合并操作,不能直接在该分支上开发,前期开发完成后将feature分支合并到此分支)
  • online(线上分支,由发版人员确认测试没问题后,将online_check分支合并到此分支)
  • online_check(开发主分支,所有新功能以这个分支来创建自己的开发分支,该分支只做只合并操作,不能直接在该分支上开发)
  • feature-xxx(功能开发分支,在develop上创建分支,以自己开发功能模块命名,功能测试正常后合并到develop分支,开发完成后合并online_check分支上)
feature/siliwu_querySchdule (新功能/吴思里_查询课表)
  • fix-xxx(修改bug分支,在master分支上创建,修复完成后合并到 online_check)

注意事项:

  • 一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。
  • feature 分支在申请合并之前,最好是先 pull 一下master_check分支下来,看一下有没有冲突,如果有就先解决冲突后再申请合并。

(4)git 提交记录规范

每个 git commit 记录都需要按照固定格式,具体格式为:
第一行:功能模块名称
第二行:提交描述,中英文皆可

分支的开辟

git branch 分支名

查看当前分支(* 当前所在分支)

git branch

进入分支

git checkout 分支名

删除分支

git branch -d 分支名

合并分支(合并到当前)

git merge 分支名

衍和分支

git rebase 分支名

6、远程仓库

github(英文文档)
全球性质的网站 任何开源的内容都会在github上存在(服务器不在中国 github是全英文的网站)
gitee(中国的github 码云)
gitee是中国的一个代码托管平台 ,他跟github的体系是差不多(上面不存在对应的开源代码)
远程仓库可以说是一个代码托管平台 (上面主要是用来存放你的代码的)

从对应的远程仓库获取数据

(1)采用克隆的形式

git clone 地址

(2)如果你已经克隆完了 你需要更新对应的代码

git pull

需要创建对应的账号以及相关的仓库

git remote add origin 远程git地址 #联通俩个git地址
git push -u origin 分支名 #推送对应远程仓库地址 -u表示的当前的用户 (基于配置好了用户的情
况)

(1)具备本地仓库

克隆

git clone 地址

创建一个本地仓库

git init

(2)联通对应远程仓库

输入用户名和密码的操作(第一次需要 就是gitee账号)

git remote add origin 远程地址

(3).在本地参考提交对应的内容(本地的仓库的版本库更新)

git add 文件
git commit 文件

(4)把对应的本地仓库推送到远程(本地仓库的版本库的最新版本>=远程参考的版本库最新版本)

git push -u origin 分支名

(5)刷新一下对应的远程仓库就更改了

7、git冲突的问题

a开发登录功能(1.0)b开注册功能(1.0) b开发完将代码提交了 (2.0)a就不能提交了(a的版本小于2.0)
先拉一下最新版本(我的版本就会变成2.0) 就可以提交了 提交完对应的版本(3.0)

(1)怎么拉(会进行合并)

git pull

如果a和b同时开发一个功能 a提交了一份代码 b现在准备提交 发现提交不上他就拉了最新版本回来 再提交上去了。任何a和b的代码就会重合。
因为对应pull会进行合并,所以我们不能使用他

(2)多人操作一个内容

git fetch origin master:temp #开一个临时的分支来存储对应的master里面的内容
git diff temp #比对对应的temp
git merge temp #再进行合并

 

标签:git,提交,--,GIT,版本,对应,分支
来源: https://www.cnblogs.com/lym-2022/p/16647808.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有