zoukankan      html  css  js  c++  java
  • Git(二)

    参考来源 https://www.liaoxuefeng.com

    前言常识:

    1.git没有中央服务器的概念,只是为了合并代码方便而已。

    2.windows平台使用linux、unix工具的时候,需要cygwin这样的模拟环境。 git也需要。

    3.Unix的哲学是“没有消息就是好消息

    4.在Git中,用HEAD表示当前版本  上一个版本就是HEAD^      HEAD指针指向的是当前 

    5.暂存区的内容才会被提交 

    一:版本回退

    1.git log   或者  git log --pretty=oneline :  查看commit记录

       git status:描述的是工作目录和暂存区的情况

    2.版本回退:回退到哪次commit。  git reset --hard HEAD^     执行此命令后,然后执行 git log 最新的那次commit就看不到了!    所以通过 git log 查找commit ID 是靠不住的,才有了下面的 git reflog

       补充:HEAD表示当前版本 上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

      版本穿梭: git reset --hard 3628164(commit的ID)

            所以只要知道commit的ID,我们就能任意的穿梭版本。 那么我们如何知道commit的ID呢?  用 git reflog 

    二: working directory和Stage   

    三:撤销

    命令 git checkout -- readme.txt 意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

    一种是readme.txt自修改后还没有被放到暂存区(暂存区属于版本库哦),现在,撤销修改就回到和版本库一模一样的状态;

    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    总之,就是让这个文件回到最近一次 git commitgit add 时的状态。

    用命令  git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区

    git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区。

    总结:

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout -- file(没有执行add哦   还在工作区)

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git reset HEAD file (撤销add 此时在暂存区),就回到了场景1,第二步按场景1操作。

    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。(让版本库指针回退  此时在本地仓库)

    四:删除文件(本地仓库): 从版本库中删除文件

    1. git rm test.txt 相当于 rm test.txt  +  git add test.txt
        git commit -m "remove test.txt"   提交到版本库

    2.删除错了 git checkout -- test.txt

      文件删除后如果执行add,添加到了暂存区,git checkout -- test.txt是无法执行的。(参照上面第三节场景二)

  • 相关阅读:
    UI:UITableView表视图
    UI:页面传值、单例模式传值、属性传值、NSUserDefaults 数据持久化
    UI:UINavigationController、界面通信
    UI:UIScrollView、UIPageControl
    UI:tomcat(说话小程序)、相框动画、UISgmentcontrol、UISwitch
    UI:触摸事件 与 事件的回应
    UI:转自互联网资料
    UI:MVC设计模式
    OC:copy 与 retain 的区别
    UI:数据持久化
  • 原文地址:https://www.cnblogs.com/njqa/p/7340008.html
Copyright © 2011-2022 走看看