Git相当于`hg cp`

时间:2016-04-25 18:49:07

标签: git

我的任务是将一个非常大的文件(已经提交)拆分/解压缩成许多较小的文件。使用Hg我会将提取的文件添加为现有大文件(Sub Shift() Dim Time As Date, cel As Range For Each cel In Range("F2:F100000") If IsEmpty(cell.Value) Then Exit For If Time > TimeValue("06:00:00") And Time < TimeValue("14:00:00") Then cel.Offset(0, 2).Value = "Day" End If Next End Sub hg cp)的副本,这样当我将我的分支合并到master时,在我工作时对大文件进行了其他更改将在我的extracte文件中跟踪/冲突。

Git中是否有等价物?

2 个答案:

答案 0 :(得分:5)

您应该只复制文件,而不是通过git添加和提交。 git使用哈希来检测相同的文件,并且没有复制mercurial,subversion等文件的功能。

git通过相同的文件哈希或比较来检测原点。这只是猜测而你无法做到这一点(有时候会有什么痛苦......)

如果要将文件拆分为不同的部分,可以将原始文件复制到目标文件并提交新文件。然后处理单个文件。

这个问题将为您提供更多信息:How does git track source code moved between files?

答案 1 :(得分:2)

您可以使用git add -p在git中执行相同操作。

名为patch modeinteractive mode。执行git add -p后,您将获得可供选择的选项列表:

 Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?

如果我理解正确,你有一个大文件,你只想使用(添加)文件的一部分。在这种情况下,您需要使用 s 将其拆分,然后选择 y / n 是否使用此块。

<强> And here the option you will have to choose from:

  • y 为下次提交暂存这个大块
  • n 不要为下一次提交暂存此hunk
  • q 退出;不要把这个大块或其他任何一个上台
  • a 阶段这个大块头以及所有后来的文件中的帅哥
  • d 不要在文件中暂存此hunk或任何后来的帅哥
  • g 选择一个大块来转到
  • / 搜索与给定正则表达式匹配的大块
  • j 留下这个大块未定,看下一个未定的大块头
  • J 留下这个帅哥未定,见下一个帅哥
  • k 让这个帅哥犹豫不决,看看以前未定的大块头
  • K 留下这个大块未定,见上一个大块头
  • s 将当前的大块分成较小的帅哥
  • e 手动编辑当前的hunk
  • 打印帮助

enter image description here