美文网首页
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深入浅出 Part1_快速操作指南

    Git专题 学习笔记| git深入浅出 Part1_快速操作指南 学习笔记| git深入浅出 Part2_Git...

  • git 入门

    git 入门学习笔记----3个入门命令:git init、git add、git commit -v 学习场景(...

  • git记录

    Git Magic图解gitgit 学习笔记git游戏(学习)1、消除文档路径中文乱码git config --g...

  • Git学习笔记--常用命令整理

    超实用Git学习笔记 Git全局配置git config --global user.name "用户名"git ...

  • Git常用命令与学习总结

    安装Git Git的下载地址:Git官网下载地址 学习网址 git 学习笔记- Book 在线练习地址 基础常用指...

  • git学习笔记(二)—— git的简单操作

    这是本系列学习笔记的第二篇git 学习笔记(一)—— 初识 git 前言 本篇文章将简要的介绍 Git 的一般操作...

  • 关于crlf

    Git学习笔记:Git设置CRLF(行尾换行符) git config --global core.autocrl...

  • GIT

    Git学习笔记 Git 与 Github对接: cd到当前文档 git init初始化git git add -A...

  • Git学习笔记

    git学习笔记 声明 本文是本人学习Git过程中所做的笔记,以便日后查阅,文中多有错漏之处,不建议用作学习材料,文...

  • Git学习笔记

    git 学习笔记 注册个人信息 git config --global user.name(你的用户名) git ...

网友评论

      本文标题:Git学习笔记

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