gpt4 book ai didi

git - 我可以使用 SVN 或 Mercurial 只提交部分代码吗?

转载 作者:IT王子 更新时间:2023-10-29 00:53:33 27 4
gpt4 key购买 nike

我通常使用 Tortoise SVN,但我一直在研究 Mercurial,因为它是一个分布式版本控制系统。

在这两个系统中,我正在寻找的是一种工具,可以让我只选择文件的一部分并提交它们。如果我现在想这样做,我必须将文件复制到一个临时版本,并只保留我想在当前版本中提交的更改,然后在提交后再次将临时版本复制到当前版本。这真是太麻烦了,程序应该能够为我做这件事。

我听说 Git 支持这个,请告诉我这是否正确。

最佳答案

Mercurial 可以用 record 做到这一点扩展名。

它会提示您输入每个文件和每个 diff hunk。例如:

% hg record
diff --git a/prelim.tex b/prelim.tex
2 hunks, 4 lines changed
examine changes to 'prelim.tex'? [Ynsfdaq?]
@@ -12,7 +12,7 @@
\setmonofont[Scale=0.88]{Consolas}
% missing from xunicode.sty
\DeclareUTFcomposite[\UTFencname]{x00ED}{\'}{\i}
-\else
+\else foo
\usepackage[pdftex]{graphicx}
\fi

record this change to 'prelim.tex'? [Ynsfdaq?]
@@ -1281,3 +1281,5 @@
%% Local variables:
%% mode: latex
%% End:
+
+foo
\ No newline at end of file
record this change to 'prelim.tex'? [Ynsfdaq?] n
Waiting for Emacs...

提交后,剩余的差异将被留下:

% hg di
diff --git a/prelim.tex b/prelim.tex
--- a/prelim.tex
+++ b/prelim.tex
@@ -1281,3 +1281,5 @@
%% Local variables:
%% mode: latex
%% End:
+
+foo
\ No newline at end of file

或者,您可能会发现使用 MQ(Mercurial 队列)将存储库中的各个更改分成补丁更容易。还有一种 MQ 记录变体 (qrecord)。

更新:也试试 crecord扩展,它为大块/行选择提供了一个 curses 接口(interface)。

crecord screenshot

关于git - 我可以使用 SVN 或 Mercurial 只提交部分代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com