git revert: 版本回退为一个新的commit,或回退到working tree
用tortoise git的操作方式:
首先查看log, 然后选中要撤销的所有版本. 比如提交了10个版本,要回退到第7个版本, 那么就选中8, 9, 10 这三个版本, 点击右键, 选择'revert...'
用tortoise git的操作方式:
首先查看log, 然后选中要撤销的所有版本. 比如提交了10个版本,要回退到第7个版本, 那么就选中8, 9, 10 这三个版本, 点击右键, 选择'revert...'
常见问题
RPA对账,就是将银行流水和财务系统流水核对, 查看有无错误.
巴比伦河
在巴比伦河边上
我们坐在地上
噢,我们就哭了起来
我们想起了锡安啊
恶徒们!
把我们囚禁
逼我们歌唱
在这陌生的土地
我们怎能再把主的歌唱?
我们口中的言语
我们心里的冥想
今夜,在您的注视下
就请您收下吧
在巴比伦河边上
我们坐在地上
噢,我们就哭了起来
我们想起了锡安啊
后记:
我觉得默认翻译的不好,比如把Zion翻译成家乡。这其中确有思乡之情,却又不仅仅是普通的思乡之情而已。要说比较接近的情感,可能更接近南朝后主李煜的《虞美人》中的“一江春水向东流”的情感,是国破人虏阶下囚的情感;巴比伦之囚40多年,囚于其中,永不知归,是在绝望中忧伤、绝望中思乡吧!
所以这不仅仅是思乡之情,还有家国之情、民族之情,还有我们不甚熟悉的宗教之情。
这是首小时候就熟悉的歌,听上去欢快明亮动感,20多年后的今天,长大了才知道,这竟是一首忧伤的歌。现在了解了犹太人的巴比伦之囚,看过《黑客帝国》知道了锡安,才了解了歌词背后的意义。原来,旋律的欢乐是为侵略和奴隶主假装出来的欢乐,而用他们听不懂的语言,才直白地向自己的主说出心里的痛苦。
附录:原版歌词和默认翻译。
By the rivers of Babylon, there we sat down
来到巴比伦河边,我们坐在你身旁
ye-eah we wept, when we remembered Zion.
耶,我们哭泣又悲伤,当我们想起了家乡
By the rivers of Babylon, there we sat down
来到巴比伦河边,我们坐在你身旁
ye-eah we wept, when we remembered Zion.
耶,我们哭泣又悲伤,当我们想起了家乡
When the wicked Carried us away in captivity
当邪恶的人把我们抓走囚禁
Required from us a song
还强迫我们把歌唱
Now how shall we sing the lord's song in a strange land
我们怎能在他乡唱得出圣歌
When the wicked Carried us away in captivity
当邪恶的人把我们抓走囚禁
Requiering of us a song
还强迫我们把歌唱
Now how shall we sing the lord's song in a strange land
我们怎能在他乡唱得出圣歌
Let the words of our mouth and the meditations of our heart
在陌生的异国他乡让我们心里的话儿和期望
be acceptable in thy sight here tonight
在今夜向你倾叙
Let the words of our mouth and the meditation of our hearts
让我们心里的话儿和期望在今夜向你倾叙
be acceptable in thy sight here tonight
在今夜向你倾叙
By the rivers of Babylon, there we sat down
来到巴比伦河边,我们坐在你身旁
ye-eah we wept, when we remembered Zion.
耶,我们哭泣又悲伤,当我们想起了家乡
By the rivers of Babylon, there we sat down
来到巴比伦河边,我们坐在你身旁
ye-eah we wept, when we remembered Zion.
耶,我们哭泣又悲伤,当我们想起了家乡
By the rivers of Babylon (dark tears of Babylon)
来到了巴比伦河边(哭泣的巴比伦)
there we sat down (You got to sing a song)
我们坐了下来(你要唱一首歌)
ye-eah we wept, (Sing a song of love)
我们哭泣(吟唱着一首爱的歌)
when we remember Zion. (Yeah yeah yeah yeah yeah)
当我们想起家乡(是啊~~)
By the rivers of Babylon (Rough bits of Babylon)
来到巴比伦河边(来到巴比伦河边)
there we sat down (You hear the people cry)
我们坐了下来(你听到人们哭泣)
ye-eah we wept, (They need their God)
我们哭泣(他们需要上帝)
when we remember Zion. (Ooh, have the power)
当我们想起巴比伦(噢我们就得到力量)
读 江苏泗阳政务监督微群 的《金德强哪有活路》有感,从金德强和掉线的北斗不知怎么就突然想到了刘慈欣《三体》中的人类和智子,下笔成诗,只能叹之。
在gitee上开了一个js项目做, 因为对于数字我实在是不敏感, 写成程序反而大大加快并加强了理解. 项目地址: https://gitee.com/littleprog/accounting
第十章的感悟如下:
这个链接https://www.javascripttutorial.net/object/3-ways-to-copy-objects-in-javascript/#:~:text=To%20copy%20an%20object%20in%20JavaScript%2C%20you%20have,the%20JSON.stringify%20%28%29%20and%20JSON.parse%20%28%29%20methods.%20提到了3个方法, 然而2个都是有问题的, 并不能深度复制.
> a = {a:{a:{a:1}}}
{ a: { a: { a: 1 } } }
> b = {...a}
{ a: { a: { a: 1 } } }
> b
{ a: { a: { a: 1 } } }
> a.a.a.a = 2
2
> b
{ a: { a: { a: 2 } } }
>
> b = Object.assign({},a)
{ a: { a: { a: 2 } } }
> a.a.a.a = 3
3
> b
{ a: { a: { a: 3 } } }
> b = JSON.parse(JSON.stringify(a))
{ a: { a: { a: 3 } } }
> a.a.a.a = 4
4
> b
{ a: { a: { a: 3 } } }
此文验证过, 真正正确的文章.
看完发现, 没有js原生的方案进行深度复制...
其中提到了v8原生的深度copy方式. node中也支持
const structuredClone = obj => {
return v8.deserialize(v8.serialize(obj));
};
注:皆是错原为千般错。前几日骑车时想到“皆是错”更为工整后,修改。
在node中运行:
>function x(){a = 1}
undefined
> a
Thrown:
ReferenceError: a is not defined
> x()
undefined
> a
1
可以发现, 不加var
的话, 运行一个函数内部的赋值, 这个值居然就变成全局变量!
> function y(){var b = 1}
undefined
> b
Thrown:
ReferenceError: b is not defined
> y()
undefined
> b
Thrown:
ReferenceError: b is not defined
加了var的话,就会把变量作用域限制在函数体内.
https://stackoverflow.com/questions/6089058/nodejs-how-to-clone-an-object
function clone(a) {
return JSON.parse(JSON.stringify(a));
}
let cloned = Object.assign({}, source);
let cloned = { ... source };