在Windows命令提示符下工作时,我的所有路径都指示导向分隔符使用反斜杠\
,使用GIT命令时,所有路径都使用forwardslash /
。如何更改GIT的输出以镜像我的命令行输出?
示例不一致的目录指示符;
D:\git\demo>git status --s
A test/subdir/foo.txt
答案 0 :(得分:3)
如何更改GIT的输出以镜像我的命令行输出?
首先,所有git命令都在git bash
子shell中执行,这解释了为什么你会看到“/
”。
'\
'是bash会话的转义字符,这就是它在任何bash命令输出中都没有使用的原因。
您需要使用git包装器(PATH中的git.pat集)才能将/
替换为\
。
git.bat
:
C:\prgs\git\latest\bin\git.exe %*|C:\prgs\git\latest\usr\bin\sed.exe -e 's:/:\\\\:'
确保git.bat
中的<{em> git.exe
之前设置了%PATH%
where git
:输入C:\prgs\git\latest
以检查git的顺序发现。
并将git.exe
替换为安装Git的路径。
通过指定sed.exe
和var dtOptions = {
"dom": '<"clearfix"><"pull-left"l<"toolbar">><"pull-right"Bf>r<"horizontal-scroll"t><"pull-left"i><"pull-right"p><"clearfix">',
"pageLength": 10,
"paging": false,
"columnDefs": [
{ "visible": false, "targets": hiddenCols },
{ "orderable": false, "targets": allColumns }
],
"sort": true,
"order": [[0, 'asc'], [1, 'asc']],
"displayLength": 15,
"drawCallback": function (settings) {
var api = this.api();
var rows = api.rows({ page: 'current' }).nodes();
var last = null;
var CommentCol = -1;
_.each(api.columns().header(), function (e, i) {
if(e.innerHTML == "Comments"){
CommentCol = i;
}
})
api.column(groupByCol, { page: 'current' }).data().each(function (group, i, $currTable) {
if (last !== group) {
$(rows).eq(i).before(
'<tr class="group"><td class="nowrap" colspan="3">' + buttons + '<div style="margin-right:6px;"><b>Lot:</b> ' + group + '</div></td><td colspan="16"><b>Comments:</b> ' + $currTable.rows(rows[i]._DT_RowIndex).data()[0][CommentCol] + '</td></tr>'
);
last = group;
}
});
}
}
的完整路径,您一定会使用正确的可执行文件。
答案 1 :(得分:1)
因为您所寻找的内容似乎并非特定“如何让Git在文件路径中使用\
”而是“如何让Git使用\
”生成文件路径,你可以通过sed
(包装在Git Bash中)管道输出,如下所示:
$ git status --s | sed 's/\//\\/g'
M dir\file.py
?? dir\input001.txt
?? dir\output001.txt
并且为了避免每次都键入sed
,您可以配置Git别名来为您执行此操作:
[alias]
ws = "!ws() { : git status ; git status --short $@ | sed 's/\\//\\\\/g' ; } && ws"
可以让你这样做:
$ git ws
M dir\file.py
?? dir\input001.txt
?? dir\output001.txt