首页 > 其他分享 >GIT

GIT

时间:2022-09-01 21:00:52浏览次数:53  
标签: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,版本,对应,分支
From: https://www.cnblogs.com/lym-2022/p/16647808.html

相关文章

  • 实践分享!GitLab CI/CD 快速入门
    用过GitLab的同学肯定也对GitLabCI/CD不陌生,GitLabCI/CD是一个内置在GitLab中的工具,它可以帮助我们在每次代码推送时运行一系列脚本来构建、测试和验证代码的更改......
  • GIT
    git的概述git是一个版本管理工具,用来管理对应的版本的。开发流模式敏捷开发(中小型公司做外包的时候采用的),迭代式开发(公司的主项目大型的外包项目),迭代式开发(版本的迭代......
  • git 基础命令
    基础命令https://gitee.com/all-about-git大全克隆项目gitclonehttps://gitee.com/Armink/FlashDB.git将改动从工作区移动到暂存区gitadd.或者gitadd......
  • 抛砖系列之git仓库拆分工具git-filter-repo
    最近负责把团队内的git仓库做了一次分拆,解锁一个好用的工具git-filter-repo,给大伙抛砖一波,希望以后遇到类似场景时可以信手拈来。背景笔者团队目前是把业务相关的java项......
  • 利用shell脚本完成git自动拉取、同步
    #!/bin/bash#paras:$1dir#configsectionUSER=ShawnREMOTE_PATH="~/path/${USER}/${1}"######################functioncurrent_branch(){gitrev-parse......
  • Git的基础使用与远程仓库连接
    创建一个git区(本地版本库),在项目文件夹中右键菜单,点击GitBashhere,打开Git命令框使用gitinit往里面添加文件使用gitadd文件名添加使用gitstatus查看是否添加......
  • git查看历史和根据历史里面的id切换
    查看历史gitlog--pretty=onelinegitlog(然后一直按enter键)一个是切换根据历史里面的id切换gitcheckoutID gitlog需要不断按enter键出来历史提交记录  g......
  • git-从master拉取新分支并push到远端
    从master拉取新分支并push到远端 开发过程中经常用到从master分支copy一个开发分支: 1.切换到被copy的分支(master),并且从远端拉取最新版本 $gitcheckoutmaster ......
  • Git规范管理
    一、背景​统一规范后,对于后面的一系列的开发过程由系统完成,从而提高研发效率,避免各种意外情况。 二、分支管理master分支对应线上,系统上线时。平时进行需求......
  • 微信开发者工具拉取gitlab远程代码报Pull failed原因分析:
    可能出现的原因:本地主机上没有安装nodenode下载地址:1https://nodejs.org/zh-cn/download/ 没有保存gitlab的用户名和密码  ......