相关疑难解决方法(0)

查看未发布的Git提交

如何查看我所做的任何尚未推送到远程存储库的本地提交?偶尔git status会打印出我的分支是X提前提交origin/master,但并非总是如此.

这是我安装Git的错误,还是我错过了什么?

git git-diff git-log

1649
推荐指数
18
解决办法
75万
查看次数

在Bash中管道输出和捕获退出状态

我想执行Bash中长时间运行的命令,都捕获它的退出状态,并且发球它的输出.

所以我这样做:

command | tee out.txt
ST=$?
Run Code Online (Sandbox Code Playgroud)

问题是变量ST捕获退出状态tee而不是命令.我怎么解决这个问题?

请注意,命令长时间运行并将输出重定向到文件以便以后查看它对我来说不是一个好的解决方案.

error-handling bash shell pipe

400
推荐指数
11
解决办法
16万
查看次数

显示您所在的git标签?

我无法找到当前检出的标签.

当我做:

git checkout tag1
git branch
Run Code Online (Sandbox Code Playgroud)

我似乎无法找出我在哪个标签上.它只记录:

* (no branch)
master
Run Code Online (Sandbox Code Playgroud)

是否有可能找出签出的标签?在上面的例子中,这将是tag1.

git git-checkout git-tag

197
推荐指数
6
解决办法
12万
查看次数

如何避免bash命令替换删除换行符?

为了加速一些bash脚本执行,我想使用命令替换将命令的结果保存在变量中,但是命令替换用0x0A空格替换换行符.例如:

a=`df -H`
Run Code Online (Sandbox Code Playgroud)

要么

a=$( df -H )
Run Code Online (Sandbox Code Playgroud)

当我想进一步处理时$a,换行符被空格替换,所有行现在都在一行上,这更难以grep:

echo $a
Run Code Online (Sandbox Code Playgroud)

什么是避免命令替换删除换行符的简单技巧?

bash newline command-substitution

70
推荐指数
1
解决办法
2万
查看次数

如果它正在运行,则停止并删除docker容器

我希望实际停止并删除一个docker容器,如果它正在运行.这是一个构建脚本.

以下面的例子为例.如何在bash脚本中的NAMES列下停止并删除docker容器"rabbitmq".

docker ps

CONTAINER ID        IMAGE             COMMAND                  CREATED             STATUS              PORTS                   NAMES
9909a5e2856f        rabbitmq-image   "/docker-entrypoint.s"   11 minutes ago      Up 11 minutes       0.0.0.0:5672->5672/tcp, rabbitmq
8990dd1fe503        redis-image      "/entrypoint.sh redis"   6 weeks ago         Up 4 days           0.0.0.0:32770->6379/tcp redis
etc 
Run Code Online (Sandbox Code Playgroud)

以下命令将删除容器并执行即将发生的操作

docker stop rabbitmq && docker rm -f rabbitmq
Run Code Online (Sandbox Code Playgroud)

然而它将它梳理成我想知道的脚本?我认为它看起来像这样.

#!/bin/bash

if [ /*docker ps check some value */ ]; then
   docker stop rabbitmq && docker rm -f rabbitmq
fi
Run Code Online (Sandbox Code Playgroud)

bash containers docker

54
推荐指数
7
解决办法
4万
查看次数

Bash:检查管道中的输入是否为空

假设我有一个 bash 命令mycommand。有时它会向输出写入一些内容但总是返回退出代码 0。我需要使用管道将退出代码修复为 0 以表示空输出,而其他内容则表示非空输出。

mycommand | ???
Run Code Online (Sandbox Code Playgroud)

我对 ifs 或自定义命令不感兴趣。我只想要一个简单的命令,比如 grep 和一些参数来检查它的输入是否为空并返回退出代码。

如果输入不为空,则最好打印输入,但它不是强制性的。

bash

6
推荐指数
2
解决办法
7048
查看次数

Git Alias链接添加,提交,拉动,推送?

我感兴趣的是创建一个别名,添加所有文件,提交消息,拉动,如果有任何冲突停止并显示冲突文件列表,否则推.

我已经找到了列出冲突文件(git config --global alias.conflicts "diff --name-only --diff-filter=U")的别名,但我不知道如何集成其余的命令.

甚至可以if用这种格式创建一个语句吗?

伪代码(多行可读性):

git config --global alias.commitall '!func(){ git add -A && git commit -am "$1" &&
             git pull && <conflict detection and possible die of command> &&
             git push; }; func'
Run Code Online (Sandbox Code Playgroud)

git command-line

2
推荐指数
1
解决办法
1427
查看次数