xyecho - just my notes 2024-07-19T06:03:24+00:00 1447675994@qq.com vscode 插件列表 2024-04-09T21:00:30+00:00 kane http://blog.xyecho.com/vscode-plug-in-list 常有插件

1、Draw.io Integration : https://marketplace.visualstudio.com/items?itemName=hediet.vscode-drawio 2、Git Graph https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph 3、sonhero.io tools for VS Code: https://marketplace.visualstudio.com/items?itemName=JSONHero.jsonhero-vscode 4、AI Coding Autocomplete codeium https://marketplace.visualstudio.com/items?itemName=Codeium.codeium 5、Project Manager https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager 6、golang https://marketplace.visualstudio.com/items?itemName=golang.Go 7、 Markdown Preview Enhanced https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced

Tutorial :https://shd101wyy.github.io/markdown-preview-enhanced/#/zh-cn/

配置

1、https://github.com/kakabei/configbox/tree/main/vscode

]]>
常用命令 git 2024-04-01T19:21:12+00:00 kane http://blog.xyecho.com/frequently-used-command-reference-git 全局配置
git config --gobal core.autocrlf false
git config --global user.name "carlos"
git config --global user.email "1447675994@qq.com"

git init   // 初始化一个仓库

sudo git config --system alias. st status
sudo git config --system alias. ci commit
sudo git config --system alias. co checkout
sudo git config --system alias. br branch

git config --global alias. st status
git config --global alias. ci commit
git config --global alias. co checkout
git config --global alias. br branch
git config --global color. ui true

常用操作


git add  .            # 添加到缓冲区 可以加 参加 -A
git status            #  查看当前状态
git commit -m "XXX"   # 提交代码
git diff              #  查看不同
git log               # 查看日志
git log --pretty=oneline
git reset --hard HEAD^
git rm # 文件名(包括路径) 从git中删除指定文件  # 删除文件

git reflog # 记录你的每一次命令

git checkout -- file. # 可以丢弃工作区的修改  命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
git reset HEAD file. # 可以把暂存区的修改撤销掉

git remote add origin git@server-name:path/repo-name.git # 要关联一个远程库;
git push -u origin master  # 使用命令第一次推送master分支的所有内容

git clone #  克隆一个本地库:
git clone git@github.com:michaelliao/gitskills.git
git checkout -b dev # 创建dev分支,然后切换到dev分支

git branch  #命令会列出所有分支,当前分支前面会标一个-号
git merge dev  # 把dev分支的工作成果合并到master分支上
git branch -d dev  # 删除dev分支了
git merge --no-ff -m "merge with no-ff" dev  # 合并分支代码 --no-ff参数,表示禁用Fast forward 这样,从分支历史上就可以看出分支信息。

git stash  # Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash apply # 恢复,但是恢复后,stash内容并不删除
git stash drop #来删除
git stash pop,#恢复的同时把stash内容也删了
git branch -D feature-vulcan  #强行删除
 

本地暂存 git stash

git 把 stash 内容存在某个地方了,但是需要恢复一下,有两个办法

  • 一是用git stash apply 恢复,但是恢复后,stash 内容并不删除,你需要用 git stash drop 来删除;
  • 另一种方式是用 git stash pop,恢复的同时把 stash 内容也删了
git stash list [<options>]
git stash show [<stash>]
git stash drop [-q|--quiet] [<stash>]
git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
git stash branch <branchname> [<stash>]
git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
         [-u|--include-untracked] [-a|--all] [<message>]
git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
         [-u|--include-untracked] [-a|--all] [-m|--message <message>]]
         [--] [<pathspec>…​]]
git stash clear
git stash create [<message>]
git stash store [-m|--message <message>] [-q|--quiet] <commit>git_stash.html

标签

git tag <name>  # 就可以打一个新标签
git tag      # 查看所有标签
git tag v0.9 6224937   #v0.9标签名 6224937 commit id
git show <tagname>  # 查看标签信息 
git tag -d <tagname> # 删除标签
git push origin <tagname> # 可以推送一个本地标签;
git push origin --tags # 可以推送全部未推送过的本地标签;
git tag -d <tagname> # 可以删除一个本地标签;
git push origin :refs/tags/<tagname> # 可以删除一个远程标签。

分支

Git鼓励大量使用分支:

git branch       # 查看分支
git branch <name>  # 创建分支
git checkout <name> # 切换分支
git checkout -b <name>  # 创建+切换分支
git merge <name>   # 合并某分支到当前分支
git branch -d <name> # 删除分支
git branch -v # 查看分支 
git branch A1.0 # 查看分支 
git checkout A1.0 # 切换分支
git branch -d A1.0 # 删除分支   // 如果该分支没有合并到主分支会报错
git branch -D A1.0 # 强制删除

