前几天在家写公司的代码,自己电脑上 git 全局设置用的是私人邮箱,太懒了懒得改,直接 commit 以后被公司的 bot check 到是非公司邮箱提交的代码,PR 都不让开,真是很严格呢,气人 😤 以前只知道怎么修改单个 commit 的信息,而且只知道用 git commit --amend 修改最新提交的 commit。学习了一下怎么修改多个 commit…
前几天刚看到一个 git command: git bisect ,万万没想到居然这么快就用上了,真是尴尬。更尴尬的是,debug 了半天最后发现是自己的 commit 出问题 😆 在软件开发的过程中,由于测试覆盖率低,没时间回归测试等等原因,经常会遇到一种情况就是,某个 feature 明明前几天还好好的,不知道从什么时候开始就出 Bug 了……然后 hmm…
在写程序的过程中,经常遇到一些刚提交了 commit 就发现有个错别字这种尴尬的情况,我以前的做法是 git reset HEAD~1 将 HEAD 指向提交之前的一个 commit 然后改完再重新提交 🤦 除此之外,如果是最新的 commit 中的错误需要修改,其实还可以直接修改,之后使用 git add FILE_TO_CHANGE git comit --amend…
为什么需要全局 .gitignore 通常来说,在 repo 中提交跟 IDE 相关的文件并非最佳实践,所以大多数时候会在 .gitignore 中加入 IDE 相关的文件 pattern,然而市面上的 IDE 很多,不同程序员对 IDE 也有着自己的偏好,似乎不太可能把市面上所有的 IDE 都列出来。 除此之外,可能还有一些其他情况下,希望在本地 ignore…
看了好多讲通过 git 钩子自动部署的,大多讲的绕来绕去乱七八糟思路一点也不清晰… 做了一晚上实验之后大概明白了是怎么工作的。 裸仓库(bare) 裸仓库跟我们平时 git clone 得到的仓库不太一样,裸仓库其实相当于通过克隆来的仓库里的 .git 文件夹,整个裸仓库中只有 git 索引(index), 并没有任何代码相关的东西 。要实现 Push to Deploy…
我也不想中英文混杂的取标题……但我实在翻译无能… _ (:з」∠) _ 基本知识 在 git 中文件有两类,共三种状态: untracked tracked changes not staged for commit changes to be committed 我们都知道,在 .gitignore 文件里添加相应的文件夹或文件就能忽略掉不想被 track 的文件。 但是, .gitignore…
因为我是那种经常改一个错别字就忙着要提交一次的人…所以总是会产生很多无意义的提交,于是合并多个提交为一个就成了我的刚性需求。 关于合并多个提交,主要是要搞清楚 rebase 的用法。 查看提交历史,git log 首先你要知道自己想合并的是哪几个提交,可以使用 git log 命令来查看提交历史,假如最近 4 条历史如下: 历史记录是按照时间排序的,时间近的排在前面。 git rebase…
为什么我每天都会有一些奇奇怪怪的需求… 我之前在 github 上用 hexo 搭了一个静态博客,每次 hexo deploy 的时候,就会在 gh-pages 分支提交一个 commit。但是由于 hexo-deployer-git 本身的逻辑是,每次都是强推 push -f ,于是每当我换电脑(比如从家里换到公司里)的时候,我的 commit…
(此文章适合听说过 git,大概知道 git 是什么东东,但是又不会 git 命令的童鞋阅读。 时间充裕的童鞋可以到 codecademy 跟着教程一步步走) Git 是一个分布式的版本管理( Version Control…