美文网首页
git学习笔记

git学习笔记

作者: meetliuxin | 来源:发表于2017-11-28 15:54 被阅读0次

    Git是目前世界上最先进的分布式版本控制系统
    git只能管理文本文件(txt,网页,代码等,word是二进制不行)且每次记录的是改动而不是整个文件。

    在Mac OS X上安装Git:

    brew install git
    

    安装完成后,还需要设置用户名和邮箱,在命令行输入:

    git config --global user.name "your_name"
    git config --global user.email "email@example.com"
    

    现在就可以开始愉快的学习了:
    用cd切换到我们学习git的文件夹learngit

    git init  #把当前文件夹变成git可以管理的仓库,成功后会有一个隐藏的.git文件夹
    

    例子:我们要管理readme.txt,先把这个文件放在learngit文件夹下(子目录也行)

    git add readme.txt  #添加这个文件到仓库,可以多次,一次多个文件添加
    git commit -m "此次提交的说明信息“ #提交所有添加到仓库的文件,每次提交都会有此次提交的版本号记录
    

    再来看几个命令:

    git status  #可以让我们时刻掌握仓库当前的状态,比如有文件被修改过
    git diff readme.txt  #可以查看readme.txt这个文件每次都被修改了哪些内容
    git log  #可以查看提交日志(同时可以看到每次提交的版本号),为方便阅读可以用 git log --pretty=oneline
    git reset --hard HEAD^ #回退到历史版本,HEAD表示当前版本,HEAD^上个版本,HEAD^^上上个版本,HEAD~100上100个版本。用hard参数会删除当前的版本!
    git reset --hard shuzi #回到指定的版本。shuzi是16进制的commit id,可以在git log中查看
    git reflog  #查看命令历史,可以帮助我们找到commit id来回到未来。
    

    reset的三种参数

    理解工作区,版本库,暂存区

    我们创建的learngit文件夹叫工作区
    learngit中隐藏的.git文件夹叫版本库
    版本库中有很多东西:称为stage的暂存区,自动为我们创建的master分支,以及指向master的一个指针叫HEAD


    理解git结构

    git add 把文件从工作区中添加到暂存区
    git commit 把暂存区中所有的文件提交到当前分支

    撤销,删除文件

    git checkout -- readme.txt  #git checkout还可以用于切换分枝
    

    git checkout --file可以丢弃工作区修改,此时分两种情况:
    1.readme.txt修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
    2.readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

    如果写错后已经添加到暂存区,还没有commit:
    git reset HEAD file (reset命令也可以回退)可以把暂存区的修改撤销掉(unstage),重新放回工作区,再用git checkout -- readme.txt删掉修改

    假如我们删掉工作区一个test.txt文件,此时工作区和版本库不一致了,git status会发现有文件被删除了
    1.你确实要删除这个文件

    git rm test.txt  #把版本库中此文件也删除
    

    2.删错了,可以从版本库中恢复

    git checkout -- test.txt
    

    相关文章

      网友评论

          本文标题:git学习笔记

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