其实平时用GitHub或者Git比较少,因为主要是写自己用的和科研相关的代码。不过随着代码越来越多,自己管理和找起来也不方便,特别是:实现某个新的功能,或者写新的一段代码的时候,总是习惯旁边打开自己之前的代码作为参考。所以如果能有一个支持高效检索的自己的代码库,就会方便很多。
GitHub和Gitee都看了一下,发现在Gitee上没找到搜索自己Repo或自己所有相关项目的功能(在页面里只有一个所谓的“搜开源”的搜索框)。话说,这个功能很难想到吗?Gitee连这么简单的需求都看不到?实现不了?
另外,GitHub现在也支持私有Repo了,所以基本能符合我的需求。参考了一些教程,例如:
https://www.cnblogs.com/yiven/p/8465054.html
应该说这个教程写的是很清楚的,但是在操作Repo时的内容写错了,具体来讲,我们通过SSH认证之后,应该通过SSH clone或者新建repo,而不应该再通过http操作,而上面这个页面中提到的:
#Gitee
$ git clone https://gitee.com/yourname/repository
#Github
$ git clone https://github.com/yourname/repository.git
#yourname 您在码云或github注册的用户名
#repository 您创建的远程仓库名称
这都是通过http进行操作呀哥们!如果我们按照这个进行操作了,会报出:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: 'https://github.com/yourname/repository.git/' 鉴权失败
这个原因也是很好理解的,按照上面给出的链接:https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
简单来说,就是现在已经不能通过用户名密码通过命令行登陆GitHub了,只能通过SSH和two-factor authentication来进行登陆。呵呵呵,所以说,上面写博客的这个哥们,写的时候是可以通过命令行登陆的,但这样他操作,就意味着前面设置的SSH就没有用了呀。
具体来讲,我们有两种方法操作GitHub的repo:
- An HTTPS URL like
https://github.com/user/repo.git
- An SSH URL, like
git@github.com:user/repo.git
所以设置好SSH后,也就是说看到:
Hi yourname! You've successfully authenticated, but GitHub does not provide shell access.
之后,我们在任意目录下,想要通过SSH操作GitHub,首先应该输入:
ssh -T git@github.com
然后,例如我们要Clone GitHub上的一个私有repo:
git clone git@github.com:yourname/repository.git
然后我进入到这个repo文件夹中,增加一些我想备份的代码,然后:
git add .#将本地所有文件加入到git
git commit -m "commit message"#commit更新
git push origin master#push到origin和master
这样就可以实现自己项目在自己的GitHub private repo中的备份了,然后就可以愉快地使用GitHub的版本管理和强大的搜索功能了。