相关疑难解决方法(0)

如何在Git中获取当前分支名称?

我来自Subversion背景,当我有一个分支时,我知道我正在处理的是"这些工作文件指向这个分支".

但是对于Git,我不确定我何时在NetBeans或Notepad ++中编辑文件,无论它是与主服务器还是其他分支相关联.

git在bash中没有问题,它告诉我我在做什么.

git branch git-branch

2321
推荐指数
37
解决办法
136万
查看次数

如何以编程方式确定当前签出的Git分支

在Unix或GNU脚本环境(例如Linux发行版,Cygwin,OSX)中,确定当前在工作目录中检出哪个Git分支的最佳方法是什么?

这种技术的一个用途是自动标记一个版本(就像svnversionSubversion一样).

另请参阅我的相关问题:如何以编程方式确定Git结帐是否为标签,如果是,那么标签名称是什么?

git bash shell

263
推荐指数
12
解决办法
10万
查看次数

如何将当前git分支的名称转换为shell脚本中的变量?

我是shell脚本的新手,无法解决这个问题.如果您不熟悉,命令git branch会返回类似的内容

* develop
  master
Run Code Online (Sandbox Code Playgroud)

,星号标记当前签出的分支.当我在终端中运行以下内容时:

git branch | grep "*"
Run Code Online (Sandbox Code Playgroud)

我明白了:

* develop
Run Code Online (Sandbox Code Playgroud)

正如所料.

但是,当我跑

test=$(git branch | grep "*")
Run Code Online (Sandbox Code Playgroud)

要么

test=`git branch | grep "*"`
Run Code Online (Sandbox Code Playgroud)

然后

echo $test
Run Code Online (Sandbox Code Playgroud)

,结果只是目录中的文件列表.我们如何使test ="*develop"的价值?

然后下一步(一旦我们将"*develop"变成一个名为test的变量),就是得到子串.这只是以下几点吗?

currentBranch=${test:2} 
Run Code Online (Sandbox Code Playgroud)

我正在玩那个子串函数,我得到了很多"坏替换"错误,不知道为什么.

linux git bash shell ubuntu

69
推荐指数
5
解决办法
4万
查看次数

获取git当前分支/标记名称

如何获取工作副本的当前分支或标记名称?我已经看到指示rev-parse --abbrev-ref HEAD将给出分支名称的引用,但是如果checkout是标记,则这不起作用,在这种情况下它只返回'HEAD'.我需要以某种方式获取这些修订的标记名称.

要清楚,我想要两个可能的名字之一:

  1. 如果当前结账是分支的HEAD,我想要分支名称
  2. 如果它是一个分离的HEAD,我想要标签名称(假设有一个标签)

git branch git-checkout git-branch

22
推荐指数
3
解决办法
1万
查看次数

如何抑制subprocess.run()的输出?

从文档中的示例subprocess.run()来看,似乎不应该有任何输出

subprocess.run(["ls", "-l"])  # doesn't capture output
Run Code Online (Sandbox Code Playgroud)

但是,当我在python shell中尝试它时,列表被打印出来.我想知道这是否是默认行为以及如何抑制输出run().

python subprocess python-3.x

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

标签 统计

git ×4

bash ×2

branch ×2

git-branch ×2

shell ×2

git-checkout ×1

linux ×1

python ×1

python-3.x ×1

subprocess ×1

ubuntu ×1