9

在 cygwin 中使用git add --patch somefile.txt时,我得到一个奇怪的响应。

第一次输入命令后,它等待我点击enter而不显示任何内容。一旦我按下enter,我会得到以下输出

--- a/somefile.txt
+++ b/somefile.txt  
@@ -m,n +m,n @@
-Aple
+Apple
 Bear
 Cat
 Dog

Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk nor any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk nor any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk un

然后离开克拉un

做出选择后,在这种情况下,n我得到了剩下的

J - leave this hunk unn
decided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
@@ -1,4 +1,4 @@
-Lne 1
+Line 1
 Line 2
 Line 3
 Line 4
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? @@ -289,6 +289,8 @@
 Line 289
 Line 290
 Line 291
+Line 292
+Line 293
 Line 294
 Line 295
 Line 296

该模式在文件的其余部分继续存在,使我无法判断我被提示在哪个大块上。

4

2 回答 2

6

在 Cygwin 中使用 git 时,我通常会看到两个设置。

第一个(如果您git config -l还没有包含它)是关于寻呼机的(如在此gitconfig文件中)

git config core.pager C:/cygwin/root/bin/less.exe

[core]
        # we want to use cygwin's less, because msys's doesn't play well
        # with i/o via cygwin bash. This would be the default, but for the fact
        # that msysgit prepends `dirname argv[0]` to $PATH.
        pager = C:/cygwin/root/bin/less.exe

另一个是关于 TTY 的,如这篇博文所示:

export TERM=cygwin
export LESS=FRSX

这些设置之一应该使您的git add -p运行更加顺畅。

于 2013-12-18T14:49:47.890 回答
1

鉴于票数,这似乎不是唯一一个有这个问题的人。

Cygwin 的默认安装似乎不包括 git。但是,如果您单独安装了 git,它将被添加到您的 Windows 路径中,并且似乎在其他所有方面都可以使用。

IE

> which git
c:\Program Files (x86)\Git\bin\git

一旦我通过 Cygwin 安装了 git 并使用了那个版本,问题就解决了

IE

> which git
/usr/bin/git
于 2016-04-18T17:31:00.700 回答