Git常用命令和 GitFlow工作流

Git常用命令和 GitFlow工作流

什么是 Git : 分布式代码托管平台

Git 分布式的理解:大家可以提交代码, (本地也有暂存区,即使断网了也可以运行git add . 和 git commit先提交到本地)。

git常用命令

git init 		初始化仓库(生成.git文件夹--隐藏文件夹)
git config -l   查看配置 (配置的用户名,邮箱、可以用来追溯是谁提交的代码)
git status      查看状态 (标记为红色说明文件没有被git管理,需要把文件添加到暂存区,绿色说明已被管理)

git add .  把当前项目所有文件添加到暂存区   (让git接管当前项目的文件)
git add index.js 指定文件上传到暂存区

git diff   查看修改的文件 
git log    查看修改历史(详细输出,谁修改的,几点修改,以及提交时间)
git reflog 查看修改历史(简单输出,只输出提交了几次和修改的文件)

回到之前的版本:
git reset --hard HEAD^
git reset --hard 版本号 回到指定版本 ( 执行git reflog 最开头的[f781dee] 就是版本号)


git commit -m '备注内容' 添加到分支中 (默认添加到master主分支)
git push 推送到云端


如何查看远程仓库的分支 
 git branch -r 
 git push --set-upstream origin 分支名称   (本地分支提交到远程仓库) 
 git branch -d 分支名称   (删除本地分支)

如何删除远程仓库的分支 
git push origin --delete 分支名称

分支的操作

默认的主分支是 : master 

git branch            (查看本地分支)
git branch 分支名称    (新建分支)
git checkout 分支名称  (切换分支) 

注意: 分支是独立的,不会互相影响 注意:在一个分支下创建另外一个新的分支,新的分支会继承旧分支之前的操作。

注意:合并分支时,如果当前是在 master 分支下写入:git merge dev,那么master和dev会进行合并,相当于 master += dev

解决冲突

git push为什么报错?
如果远程仓库有人更新了代码,那我们不能直接 git push
解决: 必须先拉取远程仓库的代码(执行 git pull ),然后再push

但是,有的时候还是会出现问题,多人同时修改了一个文件,导致代码冲突,后一个人提交时报错:

后提交的人解决问题:手动解决冲突代码,协商保留或者删除。

工作中应该写一个模块就提交,避免自己碰到代码冲突!。

GitFlow 工作流

gitflow 是应用于 中、大型项目才会用到的针对于分支的管理。

master  用于保存上线版本代码,创建了develop分支 
	---| develop 用于保存相对稳定版本的代码,所有的feature都是develop分支创建的 
	---| feature 用于开发某几个功能 不同的功能可能会创建不同的分支,如:  
		---| feature/login
		---| feature/list
	---| release 用于代码上线前的准备(测试,bug修复)是dev创建的 【如:release/v1.0---| bugfix 用于修复不紧急bug  【如:bugfix/xxx2021】
       	---| hotfix 用于修复紧急bug

当develop合并完成功能分支后,是不会直接上线的,此时会在develop分支下创建 release 测试分支,如果在此时出现问题,测试人员会在 release/v1.0分支下创建分支。

开发一个项目领导可能做的事情:

  1. 搭建仓库
  2. 创建分支
  3. 初始化项目
  4. 合并分支
一、创建一个远程仓库:

QQ截图20211206102739

QQ截图20211206102806

拉取远程仓库

 git clone 仓库地址

QQ截图20211206103021

查看所有分支:

git branch -r

二、创建分支

在master分支下创建一个 develop 分支并且提交到远程仓库中:

git branch develop   // 创建 develop 分支
git checkout develop // 切换到 develop 分支

提交:

git push --set-upstream origin <分支名称>

此时远程仓库就会多一个develop分支

如何删除分支:

  • 先切换到其他分支,再删除。
git checkout 切换到其他分支,
git branch -d 需要删除的分支名
三、创建功能分支

在实际开发中,领导可能会创建很多功能分支

四、初始化项目

初始化一个Vue项目并合并:

QQ截图20211206103625

创建 Node.js 后端项目

  cnpm install express-generator -g //全局安装
  express --view=ejs <后端项目名称>   // 切换到项目目录内局部安装

下载依赖和运行后端服务:

进入 http://localhost:3000/ 查看,如果看到下面的页面,则后端运行成功:

五、合并分支

功能分支合并到 develop 并 提交代码到远程仓库

  • 切换到 develop 分支

  • 提交功能分支代码并且合并到 dev

    git add .  // 添加当前目录下的所有文件到暂存区
    git commit -m 'init0' // 提交一次代码,并添加备注
    

    Snipaste_2021-12-11_15-23-02

在远程仓库查看效果:

Snipaste_2021-12-11_15-30-02

  • 注意,此时只有在dev分支才有项目初始化代码,master和 feature/home 功能分支是没用的(这样才对)。

开发者 Git 操作:

一、克隆仓库

注意,如果直接使用克隆地址拉取代码,默认是拉取主分支 master 分支下的代码。

指定分支克隆代码:

git clone -b <分支名称> 地仓库址

此时我们没有提交代码的权限,需要自己在仓库生成 SSH 公钥。

二、拉取了dev 分支,但是提交代码需要在某一分支上

我们此时克隆的是 dev 分支的代码,但是开发及上传代码在 feature/home 分支下:

(1). 配置本地身份

git config  user.name "liaoyio"
git config user.email "2417276459@qq.com"

(2). 在dev 分支查看日志并且复制上传记录的hash

Snipaste_2021-12-11_16-13-34

(3). 远程仓库拉取到本地仓库

git checkout --track origin/feature/home

注意此时拉取的项目是空的,因为初始化项目的代码在dev分支下。

三、拉取 dev 分支代码及合并

(4). 将dev分支 commit 对应的hash值提交的代码合并到 功能分支(home)上

在远程仓库查看,此时home分支就有代码了:

四、提交代码

QQ截图20211211162713

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OooooYi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值