💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## GitHubbin - 注册GitHub帐号 ~~自己用[码云](http://git.oschina.net/),进行实际操作,但文章依然使用了Github名称。~~ ### 团结力量大 目前为止你建立的 repository只存在你自己的本地电脑上,虽然方便,但若想要与别人分享或合作时就显得困难许多了。别担心,这就是为什么我们需要GitHub! ### 步骤:建立一个GitHub 帐号 GitHub 是一个让大家不论在哪里都可以上传他们的Git 项目,并轻松合作的网站。 前往GitHub并注册一个免费的帐号。 **水啦!欢迎欢迎!** ### 步骤:告诉Git 你的GitHub 帐号 告诉Git你的GitHub帐号,这个GitHub帐号将会在之后的内容中用到。注意输入时必须与你在GitHub上建立的完全一致──**大小写必须一致**。 告诉Git 你的GitHub 帐号: ``` $ git config --global user.username <USer_NamE> ``` ### 连接线上 Git 托管平台 公钥是git识别您的用户身份的一种认证方式,通过公钥,您可以将本地git项目与git服务器建立联系,然后您就可以很方便的将本地代码上传到git服务器上,或者将git服务器上代码下载到本地了。 >其中`~/.ssh/id_rsa`是私钥文件,`~/.ssh/id_rsa.pub`是公钥文件。注意私钥文件要严加保护,不能泄露给任何人。 在**Mac**上打开终端输入: ~~~ $ open ~/.ssh ~~~ 即可,打开文件夹,就可以找到`id_rsa.pub`文件了。 你可以按如下命令来生成**sshkey** : ``` ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Generating public/private rsa key pair... # 三次回车即可生成 ssh key (最好设置个好名字,如id_rsa.github和id_rsa.github.pub) ``` 查看你的public key,并把他添加到 Git @ OSC [SSH key添加地址](#) ``` cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc.... ``` 添加后,在终端(Terminal)中输入 ``` ssh -T git@git.oschina.net ``` 若返回 ``` Welcome to Git@OSC, yourname! ``` 则证明添加成功。 ### GIT多个项目使用不同的公钥和私钥 前几天遇到个情况,在github上有多个项目,在公司内部也有两个用Git管理的项目,这几个都要用,而 且它们的公钥和私钥还都不一样,肿么办???? 1、新建user2的SSH Key 新建SSH key: ``` $ cd ~/.ssh $ ssh-keygen -t rsa -C "mywork@email.com" ``` 新建工作的SSH key 设置名称为id_rsa_work ``` Enter file in which to save the key (C:/Users/Administrator/.ssh/id_rsa): id_rsa_work ``` 2、新密钥添加到SSH agent中因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中: ~~~ $ ssh-add ~/.ssh/id_rsa_work ~~~ 如果出现`Could not open a connection to your authentication agent`的错误,就试着用以下命令: 打开ssh-agent: ``` $ ssh-agent bash ``` 添加私钥: ``` $ ssh-add ~/.ssh/id_rsa_work ``` 3、修改config文件 在`~/.ssh`目录下找到config文件,如果没有就创建: ~~~ $ vim config ~~~ ---------------------------------------------- ``` # 该文件用于配置私钥对应的服务器 # Default github user(first@mail.com) Host "github.com" HostName "github.com" User "git" IdentityFile "~/.ssh/id_rsa" # second user(second@mail.com) # 建一个github别名,新建的帐号使用这个别名做克隆和更新 Host "github2" HostName "github.com" User "git" IdentityFile "~/.ssh/id_rsa_work" ``` ---------------------------------------------- 然后测试一下: ``` $ ssh github2 ``` 如果到这里你没有成功的话: (`ssh -vT git@github.com` **-v** 是输出编译信息,然后根据编译信息自己去解决问题吧。就我自己来说一般是config里的host那块写错了。) #### 补充一下 如果之前有设置全局用户名和邮箱的话,需要`unset`一下 ``` git config --global --unset user.name git config --global --unset user.email ``` 然后在不同的仓库下设置**局部的用户名和邮箱** 比如在公司的repository下 ``` git config user.name "yourname" git config user.email "youremail" ``` 在自己的github的仓库在执行刚刚的命令一遍即可。 这样就可以在不同的仓库,已不同的账号登录。 ### git不支持空目录的提交 由于 git 在设计上就没有考虑空文件 [Kernel.org: Git FAQ](https://git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F) 建议你在添加目录的时候添加 `.keep` 之类的占位文件或者初始化`README.md`文件,空文件即可。 防止在一些开启SVN支持的网站上,`commit`提交出现空文件错误!