如何将代码托管到github
以前我写代码总是怕丢,所以我一般是复制几份,存到不同的地方,可是随着自己的版本更新,最后找起来非常费劲和耽误时间,不过现在有了 github,我们就可以放心的将代码放到这个大平台托管了,不需要担心丢失问题,所以今天这篇主要是讲如何将自己的代码放到github上托管,真是有 了github ,妈妈再也不用担心代码丢失问题了,github分收费和免费,免费的只能存储public文件,就是大家都可以共享,谁都可以看,如果交点保护费,你就 可以享受自己的私人空间了,代码就保密了,除了自己谁也看不了,介绍的内容就到这里,我们进入今天的主题,今天的内容主要分以下几个部分:
1、git安装,建立本地库
2、github注册,ssh key 配置,建立远程库
3、建立本地库和远程库关联
4、git日常操作
现在开始我们第一部分内容,git本地安装和建立库:
安装命令:
#yum install git
安装完成,新建一个目录,例如:
#mkdir /home/project
这个目录就是你将来的git库目录,进入,然后初始化:
1
2
3
4
5
|
#cd /home/project
#git config –global user.name “glacier”
#git config –global user.email “glacier@163.com”
#git init
#ls -a
|
在这个目录下应该可以看到一个.git的目录,这个是git自己管理版本用的,不要修改。 git config 两行是用来配置提交的用户和邮箱认证,global表示是这台机器上都用这个配置,另外还会在/root/目录下生成一个.gitconfig文件,刚才 的命令就配置到这个文件里,到这里本地库就建立完毕了,不过库里还没有任何文件,这个不急,一会我们再说如何使用,现在进入到我们第二部分。
github注册和建立远程库:
其实注册没什么好讲的,很容易,打开https://github.com/,填写用户和邮箱名称就可以,注意这里写的名字将来是你访问 github的地址,例如我的注册名是glacier-ji,访问地址就是https://github.com/glacier-ji/,邮箱要着重说 下,我试了163的邮箱是不行的,收不到验证信息,用qq邮箱注册可以,所以如果注册时请不要选择163邮箱,因为你根本验证不了,通过验证主要是为了采 用ssh加密传输方式,因为这部分不好用文字描述,我就直接截图了,有图有真相:
登录自己账户,点击右上角图标,选择Settings,
点击左边栏ssh keys,然后点右边add ssh key,输入一个标题,然后把你key贴到里边就可以了。
也许你要问ssh key是啥,我没有从哪里搞一个呢,别急,下面我们就说下如何生成ssh key文件,在linux终端下输入命令:
1
2
3
4
|
#ssh-keygen -t rsa
连续回车就可以了,进入目录
#cd /root/.ssh/下
|
会有一个id_rsa.pub文件,这个文件的内容就是ssh key文件内容,复制粘贴到github上就可以了,注意千万不要粘贴id_rsa ,这个是你的私钥文件,上传没用,这几个文件主要作用是你将来要用这个私钥进行加密,然后github用你上传的公钥进行解密。
下面将如何创建远程库(repository),用你注册账号登录,操作请看如下截图:
需要填写的我已用圆圈标注,需要填写其实就一个远程库名称,其它都可以不写,然后点开始创建,就建立完成了。
建立远程库与本地库的关联:
好了,现在们已经有了一个本地库和一个远程库,现在都没有任何代码文件,现在我们要建立他们之间的关系,使他们同步关联起来,进入本地库目录,操作如下:
1
2
|
#cd /home/porject
#git remote add origin git@github.com:glacier-ji/python_code.git
|
然后,然后就没了,简单吧,一条命令搞定,不过这条命令需要着重说明下,origin 是远程库代号,glacier-ji是我的登录用户名,请大家一定要换成自己的,否则就关联到我的github上了,python_code.git是我建立的远程库名称。
最后我介绍下对github的操作,如何将本地代码与githubu同步:
基本步骤是先将文件加入到自己本地git库中,然后再推动到github上 ,以下展示如何将自己之前的代码推到github上:
1
2
3
4
5
|
#cd /home/porject
#cp -r /root/boto_aws /home/project
#git add boto_aws
#git commit -m “add boto_aws”
#git push -u origin master
|
现在我们来逐行解释,拷贝就不说了,git add 后跟一个文件或目录,是加到git库中,git commit 是进行提交,默认是放到git 缓存空间中,最后一个git push是将内地库内容同步到github上,第一次用-u参数,建立本地master和远程库master关联,以后再推动就可以直接用:
1
|
#git push origin master
|
关于git 的使用还有很多有用的命令,深入学习的同学请自行学习,这里就不在介绍了。
正常情况下如果你一路按这个文档操作下来是不会有任何问题的,那如果有问题呢,其实也很简单,全部删除重新做一遍,当然为了大家都能一次成功,我以下写了可能会遇到的问题:
1、ssh无法连接到github,显示timeout ,解决:
这个问题有很多原因,我建议关闭防火墙,先试试,如果不行,就按以下方法来:
在.ssh/目录下,新建config文件,写入以下内容,
Host github.com
User your mail address
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
保存退出,然后测试:
1
|
#ssh -T git@github.com
|
第一次需要输yes,如果能看到 You’ve successfully authenticated, but GitHub does not provide shell access.就证明OK了。
2、关联远程库的时候提示远程库已经存在
解决:运行
#git remote rm origin
3、如果只是测试,遇到无法提交,可以强制进行合并提交:
运行命令:
#git push -f