学习编程一段时间,想创建自己的GitHub,看了下[廖雪峰大牛的Git教程][id1],虽然其中教程简明易懂,但是创建中还是有一些问题,在这写篇小结给和我一样第一次接触GitHub的各位,我会尽量简洁在文中写出如何创建自己的GitHub。
[id1]: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 “廖雪峰大神的官网”
首先要明白,Git是工具,Git是本地的仓库,GitHub是我们网上的仓库,我们作为用户,不要去深究他,如果以后真的需要我们再去学习也不迟,现在先学会用就好了。
Windows下装Git,需要借助一个软件,叫msysgit的软件,附上下载地址(64位的系统可用),安装好后,打开GitBash,会出现一个类似于teminal的命令窗口,就算是安装好了。
CentOS下通过yum
命令来安装git,如果是普通用户请使用sudo或切换root用户再安装
$ yum install git
$ git version
在GitBash上先创建一个git文件夹,进入想放置git仓库的位置,文件夹可以是你想要的名字,这里我用了mygit作为我的文件夹,创建在桌面上
$ mkdir mygit
$ cd mygit
紧接着输入命令
$ git init
出现提示
Initialized empty Git repository in C:/Users/26519/Desktop/mygit/.git/
提示这个文件夹已经是一个空的仓库了,后面一串C:/Users…
是我放置git的路径,里面多了.git
文件夹,不过.git
是隐藏的。
###(1).配置个人信息
以上准备工作完成后,在窗口键入以下命令,这些是你的身份信息,github每次都会记录这些信息
$ git config --global user.name "your name"
$ git config --global user.email "[email protected]"
至此先上个截图,目前为止所有命令,别问我为什么前面有北郊金城武,那是我的代号,开玩笑,2651933495是我的QQ,若你有缘看到这篇博客,交个朋友交流一下也是好的!
接着创建密钥,总不可能人人都能往你的仓库传东西,所以需要创建一个ssh密钥,键入命令
$ ssh-keygen -t rsa -C "[email protected]"
进入创建好的.ssh文件,在~/目录下,用vim打开.ssh文件里面的id_rsa.pub
,这是我们的公共密钥,复制下来。
接下来的工作在GitHub上完成,打开github.com,右上角+,New Repository,创建线上新文件夹仓库,勾上下面创建README选项,等会用
完成后打开左上角setting
,进入SSH and GPG keys
选项,将之前复制的ssh密钥放上,说明一下是谁的key,由于我只有一个key,直接用了my key命名
为了检验是否成功,在Git Bash键入命令:
$ ssh -T [email protected]
会收到提示成功:
You've successfully authenticated, but GitHub does not provide shell access.
最后一步,关联两个仓库,将本地和线上的GitHub仓库关联起来:
$ git remote add origin [email protected]:jo-qzy/mygit.git
注意:jo-qzy/mygit.git
是我的仓库,你需要将这个仓库关联为你创建的仓库,若是错了,在本地的.git文件中可以看到一个config
文件,将里面的文件位置修改就好,修改软件用notepad++。
还是上张图吧,不小心弄错目录的同学进入config找到地址修改:
通过键入命令,将想加入git的文件加入,test.txt
替换成要保存的文件名,git commit
命令中"双引号间加入描述":
$ git add test.txt
$ git commit -m "wrote a test file!"
使用$ git status
查看文件状态,显示下面提示说明已经成功保存到git,没有东西需要保存:
On branch master
nothing to commit, working directory clean
我们已经保存了一个文件在本地git里面了,但是要存到网上才有用啊,所以在Git Bash键入命令:
$ git push -u origin master
传过一次文件之后以后再传就可以直接用
$ git push origin mater
然后出错了,显示:
To [email protected]:jo-qzy/mygit.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to '[email protected]:jo-qzy/mygit.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
其实我是故意的,我第一次创建就是因为在GitHub上的仓库创建了README.md
,本地没有,导致两个仓库不同步所以出错,这里给出解决方案,从[慕课网][cd3]上参考的,键入以下命令:
[cd3]:http://www.imooc.com/article/details/id/4429 “点这跳慕课网”
$ git pull --rebase origin master
出现提示:
warning: no common commits
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From github.com:jo-qzy/mygit
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
First, rewinding head to replay your work on top of it...
Applying: wrote a test file!
上面的命令是合并本地及线上仓库,合并了就不会提示不同步了
但是只是合并结果在本地,线上并没有test.txt
文件,所以再次键入我们一开始输入的命令
$ git push -u origin master
然后显示成功:
打开GitHub,打开我的mygit文件夹,果然有我们刚上传的文件
最后成功创建!