git checkout B  
git merge A   # 把A合并到B中 

git fetch --prune #  刷新本地和远程一样

git push origin feature/1.15.1-kane   // 提交分支
git ckeckout  -b feature/1.15.1-kane # 创建切换分支:

git 提交一个分支,发现远程已经被删除,如何再次提交 可以用 :git push origin develop_2.0.4

Git 撤销合并——如何在 Git 中恢复之前的合并提交

分支合并

比如,如果要将开发中的分支(develop),合并到稳定分支(master),

首先切换的master分支:git checkout master

然后执行合并操作:git merge develop

如果有冲突,会提示你,调用git status查看冲突文件。

解决冲突,然后调用 git addgit rm 将解决后的文件暂存。

所有冲突解决后,git commit 提交更改。

忽略文件.gitignore

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件 忽略文件的原则是:

  • 忽略操作系统自动生成的文件,比如缩略图等;
  • 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  • 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

这个仓库要忽略的文件

  • 忽略所有 .a 结尾的文件 -.a
  • 但 lib.a 除外 !lib.a
  • 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO
  • 忽略 build/ 目录下的所有文件 build/
  • 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/-.txt
    .project
    .pydevproject
    .settings/
    -.ncb
    -.suo
    -.user
    .cproject
    -.o

撤销修改

未使用 git add 缓存代码

撤销指定文件: git checkout -- filepathname 撤销所有的文件修改可以使用 git checkout . 对新建文件无效

已经使用了  git add 缓存了代码

撤销指定文件:  git reset HEAD filepathname 撤销所有的文件修改可以使用  git reset HEAD . 清除 git  对于文件修改的缓存。相当于撤销 git add 命令所在的工作。

已经用 git commit  提交了代码

来回退到上一次commit的状态 git reset --hard HEAD^ 

此命令可以用来回退到任意版本:git reset --hard  commitid

基于 Merge Request 的开发流程 : https://wikinote.gitbook.io/git-learning/gitlab-cao-zuo/gitlab-merge-request 如何撤销 Merge Request?https://wikinote.gitbook.io/git-learning/gitlab-cao-zuo/gitlab-merge-request-revert

.gitconfig 配置

[core]
        repositoryformatversion = 0
        filemode=true
        bare=false
        logallrefupdates=true
        symlinks=false
        ignorecase=true
        hideDotFiles=dotGitOnly
        autocrlf=true
        quotepath=false

[remote "origin"]
        url = https://github.com/alonegarden/alonegarden.github.io.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name=cxxlxx
        email=xxxxxxxxxx@qq.com
[color]
        ui=true
[alias]
        co=checkout
        ci=commit
        br=branch
        st=status
        last=log -1
        lg="log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative"
        lgo="log origin/master --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative"

遇到的问题

git add . 之后出现 :

The file will have its original line endings in your working directory

要设置一下 git config --global core.autocrlf false

github

协议: github常见开源协议概括

表情:https://github.com/zhouie/markdown-emoji 数据牌是一种轻量级的徽章: https://shields.io/

GitHub CI Gem Version npm version

<p align="center">
<img src="https://github.com/crispgm/resume/workflows/build/badge.svg" alt="GitHub CI" />
<a href="https://badge.fury.io/rb/jekyll-theme-minimal-resume">
<img src="https://badge.fury.io/rb/jekyll-theme-minimal-resume.svg" alt="Gem Version" />
</a>
<a href="https://badge.fury.io/js/hexo-theme-crisp-minimal-resume">
<img src="https://badge.fury.io/js/hexo-theme-crisp-minimal-resume.svg" alt="npm version" />
</a>
</p>

例子 : https://github.com/kakabei/jekyll-resume

多帐号配置

由于我同时使用了github和码云。所以必须同时配置两个git帐号。 我的所在的环境是windows. (想必linux下也是如此)

$ cd C:\Users\xxxx\.ssh

$ ssh-keygen -t rsa -C "youremail@xx.com"  

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/xxxx/.ssh/id_rsa): ym
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ym.
Your public key has been saved in ym.pub.

要在 Enter file in which to save the key (/c/Users/xxxx/.ssh/id_rsa) 后输入你的文件名。 在C:/Users/xxxx/.ssh下:(xxxx为用户名) 创建一个config文件,(注意没有后缀)

Host github.com  
    HostName github.com  
    PreferredAuthentications publickey  
    IdentityFile ~/.ssh/id_rsa  
  
