git rebase 与 git reset的应用

常用的应用场景

  1. 合并提交

  2. 去除不要的提交

实际应用

场景1,合并多个提交

有 A B C D E F 6个提交,当前分支develop的最新提交为F,C D E F都是某一功能的持续提交,现需要把C到F的commit合并成一个commit,去除多余提交

  1. 方法一: git reset
1
2
git reset B --soft
git ci -m "merge C to F"
  1. 方法二: git rebase
1
git rebase --onto B C^ develop

场景2,去掉D提交

此时,git reset已经不再适合这个场景

使用git rebase

1
git rebase --onto C E^ develop

后记

  1. git rebase 语法

    git rebase --onto <onbase> <since> <till>
    git rebase --onto <onbase> <since>
    git rebase <since> <till>
    git rebase <since>
    git rebase -i

    onbase为要架接到的commit, since表示不包括自身到till的所有提交

    git rebase --continue # 解决冲突后使用,以完成rebase
    git rebase --skip # 跳过当前commit,进行下一个commit的合并
    git rebase --abort # 放弃此次操作,还原工作区

  2. git rebase的莫名冲突

    对于场景二: 使用git rebase可能出现冲突(感觉不应该出现冲突的,对此不是很理解,难道是因为丢弃D后使查找链C-D-E-F断裂造成git认为这两个commit需要合并,是因为E无法知道C是它的祖先吗)

    在解决冲突后,使用git rebase --continue完成rebase操作

让Aws S3 只同步 Hexo 内容有变化的文件

问题描述

发现Aws S3 sync 在同步Hexo 生成的网站内容时,几乎总是同步所有文件,那些内容没有发生改变但文件最后修改时间发生改变的文件也被同步了,造成了Aws S3写操作流量的浪费,原因如下

  1. Aws S3 sync 命令的同步的策略

    1. 判断文件大小是否发生变化
    2. 比较文件最后的修改日期

    如果某个文件的这两项中的其中一项发生变化,则这个文件被同步

  2. Hexo生成文章

    即使仅更新一篇文章,使用hexo g命令后,几乎所有文件的最后修改时间都被更新了。目前来看,Hexo更新内容的算法还有待改进,有些地方还是有优化空间的

由于以上两点,造成了Aws S3写流量的浪费

解决方案

只同步内容有改变的文件

  1. 通过git diff 命令找出此次提交发生变化的文件。这里不用git log的原因是log命令会有多余的输出,不利于后面编写脚本
  2. 使用aws s3 cp把发生变化的文件同步到Aws S3,这样就大大节省了Aws S3写操作的流量

编写脚本

1
2
3
#!/bin/bash
git diff HEAD~1 HEAD --stat --name-only | awk '{cmd="aws s3 cp "$1" s3://your-butket/"$1" --exclude '.gitignore'";system(cmd)}'

放到项目根目录执行,此脚本只会同步那些内容有修改的文件,内容没有修改,但最后修改时间被更新的文件不会被同步,大大节省了Aws S3的写流量

后记,奇怪的git diff输出

发现git diff --stat输出时,如果输出到屏幕,那些长路径名是可以正常显示的,但如果输出到文件,则长路径就会被省略显示。

1
2
3
4
5
6
7
8
9
10
11
# 长路径名
looooooooooong_path_name/index.html
# 在输出到屏幕时是可以正常显示的
> git diff --stat
> looooooooooong_path_name/index.html
# 但如果输出到文件,路径名就变成了:".../index.html"
> git diff --stat > diff.log
> cat diff.log
> .../index.html

为了解决这个问题,需要执行 git diff --stat --name-only, 输出到文件也可以正常显示长路径名了

1
2
3
> git diff --stat --name-only > diff.log
> cat diff.log
> looooooooooong_path_name/index.html

SERENA V MARIA, THE LATEST CHAPTER

The last chapter, Rivalry or not, all eyes will be on Maria Sharapova vs Serena Williams.

Unfortunately, Serena Williams was forced to pull out of Roland Garros due to an injury on Monday, giving Maria Sharapova a walkover into the quarterfinals.

Sharapova vs Williams

