美文网首页
git快速入门

git快速入门

作者: eveseven | 来源:发表于2018-11-30 09:39 被阅读0次

1.关于版本控制

        git是目前世界上最先进的分布式版本控制系统,那么什么是版本控制呢?

        假设现在,要写一篇很长很长的word文档,有时候想要删除或更改某一个段落,又怕恢复找不回之前版本,那么此时只能通过再新创建一个word文档以便本分,然后不停的改,不停的备份,改动多了就成了

        一周过去了,自己看着一些乱七八糟的文件,还要想之前做了哪些修改,这些不可怕,可怕的是同事要帮忙填某些数据,就得通过邮箱等形式发给他们,同事又得思考,改动了哪些地方,多麻烦。    此时我们就想要有一款软件,能帮我们记录每次文件的改动,还可以同事协调合作,如果我们需要,就在软件里瞄一眼,就能看到所有改动。就像下面这样,于是乎就有了版本控制,省事。

        版本控制是一种记录一个或多个文件的变化,版本控制系统(缩写VCS),可以理解为一个“数据库”,

它可以用来保存一个完整项目的版本,当需要查看一个之前的版本时,版本控制系统可以显示出当前版本和上一版本的所有改动细节。

关于集中式版本控制和分布式版本控制系统

        在最初的CVS和SVN中,都是集中式版本控制系统,集中式版本控制系统,有一个中央服务器,所有的版本库都是集中存放在中央服务器中的,每个人在自己的电脑上干活,再添加提交到中央服务器上,这个中央服务器就像是一个一个图书馆,每个人借书,再还书,如果今天图书馆关门了,那么所有人都没法再借书,意味着都没法再工作,而且集中式版本控制系统最大的毛病是必须联网才能工作,如果在局域网内还好,如果是在互联网,遇到网速超慢的话,可能提交一个很小的文件就得等很久,这不严重影响工作效率啊,人都得急死。那么就有了git这种最先进的分布式版本管理系统,相比于集中式管理系统,分布式管理系统的容错率更高,因为每个人的电脑里都有完整的版本库,这样也不用担心什么某个人电脑坏了其他人干不了活之类的,但实际在使用分布式管理系统的时候,其实很少在两个人之间的电脑上互推,通常也有一台类似于中央服务器的电脑,但这台服务器的作用仅仅是方便大家的“交换”和修改,没有他大家也一样可以干活。

2.    安装git

Windows上安装git直接从官网上下载就行 安装git ,然后默认安装选项即可,因为git是分布式版本控制系统,所以每个机器安装完成之后都需要自报家门,就得在命令行输入

$ git config --global user.name"Your Name"

$ git config --global user.email"email@example.com"

安装完成后,然后是创建版本库,类似于仓库,简单理解为一个目录,这个目录的所有文件都被git所管理起来,每个文件的修改,删除,git都能跟踪。

创建版本库  mkdir  name

如果是Windows用户,还需要在命令行输入 git init 让这个版本库变成git可以管理的仓库。

添加文件到git仓库

git add  <file>  可以反复多次使用,添加多个文件,最后commit一次提交  git add . 表示提交所有文件

git commit -m <message> 完成提交

git log     查看版本历史,显示最近提交提交历史记录。

3.    关于版本回退

在git中,每一个版本就像是一个RPG游戏存档,每通过一个新的关卡都会有一个存档,又或者在打boss的时候,也需要先存个档,以便没打过死亡要从头再来,在git当中,HEAD表示当前版本,也就是最后提交的版本,而HEAD^表示上一个版本,HEAD^^表示上上一个版本,HEAD~n表示上n个版本。

git reset --hard HEAD^

但是在git中, head是一个指针,它指向当前版本,当我们从当前版本回到上一个版本时,此时head又指向上一个版本,那么我们想回到最新的版本,又改怎么办呢?放心,在git中,有一种药叫后悔药,想吃随时可以吃,我们只需要找到最新版本的commit id 就行了 通过git reflog命令,可以查看记录每次命令,于是乎我们找到最新版本的id又可以通过git reset --hard id 回到最新版本。

4.    git的暂存区

git有一个很重要的概念,就是暂存区,那么什么是暂存区呢?

