gitHub
一个提供代码管理(托管)的公共平台,我们以及众多开发者,会把自己的生产的组件/类库/插件/框架 等托管到这个平台中,供别人下载使用和研究
在gitHub中,我们可以创建仓库来管理自己的项目文件,而github支持开发者通过git操作,把本地的项目代码推送到指定的仓库中,他还提供静态web页面的发布等
在国内有一个和gitHub类似的网站:coding,和gitHub类似,也是提供代码管理的平台
git的基础知识
git是一个分布式的代码版本管理控制系统 -记录当前产品代码的所有版本信息(历史修改信息),而且方便快速回退到某一个具体的版本 -方便团队协作开发,能够检测代码冲突,能够合并代码等
==svn==:在git诞生前就已经存在的版本控制系统,不过它是"集中式"管理
==git==:分布式版本管理系统
- 集中式版本控制系统(CVS,SVN) 有一个中央服务器,干活的时候,用的都是自己的电脑,需要先从中央服务器获取最新的版本,然后开始干活,干完活了,再把自己的修改推动给中央服务器。 缺点:需要联网的情况下才能使用,上传速度慢。
- 分布式版本控制系统(最常见的Git) 分布式版本控制系统没有中央服务器,每个人的电脑上都用一个完整的版本库,只要交换对方的修改就行,把各自的修改推送给对方。分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。优点:安全性高,不需要联网
git安装
git –version
- 配置用户名
git config --global user.name "xxx"
git config --global user.email xxxx@163.com
- 使在window还是linux下不管换行服务转换问题
git config --global core.autocrlf false
- 编码问题
git config --global core.quotepath off
git config --global gui.encoding utf-8 //linux中可不设置
git config --list //查看配置列表
- 生成SSH密钥
ssh-keygen -t rsa -C xxxxxx //xxxxxx为邮箱
ssh-add ~/.ssh/id_rsa
//如果出现无法连接执行
eval `ssh-agent`
//然后继续
ssh-add ~/.ssh/id_rsa
//查看公钥
cat ~/.ssh/id_rsa.pub
//复制公钥先复制到记事本,去除自动换行
创建本地的git仓库
进入需要操作的文件夹 右键git bash here打开git命令窗口
git init gitlocal //需要先初始化成git文件,变成工作区
git add 文件夹 //将文件提交到暂存区
git add . //将所有文件提交到暂存区
git status //查看提交状态
git commit -m "备注信息"
git log //查看版本信息
将本地仓库内容提交到远程仓库
git remote add origin https://github.com/xxx.git //关联本地仓库和远程仓库
git remote -v //查看管理地址
git push -u origin maste //推送本地仓库内容到远程仓库主分支
git remote rm origin //删除链接
git config credential.helper "" //清除用户配置信息
git pull origin master --allow-unrelated-histories //若两面仓库内容不一致时,先把远程内容拉去下来
另外一种提交远程仓库
git clone https://github.com/herosPan/201804JS.git
相当于做了三件事:
- 建了一个本地git仓库,仓库名称和远程仓库名一样
- 本地仓库和远程仓库关联起来
- 远程仓库的内容已经拉取到本地仓库
git add . //添加所有文件
git commit -m "" //提交并添加描述
git push origin master //推送
远程仓库内容和本地仓库内容不一样是,需要两个仓库保持同步后,才能往远程仓库推送内容,同步的做法是git pull origin master 把远程仓库内容拉取到本地仓库
查看分支
git branch //本地分支
git branch -a //本地及远程分支
git branch --list //查看分支列表
删除分支
git branch -D dev //删除本地分支
git push origin --delete dev //删除远程分支
创建分支
git branch dev //创建一个dev分支
git push --set-upstream origin dev // 将本地分支送到远程服务器上
切换分支
git checkout dev //切换到dev 分支
创建分支并切换到分支
git checkout -b dev //创建并切换到dev 分支
远程仓库有新分支 dev,同步分支到本地
git fetch // 将远程仓库的分支列表更新到最新,取回本地以便查看远程分支列表
git branch -a // 查看远程分支列表
git checkout -b dev origin/dev // 核心一步:将远程仓库的dev分支拉取到本地dev分支,并切换到develop分支
合并其他分支到当前分支
git merge --no-ff '描述' <name>
查询tag列表
git tag //显示默认列表
git tag --list //list列表
git -l -n // 显示tag列表,并显示描述信息
查看单个tag信息
git show v3.2.0 //v3.2.0 tag名
添加tag
git tag v3.2.0
git tag -a v3.2.0 - m '备注信息'
推送tag
git push origin v3.2.0
git push origin --tags
删除tag
git tag -d v3.2.0 // 本地删除
git push origin --delete v3.2.0 // 远程删除
检出tag
git checkout v3.2.0
在commit上打分支
git tag v3.2.0 c809ddbf83939a89659e51dc2a5fe183af384233
git push origin v3.2.0 //!!!本地tag推送到线上
根据tag创建分支
git branch newbranch 3.11.3
// 切换到分支
git checkout newbranch