首先陈诉一下git和github,git是控制版本的工具github是一个平台用来存放代码文件,安装git可以连接github的一个仓库,可以往仓库里面提交代码,也可以更新更新仓库里面的代码,也就是说,在你的本地安装一个git,再在你的云服务器上安装一个git,同时连接一个github仓库,然后在本地写代码时通过本地的git提交到github的仓库,再再云服务器上进行更新代码,这样就可以实现本地连接上云服务器。你也可以做到自动把仓库里面的代码更新到服务器(不用手动去服务器上执行git的更新操作),我自己还没有去实现初步想到的思路是再云服务上设置定时任务隔多少时间执行git的更新操作。
接下来是git在云服务器(我用的是centos7.5)上的安装:
sudo yum install git
输入这条命令没什么意外就安装成功了。输入:
git --version
如果出现了版本,没有提示错误那么git安装成功。接下来是在github创建一个用户,https://github.com,这是网址。
回到你的云服务器,使用命令:cd ~回到当前用户的家目录下,然后使用命令:
ssh-keygen -t rsa -C "邮箱地址”
创建公钥和私钥对,如果提示-bash ssh-keygen:command not found ,那么使用命令
yum -y install openssh-clients安装openssh。
接下来会有三个提示,一个是Enter file in which to save the key(/root/.ssh/id_rsd): 这个是提示你选择生成的秘钥保存路径。不填即为 括号中的默认路径。另一个提示:Enter passphrase(empty for no passphrase): 这是提示你输入一个密码,直接回车,即无密码,如果输入了密码,则在每次提交项目的时候都需要你在这里输入的这个密码,如果没有输入,则提交时不需要密码。第三个提示是:Enter same passphrase: 这个意思就是让你确认第二步中输入的密码,如果第二步没有输入密码,那么这一步直接回车即可。
操作完成之后再本目录下创建了一个.ssh的隐藏文件,通过ls -a命令可以查看。
使用cd命令打开.ssh目录,可以看到在.ssh目录下有3个文件:authorized_keys、id_rsa、id_rsa.pub,其中id_rsa是私钥,id_rsa_pub是公钥。
登录你的github账户,点击你的头像,找到settings。在跳转页面中找到SSH And GPG Keys,选择它,然后再回到你的l云服务器,打开id_rsa.pub文件,拷贝公钥。然后在回到github的SSH And GPG Keys,选择New SSH Key,将你从云服务器上拷贝到的内容粘贴在Key 文本框中,Title文本框,你可以随便填写。接下来点击Add Key,这个时候如果操作无误的话,github就要给你的关联账号发邮件
测试ssh key是否成功,使用命令:
ssh -T git@github.com,出现的交互式对话中选择yes,接下来如果出现You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。如果出现“Agent admitted failure to sign using the key.Permission denied (publickey).”这个错误的话,在命令行下执行 ssh -add
这样你已经在你的云服务器上成功的连接了你的github账户。
继续对git进行全局配置:
git config --global user.email "邮箱地址"
git config --global user.name "你的名字"
接下来,把你已有的项目文件通过git提交到仓库,首先进入你的项目目录,在该目录下执行:
//初始化git仓库
git init
//添加全部文件
git add .
//提交到本地仓库
git commit -m "提交说明"
// 绑定,并取一个别名,通常用origin,后面的地址是前边创建的远程仓库地址
git remote add origin git@github.com:alex-my/some-project.git
// 把本地仓库地址提交到远程仓库
git push origin master
这样就成个把你云服务器上的项目文件提交到了github上。刷新你github上的仓库就可以看见你上传上去的文件目录了。
云服务器上git配置好了,然后是本地git的安装,在本地推荐下载TortoiseGit。在本地的自己按照来就好了,基本没什么问题。这样就实现了通过git和github实现本地和云服务的连接。