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"
问答推荐
- git 如何把本地所有分支通过命令行全部提交到远程仓库?
- git 第一次提交失败是因为没有进入到项目名中提交吗?
- git branch 查看分支为什么之前是 master ? 现在是 main?
- git 如何在不进入交互式编辑器的情况下 合并 commit ?
- git 如何查看分支是从哪里分出来的?
- git 如何放弃跟踪对一个文件单次修改的操作,但是不放弃修改?
- git 分支合并问题?
- git 如何找到代码是从哪个分支被 merge 进主分支的?
- git 如何控制版本?
- git 如何忽略本地文件,同时不更改远程文件?
# SegmentFault 技术周刊 #
「技术周刊」是社区特别推出的技术内容系列,一周一主题。
每周二更新,欢迎「关注」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。
如有问题可以添加小姐姐微信~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。