头图

SegmentFault 思否技术周刊 Vol.78 — Git 必看技术补给

Git 的诞生是一个非常有趣的故事。1991年 Linus 开源了 Linux 内核,无数 Linux 爱好者在世界各地为 Linux 编写代码,那么问题来了,这些代码该如何管理呢?起初 Linus 使用 BitKeeper(BitMover 公司的版本控制软件)管理 Linux 的核心开发,后来 BitMover 停止了对 Linux 的支持,于是 Linus 秉承自己的版本自己写的精神,花了两周时间自己用 C 写了一个分布式版本控制系统,这就是 Git。

本期技术周刊一起了解 Git,欢迎大家阅读 ~

文章推荐

Git 操作不规范,战友提刀来相见! // 王中阳Go

问题描述:

  • 小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开发新功能。
  • 小A在我之前把代码提交到了测试分支,我想提交我的新功能代码到测试分支时发现巨多冲突,脑袋瞬间就炸了,Boom一声惊雷响啊。

分析一下:

  • 首先解决冲突浪费时间,我的新功能代码每次提测到测试分支都需要解决冲突。
  • 我在测试分支解决冲突,只能按照小A优化后的代码逻辑的去解决,和我自己的分支逻辑并不一致。
  • 交付给测试同学的测试分支代码,和我自己分支的代码不一致,这种测试是没有意义的。

好慌,我代码没了!不会是变基变出问题了吧? // Kagol

前两天检视代码时,发现PR里面有两个提交的描述信息一模一样,于是我提出应该将这两个提交合并成一个,保持提交树的清晰。

先储存起来!
而同事这时正在开发别的特性,工作区不是干净的,没法直接执行 git rebase 操作,于是很自然地执行

git stash

将正在修改的内容保存到一个栈中,并维持当前工作区干净。
这样就可以执行切换分支、变基等操作,这些操作能执行的前提是当前工作区是干净的。

工作中如何使用 Git // 沐华

本文将从 Git 入门到进阶、由浅入深,从常用命令、分支管理、提交规范、vim 基本操作、进阶命令、冲突预防、冲突处理等多方面展开,足以轻松应对工作中遇到的各种疑难杂症,如果觉得有所帮助,还望看官高抬贵手给个赞呗,感谢

虽说现在工作中使用 Git 都会用一些图形化管理工具来提高开发效率。可事实上使用图形管理化工具的前提,也是基于对命令都基本了解。还有比如我平时用的工具 GithubDesktop 因为不带第三方合并工具,只能手动解决冲突,而且有的功能没有,只能配合自己手动敲命令。

即使是工具也没有那么完美的工具,掌握命令才是渔,工具只是鱼。其他的 Git 可视化管理工具比如:小乌龟、SourceTree、还有我们开发用的 IDE 集成的,本期就不过多介绍了

Git 分支管理策略汇总 // alwaysbeta

最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码?

我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家。

在实际工作开发中非常实用的几个 git 命令 // FFF方

git 在实际开发过程中的重要性对在座的各位来说想必不用我过多赘述,但是对于 git 中千千万万复杂的命令来讲,在实际开发过程中只有小部分是最经常使用的,今天国庆节第一天,由于疫情原因没回家。闲着没事就给大家总结一下在实际工作中我个人最最最最经常使用的命令,并且我会结合我日常工作流程来讲解。

tips:就不过多介绍 git add-commit-push 这三个命令了

纯 Git 实现前端 CI/CD // believeyourself

最近要把前端 react 项目部署到私有服务器上,研究了好几种持续部署方案,这里简单描述一下。

总的部署思路分两种:

1.编译后的文件部署

编译后的文件部署,就是先在本地进行npm run build打包,生成 build 文件夹,然后将 build 文件夹传到服务器,再用 Nginx 配置一个静态解析即可。
这种方案用 rsync 直接上传就可以,这里不赘述。

2.源码部署
源码部署就是把源文件上传到服务器上,然后:

$ npm install && npm run build

