近日想分享一些文件,但是用度盘又太麻烦了(速度也很恶心)。所以突发奇想去研究了下GitHub的仓库,这篇文章也就是一个最最最基础的基本操作。基本实现了可以在GitHub上存储文本信息与代码。
由于我的系统是Windows,所以以下的实现都是基于windows的(貌似其他系统也差不了很多)。
1 注册账号
这个不多说啦,前往官网按照提示注册就好。邮箱没有限制,QQ邮箱也行(我就是用的QQ邮箱)。
2 创建一个新的仓库
在你完成注册账号后,GitHub会引导你创建你的第一个仓库。界面大概如下
七步曲:
- 【Repository name】填上你的仓库名
- 【Description】这项是选填的,就是对于你这个仓库的描述信息。
- 【Public/Private】选择这个仓库是公开的还是你私人的。当然,私人的是需要收费的。
- 【README】是否要帮你自动初始化一个README文件,这个README文件相当于整个仓库的一个介绍,是markdown格式的。
- 【Add .gitignore】选择同步的时候是否要忽略某些类型的文件,被选择的文件类型会写入这个.gitignore文件中。
- 【Add a license】GitHub对于每个仓库都要求有个license,一般好像就选择MIT,并不太清楚有什么区别。
- 【Create repository】点击就创建了仓库啦!
这时候我们可以看到我们的仓库里暂时有LICENSE和README.md这两个文件。
3 与本地仓库同步
3.1 下载git
在此之前,我们需要下载安装git到我们的电脑,这样我们才能用git的代码来操作。
3.2 配置git
首先,我们需要在本地创建ssh key。打开刚刚安装的git bash,这是一个可以输入git代码的命令行。
输入以下代码
$ ssh-keygen -t rsa -C "your_email@youremail.com"
其中your_email@youremail.com改为我们注册github的邮箱,接下来回车就好了。
成功的话会在~/下生成.ssh文件夹,如果不知道具体位置,可以查看刚刚命令行中生成的反馈信息。在这个文件夹里,用记事本打开id_rsa.pub文件,复制里面的全部内容(其实就是我们需要的ssh key)。
回到网页版的github,进入Account Settings,左边菜单选择SSH keys。然后选择Add SSH key。title随便填吧(我反正没填),key复制进去就好。
为了验证是否成功,在git bash里输入下面代码。
$ ssh -T git@github.com
如果是第一次的会提示是否continue,输入yes就好。
看到返回"You've successfully authenticated, but GitHub does not provide shell access."那就是已经成功连上github了。
然后设置username和email,因为github每次commit都会记录他们。
使用下面的代码
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
和上面一样,这里的name和email是要填注册github时的用户名和邮箱。
3.3 同步远程仓库至本地
对准备放本地仓库的文件夹点击右键Git Bash Here。
然后输入下面的代码。
$ git clone https://github.com/yourname/yourRepoName.git
其中的yourname就是你注册时的用户名,yourRepoName也就是你创建的仓库的名称。
之后就可以在文件夹里看到仓库了。
3.4 本地仓库的改动同步至远程仓库
如果对本地仓库有所改动,比如我添加了一个文件夹,里面放有我coursera的machine learning所有的作业代码。注意不能是空文件夹,github不支持管理空文件夹。然后我要把这些改动同步至远程仓库里。
只需要对本地仓库的文件夹,比如说我的仓库叫CodeRepo,我就对这个名字的文件夹右键,选择Git Bash Here。
然后输入下面的代码。
$ git add .
$ git commit -m "information"
对于第一句也可以替换下。具体的区别如下。
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
这时候改动已经提交到了HEAD,还不是远程仓库。
再输入下面的代码。
$ git push origin master
其中master可以替换为任何一个branch,一般默认的都是master。
3.5 远程仓库的改动同步至本地仓库
在项目当前目录下,输入下面的代码。
$ git pull