Serena Williams Interview

  • I’m beyond disappointed. I gave up so much, from time with my daughter to
    time with my family. I put everything on the court. All for this moment.
  • Every match has been getting better for me. Physically, I’m doing great…I can only take solace in the fact that I’m going to get better.
  • It’s very difficult because I love playing Maria.
  • it’s a match I always get up for and her game matches up against mine.

Maria Sharapove Interview

  • I was looking forward to my match against Serena today and am disappointed that she had to withdraw. I wish her a speedy recovery and hope she returns to the tour soon.

一字马进步一点点

终于可以双手向上举了,希望以后每天都可以下去一字马

一字马在你离地还很高的时候是不会疼的,就算疼,也不是那么的疼,是可以忍受的疼。真正开始疼的时候是你刚刚可以坐到地上(一字马初成),这个时候才是最疼的,疼到你连多1秒也不想忍受,是那种无法忍受的疼。这时才开始拉伸到你大腿根的筋,从这时起才会一点一点的练成真正的一字马

一字马进步一点点

How I Met Your Mother

发现How I Met Your Mother真是挺好看的,虽然已经出到第10季了,但每一集很快可以吸引你,基本上都是一个独立的故事,所以不用追剧也可以看得懂

觉得 How I Met Your Mother 比 Broken Girls 要好看的多,且单词也不是很难,句型也不是很难

感觉 How I Met Your Mother 的那些笑点,不是看了就觉得好笑的,而是需要你想一下,然后你会 Sly Smile

How I Met Your Mother

英文连读

英文句子有连读也就算了,单个单词内居然也有连读,我就真是醉了。面对随处可见的连读,即使你每个单词都发音正确切听的懂,面对整个句子时你依然听不懂也就不奇怪了,因为发音变了,这就是口语

左腿一字马比右腿要先成了

左腿一字马比右腿要先成了,屁股着地坚持了30秒,等右大腿根也完全着地时,左腿的一字马就算是成了,右腿的一字马还是没有摆脱翻跨的困扰,估计要纠正好长时间了,其实左腿一字马也有翻跨,但不算严重

域名迁移

  1. 域名没有备案的多米诺骨牌被推到了,第一天域名不能访问,第二天图片服务也被停止。总结:在正常备案的情况下,一定要保证域名可以正常访问呀,就是那个yourdomain.com,不带www的那个

  2. 域名转出服务商的过程真是漫长,本来想转到GoDadyy的,但续费真的是太贵了,且whois保护也要收费,价格也是不菲,只能放弃了

  3. 最终因为界面体验,还是使用了GoDadyy

  4. 换来换去觉得还是万网的域名管理系统比较好用 ​​​,其它的要么界面不友好,要么设置逻辑太奇葩,比如不用自带的DNS就不能设置域名解析

  5. 阿里云的cn域名不提供隐私保护,也是醉了,是不让提供这个功能么

关于减肥的一些注意事项

  1. 打算用跳绳锻炼小腿肌肉,深蹲锻炼大腿肌肉,它们不能再那么松弛了!

  2. 根据卡氏公式,得出减肥心率是150-170之间,刚跳绳半小时,心率为155,刚刚达标,脂肪请远离我吧

  3. 跳了两组绳,居然强度不够,腰还有点不舒服了,感觉出汗还没有昨天多。感觉从强度上还是HIIT来的更快一些,且效率较高

  4. 减肥期间最好不要每天称体重,免得受打击

  5. 减肥期间一定要丢掉所有零食

Docker运行的一些问题

  • 在docker里运行docker绝对是个坑,在mac os上这么做简直就是坑上加坑
  • docker服务的假死真是坑啊,命令没有任何输出,也没有错误提示。只能关闭docker进程,重启,问题解决 ​​​​

一些随笔记录

  1. 一字马进入迷惑期,感觉离我越来越远了

  2. 看书要复看,就是要复习,不然都是白看

  3. 韩天宇被判犯规,能有什么办法呢,谁让是韩国主场呢! ​​​等着的,咱2022北京冬奥会见

  4. Gboard 7.0.2 beta 终于支持中文输入法啦

  5. Are you sure that shelf is secure?