这种方式是将打包工作交给服务器(或其他构建工具),本地只是将源代码 push 上去,git 监听到推送然后自动开始构建。这是现在流行的方式,大多数持续集成工具都是这么干的。
今天的重头戏来了!我们不借助其他构建工具,只用纯 Git 实现监听 push 并自动构建。相信我,这一步非常有趣~

工作中使用 Git 解决问题的场景 // 山头人汉波

简单来说,就这七点:

  • 使用 git rebase 让提交记录更加清晰可读
  • 使用 git reflog + git reset 跳到任意 commit
  • 使用 git cherry-pick 获取指定的 commit
  • 使用 git commit --amend 更改提交内容
  • 使用 git revert 回滚某次的提交
  • 使用 git stash 来暂存文件
  • 配置 git alias 提升工作效率

git 配置以及替换 gerrit 默认 commit-msg hook // 记得要微笑

Git 配置规范:配置用户名和邮件

为了提交记录便于识别,配置中文名,邮箱配置成gitlab注册邮箱

git config --global user.name "中文姓名"  
git config --global user.email "email@[email.com"

示例

user.name 配置规则: name#工号 示例 git config --global user.name "张三#A00003"

user.email 配置规则: 统一使用公司的邮箱。示例 git config --global user.email "san.zhang@casstime.com"

问答推荐


# SegmentFault 技术周刊 #

「技术周刊」是社区特别推出的技术内容系列,一周一主题。

每周二更新,欢迎「关注」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。

如有问题可以添加小姐姐微信~

image.png


SegmentFault_社区周刊
主题技术周刊,每周分享新鲜有趣的技术干货。
avatar
Beverly
SegmentFault 思否社区打工人

怂人面前全是坑,努力填坑 。

831 声望
2.1k 粉丝
0 条评论
推荐阅读
SegmentFault 思否技术周刊 Vol.80 — 玩转新时代前端构建工具
Vite 提供了一套原生 ESM 的 HMR API。 具有 HMR 功能的框架可以利用该 API 提供即时、准确的更新,而无需重新加载页面或清除应用程序状态。Vite 内置了 HMR 到 Vue.js 单文件组件(SFC)和 React Fast Refresh 中。

Beverly1

封面图
SegmentFault 思否技术周刊 Vol.71 — 解读 Go 语言
通过这篇文章我们已经掌握了 gRPC 相关的知识点,可以独立用 Go 实现客户端和服务端的编写,并且通过服务注册对外提供服务,实现可客户端和服务端的 gRPC 通信。

Beverly9阅读 1.8k评论 1

封面图
Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...

王中阳Go5阅读 2.3k评论 2

封面图
Git 入门与实践
Git 入门与实践推荐:猴子都能懂的 GIT 入门Git --everything-is-loca 官方文档Git 教程-廖雪峰Git 的使用方式有很多。图形化 —— 小乌龟(Tortoise Git )、命令行—— git bash、IDE 集成等 ......目录1. 基础配置...

RainBow1阅读 2.2k

SegmentFault 思否技术周刊 Vol.76 — 破解 Javascript 玩法
维基百科:在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是在支持头等函数的编程语言中实现词法绑定的一种技术。MDN: 闭包(closure)是一个函数以...

Beverly4阅读 1.2k

封面图
openKylin 0.9.5版本正式发布,加速国产操作系统自主创新进程!
2023年1月12日,中国桌面操作系统根社区openKylin(开放麒麟)正式发布openKylin 0.9.5操作系统版本。此版本充分适应5G时代需求,打通平板,PC等设备,实现多端融合,弥补了国产操作系统的短板,有效推动国产操作...

openKylin6阅读 7.4k

封面图
SegmentFault 思否技术周刊 Vol.70 — 深入 MySQL 实战
MySQL 软件采用了 GPL( GNU 通用公共许可证),由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。

Beverly2阅读 1.5k

封面图
avatar
Beverly
SegmentFault 思否社区打工人

怂人面前全是坑,努力填坑 。

831 声望
2.1k 粉丝
宣传栏