zoukankan      html  css  js  c++  java
  • 史上最浅显易懂的Git教程1

    最先进的分布式版本控制系统(没有之一)。
    CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用
    集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
    分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
    那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
    commit要频繁,不然无法记录你的改动
    如果你一天commit一次,中间的修改你找不回来



    git安装完成后,还需要最后一步设置,在命令行输入:

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置

    1.创建版本库

    进入目录
    $ git init


    2,把文件添加到版本库

    第1步:git add readme.txt

    第2步:把文件提交到仓库:git commit -m "wrote a readme file"



    我们继续修改readme.txt文件
    运行git status可以让我们时刻掌握仓库当前的状态,可以看到哪些文件修改过。
    看看具体修改了什么内容,需要用git diff这个命令看看


    提交修改和提交新文件是一样的两步,第一步是git add



    回退
    历史记录,用git log命令查看,如果嫌输出信息太多,
    git log --pretty=oneline

    Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,如果大家都用1,2,3……作为版本号,那肯定就冲突了。


    首先,Git必须知道当前版本是哪个版本,

    在Git中,HEAD表示当前版本上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

    现在,我们要把当前版本回退到上一个版本可以使用git reset命令:

    $ git reset --hard HEAD^

    Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针

    要恢复上面的操作,回到未来:命令git reflog记录了你的每一次命令:找到之前的commit id,如
    3628164
    然后
    $ git reset --hard 3628164


    工作区(Working Directory)就是你在电脑里能看到的目录,

    工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

    撤销修改:
    git checkout -- file可以丢弃工作区的修改


    命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况

    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。


    命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

    如果修改只是添加到了暂存区,还没有提交,怎么撤销:
    命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:


    git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。





    删除文件
    git rm test.txt
    然后git  commit -m

    另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

    $ git checkout -- test.txt 

    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。




  • 相关阅读:
    PAT A1094 The Largest Generation (25 分)——树的bfs遍历
    PAT A1055 The World's Richest (25 分)——排序
    PAT A1052 Linked List Sorting (25 分)——链表,排序
    PAT A1076 Forwards on Weibo (30 分)——图的bfs
    辅导员
    辅导员面试
    C程序设计
    Excel VBA 基本概念
    Excel函数
    导入excel表的数据到数据库ssh
  • 原文地址:https://www.cnblogs.com/elesos/p/7151454.html
Copyright © 2011-2022 走看看