git 使用

260 阅读5分钟

gitHub

一个提供代码管理(托管)的公共平台,我们以及众多开发者,会把自己的生产的组件/类库/插件/框架 等托管到这个平台中,供别人下载使用和研究

在gitHub中,我们可以创建仓库来管理自己的项目文件,而github支持开发者通过git操作,把本地的项目代码推送到指定的仓库中,他还提供静态web页面的发布等

在国内有一个和gitHub类似的网站:coding,和gitHub类似,也是提供代码管理的平台

git的基础知识

git是一个分布式的代码版本管理控制系统 -记录当前产品代码的所有版本信息(历史修改信息),而且方便快速回退到某一个具体的版本 -方便团队协作开发,能够检测代码冲突,能够合并代码等

==svn==:在git诞生前就已经存在的版本控制系统,不过它是"集中式"管理

==git==:分布式版本管理系统

  1. 集中式版本控制系统(CVS,SVN) 有一个中央服务器,干活的时候,用的都是自己的电脑,需要先从中央服务器获取最新的版本,然后开始干活,干完活了,再把自己的修改推动给中央服务器。 缺点:需要联网的情况下才能使用,上传速度慢。
  2. 分布式版本控制系统(最常见的Git) 分布式版本控制系统没有中央服务器,每个人的电脑上都用一个完整的版本库,只要交换对方的修改就行,把各自的修改推送给对方。分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。优点:安全性高,不需要联网

git安装

git –version

  1. 配置用户名
 git config --global user.name "xxx"
 git config --global user.email xxxx@163.com
  1. 使在window还是linux下不管换行服务转换问题
 git config --global core.autocrlf false
  1. 编码问题
 git config --global core.quotepath off
 git config --global gui.encoding utf-8 //linux中可不设置
 git config --list //查看配置列表
  1. 生成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

相当于做了三件事:

  1. 建了一个本地git仓库,仓库名称和远程仓库名一样
  2. 本地仓库和远程仓库关联起来
  3. 远程仓库的内容已经拉取到本地仓库
 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