草庐IT

git - 在第一次推送之前检查 git remote 是否存在

我正在编写一个bash脚本,我需要进行测试以查看给定的远程是否存在。具体来说,假设我想测试远程faraway是否存在。如果我已将某些内容推送到faraway,我可以执行if[-d.git/refs/remotes/faraway];然后...。但据我所知,即使.git/refs/remotes/faraway不存在,仍然可以定义别名faraway。另一种选择是解析gitremote的输出并查看faraway是否出现在那里。但我想知道是否有更简单的方法来检查是否定义了faraway,而不管.git/refs/remotes/faraway/是否存在。 最佳答案

带有 --git-dir= 的 git 结果为 'not a git repository'

我的一个iOS应用程序中有一个脚本,它应该获取git修订散列并将其放入版本号中。在这个脚本中,我为此运行了git--git-dir="$PROJECT_DIR"show-s--pretty=format:%h。但是,我收到消息说该目录不是git存储库。如果我回显PROJECT_DIRvar并转到终端,将执行以下操作:cdprojectDirPathgitshow-s--pretty=format:%h不起作用的是:git--git-dir=projectDirPathshow-s--pretty=format:%h我错过了什么吗?文档指出,我可以使用--git-dir指定git存储库的

带有 --git-dir= 的 git 结果为 'not a git repository'

我的一个iOS应用程序中有一个脚本,它应该获取git修订散列并将其放入版本号中。在这个脚本中,我为此运行了git--git-dir="$PROJECT_DIR"show-s--pretty=format:%h。但是,我收到消息说该目录不是git存储库。如果我回显PROJECT_DIRvar并转到终端,将执行以下操作:cdprojectDirPathgitshow-s--pretty=format:%h不起作用的是:git--git-dir=projectDirPathshow-s--pretty=format:%h我错过了什么吗?文档指出,我可以使用--git-dir指定git存储库的

windows - Bash in Git for Windows : Weirdness when running a command with CMD. exe/C with args

这与其说是个问题,不如说是个烦恼,但我非常想了解这里的语义。我想做的就是在临时命令提示符session上运行任意命令,该session本身在bashsession下运行。我的成功率为50/50,因为某些命令按预期工作,而其他命令则不然。我认为问题可能在于参数没有正确排列(即缺少或merge的参数)我将尝试通过一系列命令和响应来解释我所说的怪异是什么意思。(我试图让test这个词打印在屏幕上。)我在GNUbash下运行这些,版本3.1.0(1)-release(i686-pc-msys)与Git-1.8.4捆绑:第一次尝试:$cmd/cechotestMicrosoftWindows[V

windows - Bash in Git for Windows : Weirdness when running a command with CMD. exe/C with args

这与其说是个问题,不如说是个烦恼,但我非常想了解这里的语义。我想做的就是在临时命令提示符session上运行任意命令,该session本身在bashsession下运行。我的成功率为50/50,因为某些命令按预期工作,而其他命令则不然。我认为问题可能在于参数没有正确排列(即缺少或merge的参数)我将尝试通过一系列命令和响应来解释我所说的怪异是什么意思。(我试图让test这个词打印在屏幕上。)我在GNUbash下运行这些,版本3.1.0(1)-release(i686-pc-msys)与Git-1.8.4捆绑:第一次尝试:$cmd/cechotestMicrosoftWindows[V

git - 用于检查指定的 Git 分支是否存在的 Shell 脚本?

这个问题在这里已经有了答案:Isthereabetterwaytofindoutifalocalgitbranchexists?(18个答案)关闭8年前。我需要使用shell脚本创建一个Git分支,但由于该分支可能存在,我需要注意这一点。目前我正在使用:if[`gitbranch|grep$branch_name`]thenecho"Branchnamed$branch_namealreadyexists"elseecho"Branchnamed$branch_namedoesnotexist"fi但问题是grep命令找到分支名称而不匹配确切的名称,也就是说,如果我grepname然后

git - 用于检查指定的 Git 分支是否存在的 Shell 脚本?

这个问题在这里已经有了答案:Isthereabetterwaytofindoutifalocalgitbranchexists?(18个答案)关闭8年前。我需要使用shell脚本创建一个Git分支,但由于该分支可能存在,我需要注意这一点。目前我正在使用:if[`gitbranch|grep$branch_name`]thenecho"Branchnamed$branch_namealreadyexists"elseecho"Branchnamed$branch_namedoesnotexist"fi但问题是grep命令找到分支名称而不匹配确切的名称,也就是说,如果我grepname然后

windows - 在 Windows 上通过 Git bash 更改文件夹的大小写

我需要更改文件夹和文件的大小写。我尝试的第一件事是重命名文件夹,但Git没有接受这些更改。所以我尝试使用gitmv-fcontrollerController但它说:致命:重命名“应用程序/类/Controller失败:权限被拒绝”我已经尝试设置全局ignorecase标志:gitconfig--globalcore.ignorecasefalse但是还是不行。有人建议将文件夹从repo中移出,删除,然后重新添加,但是当其他人pullrepo时,这个更改会被拾取吗?还有什么我可以尝试的吗?编辑:它适用于文件,但不适用于文件夹。 最佳答案

windows - 在 Windows 上通过 Git bash 更改文件夹的大小写

我需要更改文件夹和文件的大小写。我尝试的第一件事是重命名文件夹,但Git没有接受这些更改。所以我尝试使用gitmv-fcontrollerController但它说:致命:重命名“应用程序/类/Controller失败:权限被拒绝”我已经尝试设置全局ignorecase标志:gitconfig--globalcore.ignorecasefalse但是还是不行。有人建议将文件夹从repo中移出,删除,然后重新添加,但是当其他人pullrepo时,这个更改会被拾取吗?还有什么我可以尝试的吗?编辑:它适用于文件,但不适用于文件夹。 最佳答案

git - 阻止将琐碎的 merge 推送到 git 服务器

前阵子我askedourdeveloperstouserebaseinsteadofmergebeforepushing.消除琐碎的merge使得更容易遵循提交图(即:gitk、gitlog)。有时人们仍然会不小心进行一些琐碎的merge,然后再进行推送。有没有人有编写阻止琐碎merge的服务器端Hook的便利或提示?我所说的“简单merge”是指没有冲突的merge。Here'sanexample,和here'sabetterexplanationofatrivialmergeingit.更新2010年11月10日星期三01:26:41:所有评论都很棒!谢谢。考虑以下几点:我真正要求