Articles of git bash

如何在Git中使用Git for Windows更改目录?

我怎样才能改变到Git Bash中的目录C:/Users/myname/project name ?

如何不覆盖以前的terminal内容

我不确定这是否是重复的,但是我不知道要search什么,因为我不知道这个现象的名称。 基本上,每当我在某些计算机上使用vim和less ,以前的terminal内容被当前文件的缓冲区覆盖(我认为)。 如果我滚动滚动条而不是当前程序的命令,我可以看到以前的terminal内容,但是一些以前的行已经被当前的程序覆盖了。 看起来像vim这样的缓冲区(我认为)有多less行,terminal有多less条线被覆盖了。 当我从vim / less退出时,这些线条仍然被覆盖,尽pipe它们出现在历史中,当我通过历史logging“回”时。 但是,在其他电脑上,发生了一些不同的事情。 当我使用vim或less ,如果我上下滚动,我看不到terminal的前面几行。 事实上,在大多数发生这种现象的计算机上,如果我用鼠标向下滚动,而less回滚到当前缓冲区中的文件,就好像我按了Ctrl-E / Ctrl-Y 。 当我退出vim / less ,根本看不到文件,我只能看到terminal的前一个内容,就像我在打开文件之前所做的一样。 每当我用得more ,不pipe用什么电脑,都会出现前一种现象,但我用得不多,因为我喜欢各方面都不太好,所以我没有testing它的极限。 我经历了前一种现象的计算机/虚拟terminal似乎是较旧的计算机和/或具有较小能力和规格的计算机,这是合乎情理的,因为大多数人可能想要后者,但是可能难以完成,并且需要更多的处理能力和记忆。 以前有过的电脑是:我工作的2台RedHat ,可能是从2000年底/ 2010年初期开始的,我是用Penguinet的Windows 7电脑Penguinet ; 带有Terminal Rex IDE的Android手机/平板电脑,“安装系统” 在大多数的Androidterminal应用程序,我不能得到vim , less ,甚至vi ,但我得到more 。 当我用Git Bash使用vagrant时,默认的msys TERM值,terminal都搞砸了,我经历了大部分相同的行为,但更糟的是。 当我将TERM更改为cygwin或xterm ,效果更好。 对于我来说更理想的计算机是:我最新的带有Ubuntu 15.04笔记本电脑(是的,预装Linux ); 在过去的几年中,我在Windows 8笔记本电脑上安装的任何Linux虚拟机,但是我只有最新的版本,所以我不知道这个行为有多大。 Git Bash在我的Windows 8笔记本电脑上。 当我用鼠标滚动时, Git Bash没有通过文件回滚,而是通过一个空的terminal,但这可能是因为我的vimrc / lessrc的设置。 当我在Git […]

Unicode(utf-8)和git-bash

我有一些麻烦让unicode工作git-bash(在Windows 7上)。 我尝试了很多事情,但都没有成功。 虽然,我不太清楚这是什么责任,所以我可能会在错误的方向工作。 这真的应该是可能的,因为cmd.exe的编码可以通过'chcp 65001'改成unicode。 以下是我尝试过的一些事情(除了通过GUI中的configuration选项来查看)。 在“.bashrc”中设置环境variables。 我想这是有道理的,这是行不通的,因为我认为这是一个Linux的东西。 'locale'命令不存在。 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 从cmd.exe开始,使用“chcp 65001”将编码更改为unicode,然后启动git-bash。 这使我得到一个权限被拒绝时,试图猫我的unicodetesting文件。 但是,捕获一个没有unicode的文件工作得很好。 如演示,退出到cmd.exe我仍然可以“猫”的文件。 使用我的默认编码(437)我可以在bash中捕获该文件(没有权限被拒绝,但输出是伪造的)。 S:\>chcp 65001 Active code page: 65001 S:\>"C:\Program Files (x86)\Git\bin\sh.exe" –login -i zarac@TOWELIE /z cat /s/unicode.txt cat: write error: Permission denied zarac@TOWELIE /z cat /s/nounicode.txt abc zarac@TOWELIE /z L /s/unicode.txt -rw-r–r– 1 zarac Administ […]

/ bin / env:python:没有这样的文件或目录(Windows通过Git Bash试图安装新的Parse Cloud Code)

试图从这里的链接安装python似乎并不能访问Msysgit中的python命令…按照这里的说明 ,实际上并没有说如何让python按需要工作。 运行parse new project_name时的当前错误是: / bin / env:python:没有这样的文件或目录 我相信这可能是因为它安装在C:\Python …任何人都知道如何解决这个问题?

Git for Windows中的Bash:运行带有args的CMD.exe / C命令时出现奇怪

