【Github】SSH连接Github上传项目(包含协作项目)

SSH连接Github上传项目的步骤

前置

Git的安装、Github的注册等这里不介绍了,以下内容要在git bash中完成(Windows系统),命令行就可以(Linux系统)

配置Git用户信息

1
2
git config --global user.name "Github账号用户名"
git config --global user.email Github账号邮箱

配置密钥

输入以下指令:

1
ssh-keygen -t rsa -b 4096 -C Github账号邮箱

如果需要修改密钥存放在系统中的位置,根据弹出内容修改即可,如果直接回车则存放在~/.ssh,公钥为id_rsa.pub,私钥为 id_rsa

(Linux系统)依次输入以下指令打开文件:

1
2
3
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub

(Windows系统)在C:\user\xxx\.ssh\中找到id_rsa.pub,打开文件:

将文件中的内容复制下来,在Github个人信息的Settings里面:

添加到SSH里就可以了:

创建项目并连接

Github上创建新项目,复制下它的SSH连接(项目主页Code下拉里的),git@github.com:xxx.git,在你自己本地项目的文件夹里打开命令行(Windows下右键Git Bash):

1
2
git init
git remote add origin git@github.com:xxx.git

或者,不用上面的代码,直接git clone git@github.com:xxx.git也可以。

这时候输入git remote -v应该会显示下面两行:

1
2
origin  git@github.com:用户名/项目名.git (fetch)
origin git@github.com:用户名/项目名.git (push)

即成功连接了

拷贝老项目到自己的新项目

1
2
3
4
git clone git@github.com:xxx.git
cd xxx
git remote set-url --push origin git@github.com:yyy.git
git init

xxx是老项目,yyy自己的项目

输入git remote -v,会出现一行以(fetch)结尾,一行以(push)结尾。如果在set-url之前,二者前面的github地址是一样的,而进行过上述最后一行代码后,二者就不一样了,fetch来自老项目,push来自新项目

1
git checkout -b 本地分支名 origin/远程分支名

增加项目协作者

度娘说,一种方式是用fork+pull request,另一种是加协作者,前者看着有些复杂,这里说后者。

在项目的settings-collaborators中添加用户,对方同意邀请。

协作者在配置Git用户信息后,(可选配置密钥通过ssh连接项目),就可以使用常用命令了!