Host git.oschina.net 
    HostName git.oschina.net  
    PreferredAuthentications publickey  
    IdentityFile ~/.ssh/ym 
]]>
常用命令 curl 2024-04-01T19:21:12+00:00 kane http://blog.xyecho.com/frequently-used-command-reference-curl curl 常见的技巧

github 地址:https://github.com/curl/curl

参数:

-o <file>    # --output: 写入文件
-u user:pass # --user: 验证
-v           # --verbose: 在操作期间使 curl 冗长
-vv          # 更冗长
-s           # --silent: 不显示进度表或错误
-S           # --show-error: 与 --silent (-sS) 一起使用时,显示错误但没有进度表
-i           # --include: 在输出中包含 HTTP 标头
-I           # --head: 仅标头

数据:

# --data: HTTP post 数据
# URL 编码(例如,status="Hello")
-d 'data'

# --data 通过文件
-d @file

# --get: 通过 get 发送 -d 数据
-G

头信息 Headers:

-A <str>     # --user-agent
-b name=val  # --cookie

# 从 URL 的指定文件加载 cookie
-b, --cookie FILE
# 将 cookie 从 URL 保存到指定文件
-c, --cookie-jar FILE

-b FILE          # --cookie
-H "X-Foo: y"    # --header
--compressed     # 使用 deflate/gzip 

ssl :

    --cacert <file>
    --capath <dir>
-E, --cert <cert>     # --cert: 客户端证书文件
    --cert-type       # der/pem/eng
-k, --insecure        # 对于自签名证书

示例

1、GET 请求

curl -I https://www.baidu.com                                          # curl 发请求
curl -v -I https://www.baidu.com                                       # 带有详细信息的 curl 发请求
curl -X GET https://www.baidu.com                                      # 使用显式 http 方法进行 curl
curl --noproxy 127.0.0.1 http://www.stackoverflow.com                  # 没有 http 代理的 curl
curl --connect-timeout 10 -I -k https://www.baidu.com                  # curl 默认没有超时
curl --verbose --header "Host: www.mytest.com:8182" www.baidu.com      # curl 得到额外的标题
curl -k -v https://www.google.com                                      # curl 获取带有标题的响应

2、POST 请求

url -d "name=username&password=123456" <URL>    # curl 发请求
curl <URL> -H "content-type: application/json" -d "{ \"woof\": \"bark\"}"    # curl 发送 json

3、高级用法

curl -L -s http://ipecho.net/plain, curl -L -s http://whatismijnip.nl            # 获取我的公共 IP撒··
curl -u $username:$password http://repo.dennyzhang.com/README.txt                # 带凭证的 curl
curl -v -F key1=value1 -F upload=@localfilename <URL>                            # curl 上传
curl -k -v --http2 https://www.google.com/                                       # 使用 http2 curl
curl -T cryptopp552.zip -u test:test ftp://10.32.99.187/                         # url ftp 上传
curl -u test:test ftp://10.32.99.187/cryptopp552.zip -o cryptopp552.zip    curl  # ftp 下载
curl -v -u admin:admin123 --upload-file package1.zip http://mysever:8081/dir/package1.zip    # 使用凭证 curl 上传

4、查询当前机器的出口IP

 (base) C:\tools> curl cip.cc
IP      : 121.12.81.78
地址    : 中国  广东  江门
运营商  : 电信

数据二  : 广东省深圳市 | 电信

数据三  : 中国广东省深圳市 | 电信
URL     : http://www.cip.cc/121.12.81.78

]]>
《月亮与六便士》 毛姆 2023-06-01T19:13:00+00:00 kane http://blog.xyecho.com/月亮与六便士

]]>
《面纱》 毛姆 2023-05-27T19:13:00+00:00 kane http://blog.xyecho.com/面纱

我最不喜欢的就是讲人性,但很多故事也是深刻的讲人性才有了冲突和升华。

《面纱》让人知道,我们看到人和事物就是人性上装饰的面纱,一切感觉很美好,和谐。可面纱之下才是真实的人性丑恶,很多人没看到过,很多人不相信人性如此,很多人就是喜欢表面的面纱。

人生的常态是什么,是无论你喜欢否,知道否,面纱一直存在。大部分人并知道真实是什么,也不想知道真实是什么。

这书和毛姆《月亮与六便士》、《刀锋》重点不一样。对比之下,《刀锋》和《月亮与六便士》更喜欢些吧。我不喜欢探讨太多的人性。

]]>
《刀锋》 毛姆 2023-05-02T19:13:00+00:00 kane http://blog.xyecho.com/刀锋