我们先开工作区(Working directory),所谓的工作区,就是电脑里能看到的目录,而在工作区下面还有个隐藏目录,.git,在这个目录下,有个stage(index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的指针Head,在我们修改完文件想要往版本库里添加时,执行git add 操作,此时就是把修改完成的文件放在git的暂存区index里,最后通过commit一次性把所有暂存区的内容提交到当前分支中。git每一次修改,如果不用add添加到暂存区中,那就不会加入到commit中。

5.    关于git的标签

        在git中,发布一个版本的时候,通常会给一个版本打上一个标签(tag),这样就确定了所修改的版本,虽然git有commit,对应每一个commit_id号,可以找到某个版本,但实际上是一串乱七八糟的数字和字符,如果是v1.1

 v1.2这样就很有意义了,tag就是一个更容易让人记住的名字,跟摸个commit绑定在一起。

        创建标签  首先切换到需要打标签的分支上  然后git tag  <name>就可以新创建一个标签。

        查看标签    git  tag   查看所有标签

        标签不是按时间顺序排列的,而是按字母顺序排列的,可以用git  show  <tagname>查看标签信息

        git    tag    -a  <tagname>   -m   "xxxx"    可以指定标签信息备注

        如果标签打错了,也可以删除  。    git   tag    -d    v1.0    删除v1.0标签

        因为标签都只储存到本地,不会推送到远程,所以,打错的标签可以在本地安全删除。

        如果要把某个标签推送到远程,可以用 git push  origin   <tagname> 例如:git push origin  v1.0

        或者,一次推送全部未推送到远程的本地标签。git  push  origin  --tags

        如果标签已经推送到远程仓库,要删除,就得先从本地删除,git  tag  -d  v1.0,然后再从远程删除,

删除命令也是push,git push  origin  :refs/tags/v1.0。

6.    关于分支

        在git中,git把每一次提交的都串成一条时间线,这条时间线就是一个分支,也就是主分支master分支,随着不断的提交,这条时间线会越来越长。

        严格来说,head不是指向提交,而是指向master指向的最新提交,每一次提交,master分支都会向前移动一步,不断提交,master分支也会越来越长。

当我们新创建一个分支,如dev分支,git会新建了一个dev指针,指向和master相同的提交,再把head指向dev,就表示当前分支在dev上,每次修改和提交就是针对dev分支了,这样dev指针不断的移动,head指向当前提交的dev指针,而master指针不变。工作区的内容文件都没有任何变化。

假如我们在dev分支上完成工作了,就可以把dev 合并到master上,合并就是把master指向dev当前的提交,合并完成后就可以删除当前的dev分支了,删除dev分支就是把dev指针给删除掉,删除后,就只剩一条master主分支了。

7.    git的常用命令

        git clone   clone 一个远程库

        git   init    创建一个新的本地库

        git   remote add origin xxx  将本地仓库和远程仓库关联

        git   add .  /  git add <file>添加到暂存区

        git  commit -m <message>  提交到当前分支

         git  status     查看工作目录和暂存区的状态

        git diff      查看文件的更改

        git    branch 查看当前分支

        git    branch    <name>    创建分支

        git    checkout    <name>    切换分支

        git checkout    -b    <name>    创建并切换到当前分支

        git    merge    <name>    合并某分支到当前分支

        git    branch    -d    <name>    删除本地分支

        git    branch    -a    查看远程分支列表  ,    绿色代表当前分支列表,红色是远程分支列表

        git    branch    -m    <oldname> <newname> 重命名本地分支名

        git    log    查看提交日志

        git    reflog    查看命令历史

        git    reset    --hard    commit_id     通过git  log 查看到每个版本的commit_id  ,然后切换回退版本

        git    remote    -v    查看远程库信息

        git    reset    清屏

        git    tag    <name> 创建新标签

        git    tag    查看所有标签状态

        git   tag    -d    v1.0    删除v1.0标签

        git push  origin   <tagname>    推送某个标签到远程

        git  push  origin  --tags    推送全部未推送的标签到远程

        git  tag  -d  v1.0   git push  origin  :refs/tags/v1.0 删除已推送到远程仓库的v1.0标签

        git放弃本地更改 强制拉取远程更新

        git fetch –all 

        git reset –hard origin/master

        将本地分支提交到远程分支

        $ git checkout -b feature-branch 

         //创建并切换到分支feature-branch 

         $ git push origin feature-branch:feature-branch

相关文章

  • git技术,GitHub、GitLab

    git学习 Git教程(小白快速入门版) Git教程(简化版) git详细学习 Gitlab的管理使用手册git初...

  • Git(分布式版本控制系统)

    1 Git是什么 - 认识 -为何需要Git - Git和GitHub有何区别 2 快速入门 git在相应的操作系...

  • git快速入门

    1.Androidstudio中使用git (1)基本配置 a.创建git版本控制:vsc->import int...

  • Git快速入门

    git是什么? Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是...

  • git 快速入门

    这篇文章写的是我对git基本概念的理解,不涉及具体的命令行操作。希望能帮助到那些想要理解git工作原理的人。 具体...

  • git快速入门

    一.项目的创建 1.新建好项目目录 2.初始化git,命令git init 3.将代码添加到暂缓区,命令 git ...

  • Git快速入门

    0. Git简介 git是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于20...

  • GIT快速入门

    大纲: 一、前言 二、概述 三、在Windows上安装Git 四、创建本地仓库 五、本地仓库管理详解 六、总结 注...

  • GIT快速入门

    基本配置 下载软件 git-scm Git配置用户名与邮箱 配置公钥 多账户配置(可跳过) 传送门: Window...

  • Git 快速入门

    Configure Git for the first time Working with your reposi...

网友评论

      本文标题:git快速入门

      本文链接:https://www.haomeiwen.com/subject/ovdjqqtx.html