美文网首页
版本管理

版本管理

作者: 吃橘子的冬天 | 来源:发表于2018-01-10 15:05 被阅读13次

工作区(Working Directory):

就是电脑能看得到的目录,比如刚刚创建的learngit文件夹

版本库(Repository):

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

Git版本库中存了很多东西,其中最重要的就是叫Stage的暂存区,还有Git为我们创建的第一个分支master,以及指向master的一个指针——HEAD。

前面我们把文件往Git库添加的时候,是分两步执行的:

1. 用git add把文件添加进去,实际上是添加到暂存区;

2. 用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。


g@g-PC MINGW64 /learngit (master)

$ vi readme.txt

g@g-PC MINGW64 /learngit (master)

$ cat readme.txt

Git is a distributed version control system.

Git is free software distributed under the GPL.

Git has a mutable index called stage.


g@g-PC MINGW64 /learngit (master)

$ touch LICENSE

 g@g-PC MINGW64 /learngit (master)

$ cat LICENSE

abc

g@g-PC MINGW64 /learngit (master)

$ git status # 查看状态

On branch master

Changes not staged for commit: # 修改了但未被提交

  (use "git add <file>..." to update what will be committed)

  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   readme.txt

Untracked files: # 没有被添加过 (Untracked : 无路径的;无脚印的,无足迹的) 

  (use "git add <file>..." to include in what will be committed)

        LICENSE

no changes added to commit (use "git add" and/or "git commit -a") # 没有更改且已被提交的文件 


g@g-PC MINGW64 /learngit (master)

$ git add readme.txt

g@g-PC MINGW64 /learngit (master)

$ git add LICENSE

warning: LF will be replaced by CRLF in LICENSE.

The file will have its original line endings in your working directory.

g@g-PC MINGW64 /learngit (master)

$ git status

On branch master

Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)

        new file:   LICENSE

        new file:   biubiu

        modified:   readme.txt


g@g-PC MINGW64 /learngit (master)

$ git commit -m "undestand how stage work" # Git的提交,是一并全部提交,而不能单个提交

[master 50b7574] undestand how stage work

 3 files changed, 4 insertions(+), 1 deletion(-)

 create mode 100644 LICENSE

 create mode 100644 biubiu

g@g-PC MINGW64 /learngit (master)

$ git status # 此事的暂存区已经干干净净 working tree clean

On branch master

nothing to commit, working tree clean

git diff    #是工作区(work dict)和暂存区(stage)的比较
git diff --cached    #是暂存区(stage)和分支(master)的比较

在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100

g@g-PC MINGW64 /learngit (master)
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
g@g-PC MINGW64 /learngit (master)
$ git reset --hard HEAD^ #回滚到上一个版本
HEAD is now at c3528d1 append GPL
g@g-PC MINGW64 /learngit (master)
$ cat readme.txt
Git is a version control system.
Git is free software.
Git is a distributed version control system.
Git is free software distributed under the GPL.


g@g-PC MINGW64 /learngit (master)
$ git reset --hard 932f121 #回滚到某一版本(版本号不用写全,Git会自动寻找)
HEAD is now at 932f121 del 2 rows
g@g-PC MINGW64 /learngit (master)
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.

查看命令历史,以便回过了之后到未来版本

g@g-PC MINGW64 /learngit (master)
$ git reflog
932f121 (HEAD -> master) HEAD@{0}: reset: moving to 932f121
c3528d1 HEAD@{1}: reset: moving to HEAD^
932f121 (HEAD -> master) HEAD@{2}: commit: del 2 rows
c3528d1 HEAD@{3}: commit: append GPL
311bbf5 HEAD@{4}: commit (initial): wrote a readme file

相关文章

  • 第十三章 版本管理

    版本管理指项目整体版本的演变过程管理。 版本控制指借助版本控制工具追踪代码的每个变更。 一、版本管理 版本管理关心...

  • Git三剑客之Git

    一、Git概述 版本管理的演变1)集中式的版本管理(SVN) 有集中的版本管理服务器 具备文件版本管理和分支管理能...

  • SAP 版本管理、传输请求、版本比较

    版本管理 传输请求 版本比较 一、版本管理 版本管理是什么 版本管理是指对软件开发过程中各种程序代码、配置文件及说...

  • Git基础

    1.1 版本管理 1.1.1 什么是版本管理 版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。 ...

  • git和github

    一. git 1 - 版本管理 ① 什么是版本管理 版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内...

  • 9- 快速上手Linux玩转典型应用- git版本管理

    10- git版本管理 推荐使用git进行代码的版本管理。文档管理。 网盘保存等。没有版本管理。每次提交可以进行回...

  • 规范化版本管理实践

    这里说的版本管理,特指发布的版本管理。而不是指代码的版本管理。当然,代码的版本管理也是数据信息来源的一部分。 规范...

  • 如何用 GVM 管理 Go 项目

    使用 Go 版本管理器管理多个版本的 Go 语言环境及其模块。 Go 语言版本管理器(GVM)是管理 Go 语言环...

  • 版本管理

    今天我主要的工作,就是针对自己编写的业务代码,根据昨天代码评审人员的反馈,进行相应的修改,以便提交到UAT环境,进...

  • 版本管理

    第一章目的 本规范详细规定软件项目版本管理的对象、存储目录、分支、权限、维护等内容,使软件项目版本管理流程化并规范...

网友评论

      本文标题:版本管理

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