zoukankan      html  css  js  c++  java
  • Git分块提交文件

    用 git add 命令,只不过要加上 -p 这个参数,带上要add的文件


     先看这个文件的变化,修改,删除一行(换为空行),新增加一行。

    下面就介绍如何只提交最后一个区块(hunk)

    sourcetree中很简单,只需要点击一下stage hunk就好了,那git add -p是怎么实现的呢


     

    可以看到现在显示的是第一个区块,最后一行是需要我们来做决定,需要输入命令来操作这个区块,暂时选择 j,  什么意思等到下个区块再看



     

    现在下面蓝色的选项比之前多了k, K,至于这里面每项表示什么意思,git官网的文档上有,这里只要直接回车(默认就是?表示help嘛)



     

    这里面对每一项做了解释,这样就不需要记住第个选项的意思了,需要就看一下就好了。

    比如选择g的时候,会出现下面这样的选择



     三处修改选择一个前往,我们要提交第三个区块,所以选择3

    在出现第三个区块先项时,选择y,表示暂存此区块



     在看此时的文件状态,第三个区块已经被暂存

    下面看如何按行提交,比如提交剩下的两个区块每二个区块中的删除行,而不要新增加行

    仍然是 git add -p命令

    在出现这个区块是,选择e



     
    接下来就会进入编辑环境,需要知道点vim的知识

     

     

    进行编辑,请关注红框的位置



     请对比修改前后的区别

    最后通过 :wq 保存并退出编辑



     

    可以看到删除已经暂存,但是添加行还在,没有被暂存。

    再看看已经暂存的修改



     第三区块, 第二区块的一行,两处都在这了。

    如果想取消这些暂时或者部分区块,或者按行级别,其实和刚才的操作类似,只是用的是git reset命令

    通过git status 查看文件状态,可以看到提示



     

    通过git reset HEAD 这个命令就可以了,如果分区块或者按行级别请加 -p 参数。其它的和暂存的时候是一样的,这里就不做演示了

  • 相关阅读:
    二叉树的前中后序遍历(非递归)
    剑指offer——圆圈中最后剩下的数字
    剑指offer——和为s的连续正整数序列
    leetcode300.最长上升子序列
    将网络描述符设置为非阻塞的场景
    leetcode72.编辑距离
    浅谈各种锁机制
    TCP如何保证可靠传输?
    JavaScript(七)
    JavaScript(六)
  • 原文地址:https://www.cnblogs.com/kinwing/p/11170520.html
Copyright © 2011-2022 走看看