草庐IT

shell-mode

全部标签

git - 你如何将 git add patch -p mode 与 diff 的 ignore-all-space 结合起来

如何使用补丁模式执行gitadd但忽略空格更改。该用例适用于重新格式化文件并对其进行更改的情况。我想先单独提交真正的代码更改(如gitdiff-wpath所示),然后将重新格式化作为单独的提交提交。 最佳答案 这是对relatedquestion的改编.gitdiff-w--no-color|gitapply--cached--ignore-whitespace它的好处是您无需使用stash、临时文件或对您的工作文件夹执行reset--hard。附录上面的解决方案只改变了除了空白编辑之外的阶段。这没有解决补丁问题,尽管在这种情况下使

git - 如何在 Windows 7 中更改 git shell 的启动目录

我下载并安装了GitHub提供的程序,包括GitShell。问题是我想将GitShell程序的主目录设置为自定义的主目录,但我不知道该怎么做。我尝试从GitShell快捷方式的属性菜单中更改“开始于”字段,但没有成功。任何人都可以给我一些关于如何将GitShell的主目录更改为自定义主目录的信息吗? 最佳答案 右键单击GitShell选择属性移动到目标字段的末尾将--open-shell更改为--open-shell=c:\your_dir 关于git-如何在Windows7中更改git

powershell - Windows 中的 Git Shell : patch's default character encoding is UCS-2 Little Endian - how to change this to ANSI or UTF-8 without BOM?

在Windows中使用GitShell创建diff补丁(使用GitHubforWindows时),补丁的字符编码将为UCS-2Little根据Notepad++的Endian(参见下面的屏幕截图)。我怎样才能改变这种行为,并强制git使用没有BOM字符编码的ANSI或UTF-8创建补丁?因为无法应用UCS-2LittleEndian编码的补丁而导致问题,我必须手动将其转换为ANSI。如果我不这样做,我会收到“fatal:unrecognizedinput”错误。从那时起,我也意识到我必须在Notepad++中手动将EOL从Windows格式(\r\n)转换为UNIX(\n)(编辑>EO

Git 为每次提交运行 shell 命令

我想遍历一系列提交并对每个提交执行shell命令。如果命令失败,我希望步行停止,否则继续前进。我查看了filter-branch,但我不想重写提交,只是检查它们。for-each-ref似乎不允许您指定要执行的范围。我的具体问题是我创建了一堆提交,我想确保每个提交都是可构建的。我想做类似的事情:gitforeachorigin/master..master'gitsubmoduleupdate&&makeclean&&make'我当然可以编写一个shell脚本来执行此操作,但看起来git可能有一个很好的方法来执行此操作。 最佳答案

git - git 可以在 "silent mode"运行吗?

是否可以在“静默”模式下执行任何git命令?例如,我是否可以说“gitpushorigin”并且在屏幕上看不到任何显示?我想我可以将IO重定向到/dev/null(工作正常),但是..git自然允许这样的事情吗?下面是一个自动执行EOD提交的快速脚本,当我需要赶火车并且不想在本地计算机上留下代码时使用1clear23cd4cdrepo/active56foriin*7do8cd$i9echo"Pushing"$i10gitadd.-A>>/dev/null11gitcommit-a-m"EODautomaticcommit">>/dev/null12gitpushorigin>>/de

windows - Git for Windows : . bashrc 或 Git Bash shell 的等效配置文件

我刚刚为Windows安装了Git,很高兴看到它安装了Bash。我想以与在Linux下相同的方式自定义shell(例如,为ls-l设置别名,如ll),但我似乎做不到找到.bashrc或等效的配置文件。我应该编辑什么? 最佳答案 创建一个.bashrc~/.bashrc下的文件你走了。同样对于~/.gitconfig.~通常是你的C:\Users\文件夹。打字echo~在GitBash终端中会告诉您该文件夹是什么。如果您无法创建文件(例如运行Windows),请运行以下命令:copy>~/.bashrc该窗口将输出一条错误消息(未找到

git - 如何从 Git 的未暂存更改中删除显示 "old mode 100755 new mode 100644"的文件?

出于某种原因,当我最初为我的一个git项目从存储库中pull数据时,我的工作副本中有大量文件没有进行明显的更改,但一直显示在我的unstagedchanges区域中。我在Windowsxp上使用GitGui,当我去查看文件以查看发生了什么变化时。我只看到:oldmode100755newmode100644谁知道这是什么意思?如何从我的未暂存更改列表中获取这些文件?(不得不浏览100个文件非常烦人,只是为了挑选出我最近编辑过并想要提交的文件)。 最佳答案 对我来说这看起来像unix文件权限模式(755=rwxr-xr-x,644=r

linux - 以编程方式启动交互式 shell

我需要以编程方式做一个交互式shell(在Node.js中,但任何语言都可以)。最重要的是我想启动任何语言(node、ruby、erlang等)的REPL并能够自动完成pri\t我想在stderr中获取输出(例如)print()println()printf()而且因为它是用语言REPLcompgen不能使用的。我尝试了很多方法,但似乎失败了,因为shell在以编程方式打开时无法交互。Launchin/bin/sh-i只会产生如下错误:bash:cannotsetterminalprocessgroup(XXXX):Inappropriateioctlfordevice我听说在没有终端

linux - 将 tar.gz 打包成 shell 脚本

我想知道如何将tar.gz文件打包成shell脚本,就像idk**.bin那样。所以我可以在一个shell文件而不是tar.gz中交付程序 最佳答案 有一个LinuxJournalarticle详细解释如何执行此操作,以及用于打包有效载荷的代码等。正如EtanReisner在他的评论中所说,提取/安装脚本知道如何切断其尾部以获得先前连接的有效载荷。以下是其工作原理的示例:#!/bin/bash#aself-extractingscriptheader#thiscanbeanypreferredoutputdirectorymkdir

linux - 为什么路径中的波浪号没有在 shell 脚本中展开?

我试图让AndroidStudio启动器(studio.sh)使用我手动安装的Java(不是系统范围的默认Java)。因为我已经在我的.bashrc文件中声明了PATH和JAVA_HOME,所以我只是在shell脚本中获取该文件:./home/foobar/.bashrc但由于某些原因,$JAVA_HOME/bin/java仍未被脚本识别为可执行文件。我添加了一些日志记录,发现JAVA_HOME已扩展为~/install/java...,即波浪号运算符未扩展到主目录中。我做了一些搜索,但找不到任何不扩展的原因。波浪号是Bash特有的功能吗(脚本使用#!/bin/sh,而LinuxMin