前言
写这篇文章的目的是让新手能够操作git管理自己的代码,可能你知道git的各种命令但是对其使用顺序并不熟,比如我。所以有必要整合一篇关于命令使用步骤的文章,图片用的人家的,也没询问让不让用,可能会惹上官司,珍重。
本文章以github托管平台为例(最近github被田牌收购,也不知道会发展成什么样)。
安装git
- 下载Git并双击exe安装:傻瓜式下一步,并不需要配置路径。(下载传送门:https://git-scm.com/downloads)
- 安装完git会有git bash和git GUI两种使用方式,个人更倾向于git bash,下面的例子也都是使用git bash进行。
- 配置用户名和邮箱(以后提交代码都会用到,仅仅想设置该项目的用户名和邮箱,只需去掉--global即可。)
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
本机关联代码托管平台
- 在本机创建SSH Key(一直回车,会在本地生产~/.ssh文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。)
$ ssh-keygen -t rsa -C "****@163.com"
- 登录github让本机与github进行关联,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
- 验证是否关联成功。
$ ssh -T git@github.com//验证是否配置成功
![](https://i-blog.csdnimg.cn/blog_migrate/54929d15ad074caafca0abb28c059b1d.png)
- 为什么GitHub需要SSH Key呢?
//因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
//当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
在github上新建仓库并提交代码
- 看图,一切尽在不言中。
![](https://i-blog.csdnimg.cn/blog_migrate/5f7a49edeba28714d4e5fd6599985da5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ac56afd381d146bab0e204e22120c780.png)
//说明
git init :初始化本地仓库。
git add **:将修改添加到暂存区。
git commit -m "***":将修改提交到存储库,-m后面是提交说明。
git remote add [name]***:添加一个新的远程仓库。
git push -u [name] master:推送代码到远程仓库,其中master是分支名称。
github删除仓库
- 进入该项目的setting,输入项目名称确认删除。
![](https://i-blog.csdnimg.cn/blog_migrate/c8ae17b705807baf4d19975ca1ec0b2b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0798d55e775ba9bb962ed853bd79f82b.png)
从远程库clone到本地
$ git clone 版本库地址 //回车之后有一个输入密码的过程
$ git remote add upstream 版本库地址 //保持代码的同步
常用命令
$git push origin master //把本地源码库push到Github上
$git pull origin master//从Github上pull到本地源码库
$git config --list //查看配置信息
$git status //查看项目状态信息
$git branch //查看项目分支
$git checkout -b host//添加一个名为host的分支
$git checkout 分支名//切换分支
$git merge host //合并分支host到主干
$git branch -d host //删除分支host
常见错误
未完待续
参考文章
osChina:http://my.oschina.net/u/855386/blog/353615
csdn:http://blog.csdn.net/luckyyulin/article/details/21090905
iteyes:http://eksliang.iteye.com/blog/2249472