头图

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 思否社区打工人

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

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

Beverly5阅读 1.6k

封面图
git 常用命令 记录
有错误和改进的地方望留言,谢谢 : )顺便推荐一下,git入门教程Git 教程图解 GitPro Git 2(中文版)Git 使用Git 使用规范流程Git 工作流程Commit message 和 Change log 编写指南全局设置git config --system //...

Luff阅读 3.2k

git/pip/easy_install/apt代理/源设置
在公司内网环境中,访问公网往往需要经过公司的代理,对于浏览器、IDE等开发工具,都提供了设置代理的配置,而git、pip、easy_install等CLI工具,则需要通过命令或配置文件进行代理设置;对于Python、Ubuntu、Mav...

乘着风1阅读 5.5k

低代码开发重要工具:jvs-logic(逻辑引擎)2.1.6版本功能清单
逻辑引擎是一种能够处理逻辑表达式的程序,它能够根据用户输入的表达式计算出表达式的值。在实际应用中,逻辑引擎通常被用于处理规则引擎、决策系统、业务规则配置等领域,具有广泛的应用前景。前面几期我们了解...

软件部长2阅读 405

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了
忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒得很,本地代码提交成功基本就不管了。

程序员小富2阅读 1.4k评论 1

书写友好的提交信息
其中开头部分表明了本次提交的类型(是添加功能还是修复错误等),范围则描述了修改的影响面,然后是一段简要的描述,更多详细的信息则可以在正文中进行描述。

Kisstar阅读 2.9k

Coding 官方推出网站服务状态页面啦!
第一部分是系统运行状态。如下图,提示所有系统的运行状态,如 Coding 网站访问状态, Git 服务,QC 服务和 Paas 服务等:第二部分是系统指标。System Metrics 两个图表示的分别是 Coding 官方网站的实时响应时间...

CODING阅读 2.8k

avatar头饰
Beverly
SegmentFault 思否社区打工人

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

869 声望
2.1k 粉丝
宣传栏