第一次使用github,百度谷歌了太多资料教程,都失败了。幸好无意间看到一个博客,慢慢看完尝试,最后终于成功了。地址如下:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
下面是自己的一些简洁的整理。
安装前的准备:
1.首先在github官网上注册。恩,这个比较简单,就不贴图了!
地址:https://github.com/
2.下载msysgit。然后按默认选项安装即可。
当你安装后,鼠标右键,你会发现多了几个选项
在本地仓库里(你自己想要存放项目的地方)右键选择Git Init Here(由于我建立了,所以上图中没有这个选项),会多出来一个.git文件夹(此文件是隐藏文件),这就表示本地git创建成功。右键Git Bash进入git命令行,为了把本地的仓库传到github,还需要配置ssh key。
3.下面我们开始配置ssh key
首先本地建立sshkey 进入 GitBash,
$ ssh-keygen -t rsa -C"你的邮箱@XXX.com"
. 之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹(我的在C:\Users\john\.ssh),进去,打开id_rsa.pub,复制里面的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。
4.设置username和email
接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。
<pre name="code" class="java"><strong><span style="font-size:24px;">$ git config --global user.name "your name"</span></strong>
<span style="font-size:24px;"><strong>$ git config --global user.email "your_email@youremail.com"</strong></span>
PS 注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
进入要上传的仓库,右键git bash,添加远程地址:
$ git remote add origin git@github.com:yourName/yourRepo.git
后面的yourName和yourRepo(我这里是新建一个helloworld文件夹)表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
5.提交、上传
首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。(这里网页上有步骤这里就不过多写,比较简单)。
新建库取名“helloworld”。
进入本地库文件夹中。
通过git init
命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /j/nearor/.git/
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
接下来在本地仓库里添加一些文件,比如readme,(一定要在helloword文件夹中创建)
首先在本地库中新建一个“readme.txt”内容如下:
Git is a version control system.
Git is free software.
把一个文件放到Git仓库只需要两步。 第一步,用命令git add
告诉Git,把文件添加到仓库:
$ git add readme.txt
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
第二步,用命令git commit
告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
[master (root-commit) fd33c95] wrote a readme file
2 files changed, 5 insertions(+)
create mode 100644 $RECYCLE.BIN/S-1-5-21-54563344-3455430031-3495798391-1000/de
sktop.ini
create mode 100644 helloworld/readme.txt
简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
嫌麻烦不想输入-m "xxx"行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。实在不想输入说明的童鞋请自行Google,我不告诉你这个参数。
git commit命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。
为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m "add 3 files."
6.现在开始上传添加到github远程库:
现在,我们根据GitHub的提示,在本地的helloworld
仓库下运行命令:
$ git remote add origin git@github.com:nearor/helloworld.git
请千万注意,把上面的nearor
替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。
添加后,远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
Username for 'https://github.com': linkinzhk@gmail.com
Password for 'https://linkinzhk@gmail.com@github.com':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/nearor/helloworld.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样
从现在起,只要本地作了提交,就可以通过命令:
$ git push origin master
把本地master
分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。
修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。