标签归档:github

GitHub 个人仓库批量备份到自建 Gitea

这是一个自动将 GitHub 仓库镜像到 Gitea 的 Shell 脚本。支持批量同步所有仓库,可以设置跳过特定仓库,并具有良好的错误处理机制。

由于 GitHub 仓库较多,因为各种原因担心数据风险和访问困难。代码托管在自建 gitea 虽然访问快,但是脱离了生态很难跟其他的 PaaS 平台对接。

于是就编写了一套脚本,这套脚本从 Github api 获取 repo 清单,逐个 mirror 后推送到 gitea,最后收集同步报告发送邮件通知。结合 crontab 可实现自动化的 git repo 同步备份。

花了一点时间来写,干脆分享出来,可以i根据自己的需求定制。

邮件效果:

邮件截图

运行效果:

运行截图

Emacs 集成 Github Copilot

copilot.el 是一个非官方实现的 Github Copilot 插件,实测在 x86/arm64 、macos/debian 下均可使用,下面介绍最关键的几个配置步骤。

准备

  • Emacs >= 27
  • 安装 node.js
  • emacs 安装好 e, editorconfig 插件

以上是对您环境最基础的要求,确认无误后继续下一步。

配置 copilot.el

官方可以直接引用 github 链接作为插件,但考虑到网络环境问题,在这里使用手动克隆代码库来引用。

运行以下命令将 copilot.el 克隆到 emacs 配置文件夹:

$ cd ~/.emacs.d
$ git clone https://github.com/zerolfx/copilot.el.git

克隆完毕后,在 emacs 配置中将 copilot.el 载入,并配置一些必要的内容:

比如将以下内容写入 ~/.emacs.d/init.el

;;copilot
(add-to-list 'load-path
         (expand-file-name (concat user-emacs-directory "copilot.el")))
