Git

2017-11-10  本文已影响0人  荷尔蒙榨汁机

Git 简介


Git是目前最先进到分布式版本控制系统,是由Linux创始人Linus于2002年开发出来。起初Linus开发git是为了方便合并世界各地Linux志愿者发给他的代码,但是发布后git迅速成为最流行的分布式版本控制系统。2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。


Git的原理


image

Git的常用操作


Git的操作主要围绕以下几点:

  1. 从git取数据
  2. 将改动传回git
  3. 版本文件管理
  4. 分支管理
  5. 标签管理

从git取数据

git clone

在Github上选择我们需要克隆到本地的仓库,找到对应的SSH链接。

image

使用git clone git@github.com:MaxYanDD/test.git将远程仓库克隆到本地。

远程仓库文件被下载到本地。

git pull和git clone的区别

将改动传回github


我们对clone下来仓库中的文件进行修改后,使用git status可以查看当前的修改信息。

使用git diff查看修改了哪些地方。

根据提示我们还可以使用git checkout -- README.md撤销这次修改。
检查修改无误后,我们开始将我们的修改推送到github:
第一步.使用命令git add README.md,将修改文件放入暂存区。
第二步.使用命令git commit -m "修改了第一行",将文件提交到版本库。参数-m后面为本次修改的描述。
第三步.使用git remote add origin git@github.com:MaxYanDD/test.git命令将本地仓库和Github远程仓库进行关联。
第四步.使用git push -u origin master将本地库内容推送到远程仓库。

在github仓库中可以看到本体修改已经生效了。

版本文件管理


版本号

当需要进行版本回退前,我们可以先使用git loggit log --pretty=oneline或者git reflog来查看从最近到最远的提交日志,并找到版本号。

版本修改

需要对版本进行修改时可采用下列命令:

git reset --hard HEAD^     ##回退至上一个版本
git reset --hard HEAD^^    ##回退至上上个版本
git reset --hard HEAD~100  ##往上回退至第100个版本
git reset --hard 版本号     ##回退到指定版本号

文件删除

撤销删除

git checkout -- filename  ##  撤销修改回到和版本库一模一样的状态。
git reset HEAD filename  ## 暂存区的修改回退到工作区

分支管理


通过创建分支,可以同时在多个分支同时进行开发。类似于鸣人学习螺旋丸,开挂一般。

git branch            ##查看分支
git branch dev        ##创建dev分支
git checkout dev      ##切换到dev分支
git checkout -b dev   ##创建并切换到dev分支等于上面两步
git merge dev         ##将dev分支合并到当前分支
git branch -d dev     ##删除dev分支
git branch -D dev      ##强项删除dev分支

使用git log --graph --pretty=oneline可以更为形象的查看分支冲突

当通过git clone将远程仓库clone到本地时,Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。但是如果在dev分支下开发的话,则不存在对应关系,需要通过git branch --set-upstream-to=origin/dev dev将本地dev分支和远程dev分支进行关联。

标签管理


发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。Git的标签是版本库的快照,其实它就是指向某个commit的指针。

常用操作如下:

git tag v1.0    #标签1.0打在最新的commit上
git tag -a v0.1 -m "version0.1 released 0affebc    ## 创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -d v0.1    ## 删除标签v0.1
git push origin :refs/tags/v0.9 ###删除远程标签
git push origin v0.1    ## 推送v0.1标签到远程
git push origin --tags    ##一次性推送全部尚未推送到远程的本地标签

史上最浅显易懂的Git教程!

上一篇下一篇

猜你喜欢

热点阅读