在cygwin中使用git add --patch somefile.txt
时,我得到了一个奇怪的回应。
首次输入命令后,它等待我按输入而不显示任何内容。按后输入,我得到以下输出
--- 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
对于文件的其余部分,模式仍在继续,让我无法分辨出我被提示的哪个块。
答案 0 :(得分:6)
在使用git和Cygwin时,我经常会看到两个设置。
第一个(如果您的git config -l
尚未包含它)是关于寻呼机的(如此gitconfig
file)
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,如this blog post:
export TERM=cygwin
export LESS=FRSX
其中一项设置应使git add -p
运行更顺畅。
答案 1 :(得分:1)
鉴于投票数量,这已经收到它看起来我不是唯一有这个问题的人。
似乎Cygwin的默认安装不包含git。但是,如果您单独安装了git,它将被添加到您的Windows路径中,并且似乎可以用于其他所有方面。
即
> which git
c:\Program Files (x86)\Git\bin\git
一旦我通过Cygwin安装git并使用该版本,问题就解决了
即
> which git
/usr/bin/git