这更多的是一个烦恼,而不是一个问题,但我非常想了解这里的语义。 我所要做的就是在临时命令提示会话上运行一个任意命令,该会话本身在bash会话下运行。 我的成功率是50/50,因为一些命令按预期工作,而另一些则不是那么多。 我认为这个问题可能存在于没有正确排列的论点(即缺失或合并的论点) 我会试着通过一系列命令和回应来解释我的意思。 (我试图让字testing被打印在屏幕上。) 我在GNU bash 3.1.0(1) – 版本(i686-pc-msys)下运行这些版本与Git-1.8.4捆绑在一起: 第一次尝试: $ cmd /c echo test Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. c:\> 第二次尝试: $ cmd '/c echo test' test" 第三次尝试: $ cmd "/c echo test" test" 第四次尝试: $ cmd /c\ echo\ test test" 第五次尝试: $ cmd "/c […]

msysGit sudo-like命令

如果我们以pipe理员身份打开msysgit,我们可以像使用root一样使用它。 但是,打开没有pipe理员权限通常更容易。 例如,对于pipe理员权限,通常必须转到Windows资源pipe理器,开始菜单/屏幕等,而不能从任务栏执行此操作。 有时候,我懒得做这一切,但我想在Bash中获得pipe理员权限。 Git Bash有没有sudo或su like的命令或脚本等? 进入cmd.exe , PowerShell等,然后做一些像runas一样的工作,如果没有别的。

.bash_history不会在Git for Windows(git bash)中更新

我使用Git for Windows(版本1.7.8-preview20111206),即使我的HOME文件夹中有一个.bash_history文件,它也不会自动更新。 当我启动Git Bash时,我可以在历史命令中看到我手动添加到.bash_history文件,但不会自动更新。 我使用了shopt -s histappend命令来确保每次closuresshell时都保存历史logging,但不起作用。 如果我手动使用history -w命令,然后我的文件得到更新,但我想了解为什么shopt命令不工作,因为我理解它应该。 任何人都可以告诉我为什么会发生这种行为? 提前致谢

Git diff在path下用下划线文件失败

我正在运行Windows 7,我有最新版本的git(2.7.2.windows.1)。 我以前使用Windows PowerShell作为我的git操作terminal,没有问题。 最近,我决定切换到Git Bash,但我有一个主要问题。 我的项目有一个目录(其中有许多子目录),其名称只是一个下划线。 每当我尝试在该目录中的文件上运行git diff ,出现以下错误: $ git diff _/css/templates/jquery.tag-editor.css fatal: Invalid object name '_C'. 据我所知,下划线是一个文件/目录名称中完全有效的字符,并且在该目录内的Tab完成工作正常,所以我知道terminal可以“看到”里面。 另外,项目的其他贡献者,都运行OSX,没有这个问题。 而当我运行一个简单的git diff ,而没有指定任何单个文件,它工作正常,并愉快地包括在下划线目录中的任何更改的文件的差异。 如果我进入下划线目录并从那里运行git diff ,那么它也可以工作,所以我传递给它的path不包括下划线。 究竟发生了什么事情,以防止我在这些文件上运行git diff ? 当我试图这样做时,错误信息中的“C”来自哪里? 更新 当我运行git checkout — _/css/templates/jquery.tag-editor.css放弃对该文件的更改时,这是我看到的错误: error: pathspec '_C:/Program Files/Git/css/templates/jquery.tag-editor.css' did not match any file(s) known to git. C:\Program Files\Git是我的Git安装目录。 所以显然,部分path被解释为指Git安装目录? 再次,这是什么原因造成的呢?

我怎样才能在git-bash中执行命令位于与空间文件夹,如“程序文件”的窗口?

当我使用git bash的时候,我想要调用一个命令,这个命令在我的$PATH (实际上是在我的%PATH% )上,但是如果这个命令驻留在一个文件夹中有空格的地方,它就无法运行。 例如,如果该程序在C:\Program Files\whatever\aCmd.exe并且我在bash上键入aCmd ,则表示“Program”不是有效的程序等。 我所做的是重新安装程序在一个没有空格的文件夹中,但最近我的同事们开始离开git-gui,并且使用了git-bash,而经常出现的问题是“如何执行aCmd”,当我告诉他们重新安装它就像¬¬一样 问:如何执行git-bash中位于文件夹中的命令?

Windows Git bash提示符不显示函数的颜色

我在我的.bash_prompt中使用下面的颜色代码/函数(捏爱尔兰语),以显示分支名称和状态在Windows上的Git bash。 MAGENTA="\033[1;31m" ORANGE="\033[1;33m" GREEN="\033[1;32m" PURPLE="\033[1;35m" WHITE="\033[1;37m" BOLD="" RESET="\033[m" function git_info() { # check if we're in a git repo git rev-parse –is-inside-work-tree &>/dev/null || return # quickest check for what branch we're on branch=$(git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||') # check if it's dirty (via github.com/sindresorhus/pure) dirty=$(git diff –quiet –ignore-submodules HEAD &>/dev/null; […]