`
leeqq
  • 浏览: 138135 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Git分块提交文件

阅读更多

一直好奇,sourcetree是怎么做到将一个文件里的多块修改分区块部分添加提交。甚至按行级别进行提交,今天终于知道怎么实现的了

 

其实就是用   git add 命令,只不过要加上 -p 这个参数


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

下面就介绍如何只提交最后一个区块(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 参数。其它的和暂存的时候是一样的,这里就不做演示了

 

 

 

 

  • 大小: 25.7 KB
  • 大小: 20.4 KB
  • 大小: 11.5 KB
  • 大小: 21 KB
  • 大小: 7.6 KB
  • 大小: 17.9 KB
  • 大小: 10.5 KB
  • 大小: 24.6 KB
  • 大小: 25.9 KB
  • 大小: 18.7 KB
  • 大小: 18.3 KB
  • 大小: 12.2 KB
分享到:
评论

相关推荐

    Git的虚拟文件系统:在企业规模启用Git.zip

    - **文件内容分块**:将文件内容分解为小块,并重用相似内容,降低存储需求。 - **高效缓存**:通过智能缓存策略,减少不必要的文件读取,提高响应速度。 - **并行处理**:利用多核处理器,加速Git操作。 - **跨...

    git使用教程

    - `git reset -p`, `git checkout -p`, `git add -p`: 可以进入交互模式,对文件的改动进行分块处理。 3. **跳过暂存区操作** - `git commit -a`: 直接提交所有未添加到暂存区的改动。 - `git commit files`: ...

    Torch7 git文件,官网clone太慢

    2. **改变Git的下载策略**:通过设置`--depth=1`参数,可以只克隆最近的提交,从而减少下载的数据量。然而,这会丢失历史版本信息。如果只需要最新稳定版,这种方式非常有效。 ``` git clone --depth=1 ...

    文件服务器

    为了处理大文件上传,可能还需要使用到像Commons FileUpload这样的库,它可以处理多部分/表单数据,有效地分块读取文件,防止内存溢出。 文件下载则涉及到HTTP响应的生成。当用户请求下载一个文件时,服务器需要...

    Node.js-GitKit.js纯JavaScript实现的Git(支持Node.js和浏览器)

    2. **性能优化**:对于大仓库,可能需要考虑优化读写速度,例如分块处理大文件,避免一次性加载所有数据。 3. **错误处理**:在可能出现错误的地方添加合适的错误处理代码,确保应用的健壮性。 4. **版本兼容性**:...

    [文件数据]文件管理器(PHP)_loaddir.zip

    - `$_POST` 超全局数组:处理表单提交的非文件数据。 4. **安全与权限**: - 使用`chmod()`确保只有授权用户可以访问、修改或删除文件。 - 输入验证:对用户上传的文件名和路径进行清理和验证,防止路径遍历攻击...

    Ext2.0 文件上传组件

    - 分块上传:对于大文件,可以分块上传,减少内存占用和提高上传速度。 - 并行上传:允许同时上传多个文件,提高整体上传效率。 7. **工具支持**: - 开发和调试工具:使用浏览器的开发者工具,如Chrome ...

    比较任意两个csv文件

    9. **版本控制**:如果你的CSV文件是在版本控制系统如Git中管理的,可以通过查看提交历史来跟踪文件的变化,这也是比较的一种方式。 10. **错误处理**:在比较过程中,应考虑文件格式不匹配、编码问题、缺失数据等...

    文件比对.rar

    - **分块比对**:大文件可以分成小块分别比对,提高效率。 - **增量比对**:仅比较新旧文件的不同部分,减少不必要的计算。 在实际使用"文件比对.rar"这个工具时,用户可能需要了解如何导入待比对的文件,设置...

    0501文件共享系统代码

    7. **性能优化**:对于大文件,系统可能需要支持断点续传和分块上传,以减少网络中断带来的问题。同时,缓存策略(如CDN)可以提高文件下载速度。 8. **安全性**:确保文件的安全传输(如使用HTTPS)和防止非法访问...

    用于tus可恢复文件上传协议v100的纯PHP服务器和客户端

    "ankitpokhrel"可能是作者的名字,"tus-php"是项目名称,"ccc96bb"则可能是Git仓库中的某个特定提交的哈希值,代表了项目的一个版本。 详细知识点: 1. **tus协议**:tus(Transfer Uploads Safely)协议定义了一...

    商业编程-源码-精美的WEB在线文件管理源码.zip

    2. 文件下载:提供安全的下载链接,防止文件被非法获取,同时优化大文件的分块下载。 3. 文件预览:对于图片、文档等类型,可以实现在线预览,需要集成相应的库或服务,如PDF.js用于预览PDF文件。 4. 文件搜索:快速...

    This repository contains several examples how to develop w.zip

    10. **版本控制**:在软件开发中,ZIP文件常用于版本控制系统的源代码打包,如Git的`git archive`命令可以生成包含特定提交的ZIP文件。 以上就是关于“开发ZIP压缩文件”的一系列知识点,涵盖了从基本概念到实际...

    .net 做的文件,视频的上传和管理

    当用户通过表单提交文件时,服务器端的控制器方法会接收到这个对象,然后可以调用`SaveAs`方法将文件保存到服务器的指定目录。此外,为了安全起见,应进行文件类型检查,防止恶意文件上传。 2. **视频管理**: ...

    mydata.zip

    2. **版本控制**:在版本控制系统如Git中,提交的ZIP文件可以保留文件历史,方便追踪和回溯。 总结,mydata.zip不仅是一个简单的压缩文件,它是数据存储、管理、传输和共享的实用工具。了解其背后的工作原理和使用...

    goseaweedfs:适用于SeaweedFS的完整Golang客户端

    支持的 生长 地位 集群状态 文件管理器 上载 提交 删除 代替 使用内置清单处理程序上传大文件,自动文件拆分和分块 管理员操作(挂载,卸载,删除卷等)贡献如果发生问题,请发给我,或者: 叉吧! 创建功能分支: ...

    临时添加到版本控制

    此外,Git还提供了其他高级功能,如`git add -p`,它允许你分块或部分暂存文件的更改,这在处理大型文件或复杂更改时非常有用。`git reset`命令则可以用来取消暂存,将文件从暂存区移回工作区。 理解并熟练掌握...

    假期作业.rar

    RAR文件支持分卷压缩,可以创建多部分的压缩文件,便于大文件的分块传输。 2. **文件管理**:在处理“假期作业.rar”时,理解如何解压文件至关重要。可以使用WinRAR、7-Zip等工具来打开和提取内容。解压后,应按照...

    小程序源码 tewilove-faplayer-f78cef8.part02.zip

    2. **源代码管理**:文件名中的 "f78cef8" 很可能是一个 Git 版本控制系统的提交哈希值,这表明该项目使用了 Git 进行源代码版本管理和协作。 3. **文件分割**:大文件通常会被分割成多个部分以便于上传、下载或...

    Atom-atom,原子框架核心。通过在github上创建一个帐户为atomwares/atom开发做出贡献。.zip

    8. **Git集成**:内置Git支持,可以查看文件的版本历史,提交更改,以及与其他开发者协作。 Atom的开放源代码特性使得全球的开发者都能为其做出贡献。如果你想参与Atom的开发,你需要在GitHub上创建一个账户,并...

Global site tag (gtag.js) - Google Analytics