概述
之前一直在用GitHub托管我的代码,以备在何地使用代码时都非常容易的获取到,这就是线上托管的意义。前些天培训的时候,总发现很多人都是用git客户端来操作私有git库,熟悉的还好,不熟悉的随时造成代码各种冲突,所以我觉得,使用前还是需要确定顺序,每步做的含义及功能,我这里就以GitHub为例了,主要个人公开免费还不用我们自己搭个私库。
环境
ubuntu 17.10
使用
托管代码有两种方式:一种是从项目初始化就在github上建立repository,通过git clone xxx下载到本地,这样在本地继续项目的其它开发,此时目录就已经被github所初始化了,也就是不用使用git init;另一种便是本身项目已经开发到了一定程度,想把代码提交到github上托管,我想这应该是绝大部分的需求。废话不多说,直接上操作,这里以第二种方式为例。
1.在于GitHub交互时,GitHub Server会验证机器,做一次ssh免登录校验,这个大家对linux之间ssh交互熟悉的话应该没多大问题。
~$ ssh-keygen -t rsa ##在~/.ssh目录下会生成一个rsa加密的文件
~$ ls ~/.ssh/
id_rsa id_rsa.pub
2.登录github.com,打开Settings > SSH and GPG keys,添加一个ssh key,标题随便取,key必须填第一步生成的id_rsa.pub文件里的内容,保存即可。
3.无论是第一还是第二种方式,都需要在github上创建一个repository,作为项目的仓库,创建的时候最好确定.gitignore文件,该文件是将不想提交到github上的目录或文件过滤掉。
4.进入想要托管的本地项目目录,执行git init初始化,这样,目录中会多一个.git文件夹,里面就是git的基本信息了。
5.建立远程github repository映射,执行以下命令:
~$ git remote add origin git@github.com:${username}/${repository_name}.git
## ${username}是github的用户名,${repository_name}是你在github上创建的repository名
6.建立关联后,必须先同步远程仓库上的文件:
~$ git pull origin master ## 将远程的文件同步到本地,例如刚说到的.gitignore
7.添加本地向远程仓库提交时的凭证,让远程仓库知道是谁提交的,和SVN一样,协同开发自然需要明确提交者。
~$ git config --global user.name "${usernmae}" ## ${usernmae} 用户名
~$ git config --global user.email "${email}" ## ${email} 邮箱
8.到这里基本就大功告成了,新建一个文件,执行以下命令:
~$ git add xx.file ## 将xx.file文件添加到待提交cache
~$ git status ## 查看待提交的文件信息
~$ git commit -m 'create xx.file' ## 提交文件,并添加提交的描述信息
~$ git push origin master ## 将文件推送到GitHub仓库