美文网首页
Git自学与掉坑实录(三)

Git自学与掉坑实录(三)

作者: 达噜六 | 来源:发表于2017-07-07 18:14 被阅读0次
目录

Git自学与掉坑实录(一)
· 创建版本库
· 添加提交文件至版本库

Git自学与掉坑实录(二)
· 本地文件的修改与提交
· 多版本之间的切换
· 查看版本历史
· 忽略特殊文件

Git自学与掉坑实录(三)
· 工作区、暂存区、版本库的概念
· 进行到各个阶段管理(添加、删除、恢复、修改)文件的方法

Git自学与掉坑实录(四)
· 远程仓库
· Github的入门说明
· 参与开源项目

Git自学与掉坑实录(五)
· 管理(创建、合并、删除)分支
· 解决冲突
· Fast forward模式与禁用(是否显示合并信息)
· bug分支
· 功能分支
· 多人协作(查看信息、推送远程库、抓取)

Git自学与掉坑实录(六)
· 创建标签
· 删除标签(本地与远程)

Git自学与掉坑实录(七)
· 显示代码颜色
· 忽略文件与强制添加某些忽略文件
· 搭建Git服务器

<br />

七、工作区与暂存区

1.工作区(Working Directory)
电脑里能看到的目录,比如"learngit"文件夹就是一个工作区。


2.版本库(Repository)
经过一系列的操作,再回头来看版本库的概念更加容易理解。

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

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫Head。(Head的概念在"六、版本切换"中也有提到。)

[廖雪峰-工作区和暂存区](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013745374151782eb658c5a5ca454eaa451661275886c6000)

前面说到,当我们添加文件至版本库时分两步,
输入命令$(添加到仓库):git add

实际上是把文件添加到暂存区。

输入命令$(提交到仓库):git commit

实际上是把暂存区的所有内容提交到当前分支。创建Git版本库时,Git自动创建了唯一一个master分支,所以,git commit就是往master分支上提交更改。

这时候我们查看一下版本库的状态:
输入命令$:git status

"modified"表示"wil.txt"被修改了,"Untracked files"表示"woo.txt"文件还未被添加过。

输入命令$:git add wil.txt woo.txt&git status


此时,"wil.txt"和"woo.txt"进入了暂存盘

</br>
输入命令$:git commit -m"gogogo"&git status


提交完成,文件进入master分支,暂存盘清空

<br />

八、文件管理

1.管理修改
· 先add才能commit;
· git diff只能查看工作区的修改内容。

2.撤销(Unstage)修改
· 撤销工作区的修改
输入命令$(撤销在工作区未提交到"**分支"的修改)git checkout -- file

这里会有两种可能性:
· 一种是readme.txt修改后还没有被放到暂存区,撤销修改后就回到和版本库一模一样的状态;
· 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是暂存区有内容恢复到暂存区内容,暂存区空的恢复回到版本库。

没用"--",就变成了“切换到另一个分支”的命令。

· 撤销暂存区的修改
输入命令$(撤销在暂存区的内容)git reset HEAD file

再用上一步命令,撤销工作区的文件即可。
过程中可以随时配合
输入命令$(查看工作区文件内容)cat file
输入命令$(查看版本库状态)git status

· 撤销版本库的修改
输入命令$(回退到上一个版本)git reset --hard HEAD^

回退到上一个版本有条件的,就是还没有把自己的本地版本库推送到远程。

</br>
3.删除文件
· 删除工作区中的文件
输入命令$(删除工作区中的文件)rm file

· 删除版本库中的文件
输入命令$(删除版本区中的文件并提交)git rm file&git commit

· 从版本库中恢复文件
输入命令$(撤销对工作区中文件的修改)git checkout -- file

相当于对工作区内容的撤销。工作区改乱了,从版本库中重新checkout一份最新的文件。

</br></br>

小结

$ git add file #添加file到仓库。实际上是添加到暂存区。
$ git commit -m "aaa "#提交filename到仓库,并说明aaa。实际上是把暂存区的所有内容提交到当前分支。
$ git checkout -- file#丢弃修改在工作区的全部修改,用于工作区改乱的情况。可能恢复成从暂存区或版本库的状态。
$git reset HEAD file#撤销暂存区的修改,放回工作区(再选择工作区的口令进行下一步操作),用于暂存区改乱的情况。
$ git reset --hard HEAD^ #版本回退,用于已经"commit"的情况。
$rm file#删除工作区的文件。
$git rm file&git commit#删除版本库中的文件并提交,注意操作需要提交到版本库。
· 如果一个文件已经被提交到版本库,那么就不用担心误删。但需要注意,我们只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

<br /><br /><br /><br /><br /><br /><br />

主要参考:

· 廖雪峰Git教程

相关文章

  • Git自学与掉坑实录(一)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(三)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(二)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(六)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(七)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(五)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Github入门 — Git自学与掉坑实录(四)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • 为什么我的代码合并丢了

    真实事件,占坑填写。关键词:git merge,git cherry-pick,三路合并算法。祖先节点的不变与变化...

  • .gitignore文件

    git rm与git rm --cached 1) gitignore文件 在git中如果想忽略掉某个文件,不让...

  • Mac 安装Tensorflow Object Detectio

    步骤与坑: 0. 先于所有: cd $HOME/workspace git clone https://git...

网友评论

      本文标题:Git自学与掉坑实录(三)

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