美文网首页
Git学习笔记

Git学习笔记

作者: Vagabond_0910 | 来源:发表于2019-03-18 21:50 被阅读0次

    Git

    说明

    • 分布式版本控制系统
    • 只能跟踪文本文件的改动
    • 使用标准的UTF-8编码
    • Notepad++,默认编码设置为UTF-8 without BOM

    Git安装

    -Git安装成功后,还需要设置,在命令行输入:

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

    创建版本库(仓库)

    1. mkdir 路径及名称
    $ mkdir D:/Mygit
    $ cd D:/Mygit
    $ pwd
    

    pwd 命令用于显示当前目录。
    Windows系统下,确保目录名(包括父目录)不包含中文。

    1. 通过git init 命令将目录变成Git可以管理的仓库:
    $ git init
    
    1. 把文件添加到版本库
      编写一个readme.txt的文件,内容如下:
    Git is a version control system
    Git is free software
    

    编写方式

    $ vi readme.txt
    

    退出vi编写:esc + :+ wq

    • 第一步:用git add将文件添加到仓库
    $ git add readme.txt
    
    • 第二步:用git commit将文件提交到仓库
    $ git commit -m "wrote a readme file"
    

    -m后面输入的是本次提交的说明
    commit可以一次提交多个文件,所以可以多次add不同的文件

    $ git add file1.txt
    $ git add file2.txt  file3.txt
    $ git commit -m "add 3 files"
    

    修改添加的文件

    完成添加和提交readme.txt文件,修改操作如下:
    $ vi readme.txt

    # 修改内容
    Git is a distributed version control system.
    Git is free software.
    

    运行git status查看结果


    上述提示信息为readme.txt文件已经被修改,但是还未提交更改
    运行git diff查看被修改的内容

    确定修改结果后,按照相同步骤提交
    $ git status
    
    # 运行git status再次查看当前仓库的状态
    git status
    

    将要提交被修改的readme.txt文件
    # 提交
    git commit -m "add distributed"
    

    修改结束

    版本回退

    再次修改readme.txt文件并提交修改

    • 修改内容如下
    Git is a distributed version control system.
    Git is free software distributed under the GPL.
    

    commit的作用就是将文件修改到一定程度以后保存修改的文件,并且不会改变以前的版本,一旦文件改乱或者误删了某个文件,可以从最近的commit恢复,然后继续修改

    • git log命令查看历史记录
      git log

      git log命令显示从最近到最远的提交日志
    • git log --pretty=oneline使提示信息的输出更为简洁明了
    • 开始回退到指定版本
      Git中,用HEAD表示当前版本(最新提交的文件),上一个版本HEAD^,第50个版本HEAD~50
    • git reset回溯到指定版本
    $ git reset --hard HEAD^^
    HEAD is now at wrote a readme file
    

    cat readme.txt查看当前版本内容

    • 指定回到未来的某个版本
      git reset --hard 版本号
    • git reflog查看所操作的每一次命令
    • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用git reset --hard commit_id
    • git log可以查看提交历史,以确定要回退到哪个版本
    • 要重返新的版本(未来),用git reflog查看命令历史,以便要确定回到(未来)哪个版本

    工作区和暂存区

    • Mygit就是工作区
      -工作区隐藏的目录.git叫做Git的版本库,版本库里最重要的部分是stage(或者index),叫做暂存区,还包括第一个分支master,以及指向master的一个指针HEAD

      需要提交的文件修改一律放到暂存区,然后,可以一次性提交暂存区的所有修改
      再次修改readme.txt文档:
    Git is a distributed version control system.
    Git is free software distributed under the GPL.
    Git has a mutable index called stage.
    

    然后新增加License.txt文件,用git status查看当前状态


    readme.txt被修改了;License.txt从未被修改,状态为Untracked
    将两个文件夹都add,查看状态

    此刻暂存区如下图所示:

    执行git commit一次性将暂存区的文件提交到分支master

    提交结束,工作区clear


    管理进行的修改

    再次修改readme.txt文件

    Git is a distributed version control system.
    Git is free software distributed under the GPL.
    Git has a mutable index called stage.
    Git tracks changes.
    

    继续修改readme.txt,然后提交

    查看状态

    此时,第二次修改未被提交,原因是第二次提交并未执行git add,也就是说,第二次修改的文件依旧存储在工作区,并未add到暂存区(stage)
    git diff HEAD -- readme.txt查看工作区版本和版本库中的最新版本的区别:

    继续执行git add,把第二次修改提交,随后git commit -m

    撤销修改

    • 文件修改出错


    1. 只是在工作区进行修改,并未执行git addgit commit -m " "命令
    • 可以执行git checkout -- readme.txt丢弃工作区的修改
    1. 工作区修改出错,并且已经git add到暂存区

      但是并未执行git commit
    • 用命令git reset HEAD readme.txt可以把暂存区的修改撤销掉(unstage),重新放回到工作区:

    • 丢弃工作区修改


    删除文件

    • 添加新文件


    • 执行rm命令直接在文件管理器中删除test.txt文件
      rm test.txt

    此时执行的操作有两种:

    • 确定要删除版本库中的文件,执行命令git rm,然后git commit

      此时版本库中的文件已被删除
    • 文件误删(版本库中存有),将误删的文件恢复到最新版本,执行git checkout -- test.txt

    .......未完待续

    相关文章

      网友评论

          本文标题:Git学习笔记

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