git使用教程
大致说明
- 以下会按照从无到有使用git创建并上传到远程仓库的使用步骤进行介绍。
- 真正使用git多会使用它强大的分布式管理特性,我们会尝试创建分支进行版本控制。
- git的远程仓库大概可以分为三种:
- 公开的远程仓库—github(https://github.com)是不二选择,全世界程序员的开源乐园;
- 私有的第三方远程仓库—码云(https://git.oschina.net/)国内oschina模仿github的一款产品,誓要做中国的github;
- 自建远程仓库—GitStack(一款快速搭建git远程仓库的软件)。
- 所需的软件Git-2.10.2-64-bit.exe和GitStack_2.3.9.exe,下载:http://pan.baidu.com/s/1hsPwU8W
- 强烈推荐廖雪峰老师的git教程,半天即可阅读完(懂多少看悟性)http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
步骤
安装Git-2.10.2-64-bit.exe:
- 无脑next即可,没有特殊需求,全部默认选项即可。
第一次使用Git需要配置一个全局用户信息,这些信息只是一个简单的标记,不会进行邮箱验证,以后不再需要配置:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
- 图01
找一个位置新建一个文件夹,初始化git仓库
- 初始化仓库
git init
- 将目录下所有文件添加到暂存区
git add ./
- 将暂存区文件提交到本地仓库
git commit -m "本次提交的注释"
- 图 02
查看本地仓库分支,创建开发分支
- 查看本地所有分支以及所在分支(带星号的为所在分支)
git branch
- 创建dev分支(平时开发都是新建一个分支,如dev,master是主干,一般发布才会用)
git branch dev
- 切换到dev分支,进行开发工作
git checkout dev
- 图03
采用码云创建远程仓库
从安全与成本角度优先考虑使用第三方私有远程库
- 注册登录码云 https://git.oschina.net/
- 创建私有远程仓库
- 图04
添加连接远程仓库
- 为项目根目录添加README.md,该文件在码云与github都会自动被读入,当作项目介绍展示在项目主页
- 添加了新文件,需要再次添加到暂存区以及提交到本地仓库,注意当前在dev分支
git add ./
git commit -m "提交注释"
- 为本地添加远程仓库
git remote add 远程仓库标记 远程仓库地址
- 查看本地所有的远程仓库
git remote -v
- 移除指定远程仓库
git remote rm 远程仓库标记
- 添加远程仓库
git remote add GitHost https://git.oschina.net/scsf/GitDemo.git
- 图05
将本地代码推到远程仓库
- 将本地代码推到远程仓库(同时会创建远程dev分支) git push GitHost dev
- 输入码云账户名和密码
- 图06
- 查看远程仓库dev分支
- 图07
将本地文件和远程仓库文件合并,解决冲突
- 切换到主分支
checkout master
- 拉取远程仓库master分支代码,发现出现冲突
git pull GitHost master
- 图08
- 因为我们创建远程仓库的时候自动生成了一些文件,和本地文件出现了冲突,这里采用“强推”的形式用本地文件覆盖远程仓库master分支,不然会出现
error: failed to push some refs to 'https://git.oschina.net/scsf/GitDemo.git'
这样的错误
git push -f GitHost master
- 再次查看远程仓库,发现就会和本地保持一致了。
上述所有命令完整截图
- 图9/10/11
常用命令
可以满足日常大部分情况(我就是靠这几个命令混了几个月,发现后来实在混不下去了,才下决心学习的)。
- git init 初始化仓库
- git add ./ 添加当前目录进仓库
- git commit -m “init” 提交到本地仓库。
- git remote add origin http:…. 拉取项目
- git remote rm origin 移除当前项目
- git remote -v 查看日志
- git push origin master 提交到远程仓库
- git pull origin master 拉取远程仓库内容