拉里一直在追寻他活着的意义,在救赎自己,也在救赎身边的人。 最终,他也不知道是否已经找到,或许找不到,或许根本没有。但他放下了,或说顿悟了。 至此,他又回到了世俗的生活。却也不是当初的自己了。

感觉他什么都可以放下,什么都可以不在意。不知道在空军时他好友的死给他带来了什么样的冲击。他才开始他与众不同的道路。

总有人追求自己的世界,总有人的生活有别于世俗世界。

《月亮与六便士》的斯特里克兰同样走这不同于世俗的道路,但如疯狂,如疯子变态。不被世俗理解甚至被嘲笑厌恶。相比之下拉里的道路不被理解,但也温柔很多。

斯特里克兰追求表达自己,拉里追求救赎自己。

不明白为什么有那么多人喜欢当“人生导师”,肆无忌惮的指点和批评别人的生活或人生呢。可能最俗的人就是你自己。

人是可以有很多不同的道路去走,同样也应该宽容你身边的人的各种格格不入的生活态度和行为举止。可能他在救赎自己。

]]>
软件工程文化的思考 2023-02-12T10:12:15+00:00 kane http://blog.xyecho.com/think-about-software-engineering 1、编程是指写代码的直接行为。

2、软件工程用构建和维护代码的工具和流程, 保持代码的长期价值。因为涉及到流程,所以软件工程更多的团队行为。

3、软件工程的最佳实践: 可持续、规模化。

4、团队的协作,沟通是手段,业务产出才是目的。

5、协同和评审是依赖团队保证自己在正确路上。

6、团队可以让我们获得集体智慧。

7、团队应该有一个安全环境或容错空间,让新人有信心提出问题。

8、沟通时,要分清对方是意图、事实、情绪,还是期待。

9、导师的三个能力: 一、熟悉团队流程和系统的经验; 二、向其他人解释事情的能力; 三、评估对方需要多少帮助的能力,主动询问帮助,不要过度唠叨。

]]>
复盘文档的要素 2023-02-10T10:12:15+00:00 kane http://blog.xyecho.com/review-the-main-elements-of-document 复盘文档应该包括以下要素

1、事件的摘要。简短说明情况,什么时间什么业务什么原因出现什么情况,目前是什么状况。

2、具体事件。整个事件时间线,问题出现、问题发现、问题调查、问题解决。以时间线详细说明。

3、致该事件的主要原因,影响程度。

4、为什么没有及时发现,是否有系统演习,为什么没有覆盖到。

5、可立即修复问题的具体措施,防止事件再次发生的具体措施,经验教训。

]]>
说话的方式 2023-01-10T10:12:15+00:00 kane http://blog.xyecho.com/the-way-you-say 汇报或者表达时要按以下主要步骤:

结论 –> 原因 –> 措施 –>建议

1、先把结论简单说一下

2、然后解释原因

3、并给出措施和建议。

节奏:

把握好沟通的节奏,如果没有办法把握整体的节奏,则把握好自己的节奏。

好好倾听,别人不对,也要好好倾听,不要随便打断别人节奏。

如果被别人打断了, 就停下来,让他先说,他说完之后,再按自己的节奏说。

如何很好的回答别人的提问?

如果自己的观点已经不在对方的眼界认识之内,停止阐明观点。怎么说也没有用。

如果对方的观点,难以理解,可能已经不在眼界认识之内,不要急于否定,反驳。好好听,好好记。

]]>
沟通原则 2023-01-09T10:12:15+00:00 kane http://blog.xyecho.com/principles-of-communication 1、耐心听别人把话说完。

2、不预设立场,明确搞明白对方的立场和表达的结论。

3、解决问题,要站在对方的立场上考虑问题,同时一定要对方感觉到这一点。

4、不要试图去证明对方是错的。

5、用“我可能没有表达清楚” 而不是 “你不懂”。

6、多说对方爱听的话,如夸奖、鼓励,对方的兴趣,要真诚。

7、清晰,准确的表达自己的意图,观点。

8、沟通完成后,做备忘录,双方确认。

9、多做预案、多做练习。

10、 沟通中有任何问题,事后都要做及时复盘。

11、事情总有意外发生,事后复盘即可,不必太在意了。

12、共赢、合作是都是最优化方案,不占尽别人的所有,留有余地。

13、沟通是解决问题,不是制造问题。

14、先解决情绪,再解决问题。

15、重要的事情,晚点回复。回复要正式,先过脑子,打草稿,检查有没有错别字。

16、紧急事件:语音,电话,非紧急事件,微信留言; 复杂事件:发邮件,然后微信或电话提醒。

17、说错话、做错事,要马上道歉。

]]>