(require 'copilot)
;; copilot automatically provide completions
(add-hook 'prog-mode-hook 'copilot-mode)

; complete by copilot first, then auto-complete
(defun my-tab ()
  (interactive)
  (or (copilot-accept-completion)
      (ac-expand nil)))

(with-eval-after-load 'auto-complete
  ; disable inline preview
  (setq ac-disable-inline t)
  ; show menu if have only one candidate
  (setq ac-candidate-menu-min 0))

(define-key copilot-completion-map (kbd "
<tab>") 'copilot-accept-completion)
(define-key copilot-completion-map (kbd "TAB") 'copilot-accept-completion)

以上配置均来自代码库最基础的配置,可以实现最直观的功能。

使用

配置完毕后即可开始使用,首先需要登陆:

# 登陆
M-x copilot-login

如果一切顺利,完成授权,就可以开始使用了。

重启 Emacs,尝试一下吧:

参考文献

Ubuntu 安装 GitKraken 并汉化

GitKraken 是一款超好用的 git 可视化(gui)工具,但是官方不提供多语言支持,今天就以 Ubuntu 平台为例介绍一下安装方法。

安装及汉化

首先在 GitKraken 官网下载安装包:

如果是 debian 系操系统可下载其中的 deb 版本,之后安装即可。

至于汉化,使用 Github 上的 k-skye/gitkraken-chinese 这个仓库即可完成。

方法很简单,安装好之后,使用汉化语言包替换原有的语言包即可。

# 首先备份官方语言包
mv /usr/share/gitkraken/resources/app.asar.unpacked/strings.json /usr/share/gitkraken/resources/app.asar.unpacked/strings.json.bk
# 从github拉取资源并替换
wget https://github.com/k-skye/gitkraken-chinese/raw/master/strings_8.1.1.json -O /usr/share/gitkraken/resources/app.asar.unpacked/strings.json

# 如果在国内访问 github 有困难
# 可使用 fastgit 提供的 github 国内镜像拉取
wget https://hub.fastgit.org/k-skye/gitkraken-chinese/raw/master/strings_8.1.1.json -O /usr/share/gitkraken/resources/app.asar.unpacked/strings.json

之后重启 GitKraken 即可。

https://imagehost-cdn.frytea.com/images/2021/12/30/image031b80c4bef3b2af.png

参考文献

一键在 vs code online 中打开任意 github 仓库

之前有大佬开发过一个项目 [github1s](https://github.com/conwnet/github1s) ,利用 GitHub action ,仅需在任意 github 仓库在 github 后面加上 1s 即可在一个在线的 VS code 中打开这个项目。

https://imagehost-cdn.frytea.com/images/2021/09/03/2021-09-03-5.51.4487ec1eade813be27.png

就在前不久,Github 官方发布了类似的功能,进一步简化了这个过程,仅需在仓库的 web 页面,按下 . 键,没错就是键盘上那个句号,github 就会打开一个在线的 VS code 并开启该仓库,您就可以更方便的浏览这个仓库了。

https://imagehost-cdn.frytea.com/images/2021/09/03/2021-09-03-5.54.000522906cfa16b653.png

两个方式原理类似,都是跳转到另一个网址,之后使用该路径中的地址获取到仓库代码并显示,不得不说,这个功能真的是用起来太爽了,各位好好使用。

参考文献

WebStorm中使用Git同步代码到Github

WebStorm下配置GitHub实现代码同步

项目开发时使用GitHub作为公共代码仓库托管代码,可以极大的提高团队合作效率,同时也可以实现代码云端存储等,方便自己也方便大家!下面记录一下自己配置webstorm同步github的过程,仅供参考。

安装git

没什么说的,直接去git官网下载安装即可。

git官网

准备SSH

在进行下一步之前先检查一下计算机中是否有已存在的ssh,打开如下目录C:\Users\songt,其中songt为您的用户名,在该目录下检查是否存在.ssh目录。

情况一-若存在,则表示电脑中存在ssh

可直接复制其中的id_rsa.pub中的内容进行下一步。

情况二-不存在,创建ssh

打开git bash,可通过快捷方式打开,也可通过鼠标右键打开。

打开后在其中运行如下代码

ssh-keygen -t rsa -C “你的邮箱”

我的输入如下图所示

上述代码我运行了两次,暂时不清楚原因。

之后就是三次回车,即可生成ssh。

在我的电脑C:\Users\songt\.ssh目录下可以找到生成的id_rsa.pub文件。

使用ssh

接下来就要配置github,在github中添加我们的git进入github的密钥啦!

打开github

进入个人设置

选择左侧的SSH and GPG keys选项

添加ssh

输入title和key即可,其中title自定义,key内容为C:\Users\songt\.sshid_rsa.pub文件中的内容。(注:文件直接使用记事本打开即可)

ok!

测试ssh是否配置成功

在git bash中运行如下代码

ssh -T git@github.com

若询问Are you sure you want to continue connecting (yes/no)?则输入yes

输入类似下列信息即连接成功

Hi songtianlun! You've successfully authenticated, but GitHub does not provide shell access.

webstorm

配置GitHub

打开webstorm,在file-settings中搜索github,输入自己的账号密码。

若没有异常提醒,就可以看到自己的GitHub了。

配置git

在settings中查找git,将git的安装路径输入,点击text,若没有异常提示则应该可以看到如下界面。

尽情使用吧

代码拉取

准备工作做好之后就可以上传代码啦,打开webstorm,如图

之后会弹出如下窗口,填写实例如图

其中URL填写代码仓库的地址,在图示位置中可以找到。

directory中填写本地项目地址,即您的电脑中存储该项目的路径。

如果上传路径和已有仓库同名产生冲突,直接换个文件夹的路径就好了。

下面信息写给我的同组伙伴们,实践作业的代码仓库地址如下:https://github.com/songtianlun/Gis-ChangChun-Info.git,在url中填入这个地址

注,在在这里的操作是直接将代码仓库中的文件拉取到选择的本地路径,这个路径下的文件夹要保证为空或不存在,webstorm可直接使用这个文件夹作为工程文件打开。

点击clone就会将代码仓库中的内容直接拉取到本地,如图所示。

代码上传

在本地对代码进行了修改,需要上传时,使用VCS-Commit,如图。

点击之后弹出如下窗口

蓝色的文件表示待提交文件,在commit message中简要描述做的修改操作,之后点击commit and push。

成功提交会弹出以下提示。

在GitHub代码仓库中就可以看到刚刚提交的内容了。

在webstorm中如果仅使用commit,不push,则在github中看不到提交的代码,代码仅仅是提交给了git,因此注意提交代码需要使用commit and push!