创建git仓库
写在前面
学习编程一段时间,想创建自己的GitHub,看了下廖雪峰大牛的Git教程,虽然其中教程简明易懂,但是创建中还是有一些问题,在这写篇小结给和我一样第一次接触GitHub的各位,我会尽量简洁在文中写出如何创建自己的GitHub。
创建Git
首先要明白,Git是工具,可以管理我们代码,可以方便地管理各个分支,处理git流,GitHub是我们网上的仓库,我们作为用户,不需要过多地去深究git的远离,如果真的需要,我们再去学习也不迟,现在先学会用就好了。
1.安装Git
Windows
Windows下装Git,需要借助一个软件,叫msysgit的软件,附上下载地址(64位的系统可用),安装好后,打开GitBash,会出现一个类似于teminal的命令窗口,就算是安装好了。
linux(以CentOS 7为例)
CentOS下通过yum
命令来安装git,如果是普通用户请使用sudo或切换root用户再安装
$ yum install git
安装完毕后通过命令查看安装是否成功
$ git version
可以看到显示版本号为1.8.3.1
2.准备工作
在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
是隐藏的。
3.配置Git
(1).配置个人信息
以上准备工作完成后,在窗口键入以下命令,这些是你的身份信息,github每次都会记录这些信息
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
至此先上个截图,目前为止所有命令,别问我为什么前面有北郊金城武,那是我的代号,开玩笑,2651933495是我的QQ,若你有缘看到这篇博客,交个朋友交流一下也是好的!
(2).创建密钥
接着创建密钥,总不可能人人都能往你的仓库传东西,所以需要创建一个ssh密钥,键入命令
$ ssh-keygen -t rsa -C "your_email@youremail.com"
进入创建好的.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 git@github.com
会收到提示成功:
You've successfully authenticated, but GitHub does not provide shell access.
(3).关联仓库
最后一步,关联两个仓库,将本地和线上的GitHub仓库关联起来:
$ git remote add origin git@github.com:jo-qzy/mygit.git
注意:jo-qzy/mygit.git
是我的仓库,你需要将这个仓库关联为你创建的仓库,若是错了,在本地的.git文件中可以看到一个config
文件,将里面的文件位置修改就好,修改软件用notepad++。
还是上张图吧,不小心弄错目录的同学进入config找到地址修改:
4.存文件到GitHub
通过键入命令,将想加入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
5.将本地和线上仓库同步
我们已经保存了一个文件在本地git里面了,但是要存到网上才有用啊,所以在Git Bash键入命令:
$ git push -u origin master
传过一次文件之后以后再传就可以直接用
$ git push origin mater
然后出错了,显示:
To git@github.com:jo-qzy/mygit.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com: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.
6.解决线上和本地仓库不同步的问题
其实我是故意的,我第一次创建就是因为在GitHub上的仓库创建了README.md
,本地没有,导致两个仓库不同步所以出错,这里给出解决方案,从慕课网上参考的,键入以下命令:
$ 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文件夹,果然有我们刚上传的文件
小结:
- 创建本地git
- 配置git
- 加入文件到git
- 同步本地的仓库使之同线上仓库一致
- 将git的文件上传到GitHub
- 解决线上和本地仓库不同步的问题
最后成功创建!