相关疑难解决方法(0)

有没有办法在一个命令中获取git根目录?

Mercurial有一种打印根目录(包含.hg)的方法

hg root
Run Code Online (Sandbox Code Playgroud)

在git中是否有类似的东西来获取包含.git目录的目录?

git version-control

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

git post-receive hook怎么能得到它正在运行的repo的名字?

我有一个git post receive钩子,它将在我的构建系统上触发构建.我需要在钩子脚本中创建一个"$ repo-name + $ branch"形式的字符串.

我可以解析分支,但是如何从git获取存储库名称?

谢谢!

git

25
推荐指数
1
解决办法
7738
查看次数

有没有办法找到Git仓库的工作树,给出它的.git目录?

我正在为一些同事编写一个脚本,用于他们的Git存储库,我对如何可靠地找到repo工作树的根目录感到困惑:

通常,如果当前目录位于工作树内,则命令...

git rev-parse --git-dir
git rev-parse --show-toplevel
Run Code Online (Sandbox Code Playgroud)

...将分别返回.git目录和工作树的根.然而,如果当前目录恰好是里面一个.git目录,那么只有第一个命令的作品.该命令git rev-parse --show-toplevel不显示工作树的顶层(至少,不适合我,在Linux上使用git 1.8.4.4).

假设git rev-parse --is-bare-repository的回报false,我通常会猜的父目录git rev-parse --git-dir或者是工作目录(或地方工作目录内),但如果用户GIT_DIR设置该.git目录不是工作目录里面,这是行不通的.(例如,当用户使用子模块时,他们的GIT_DIR可能不在他们的工作树中.)

我发现令人困惑的是,当在a内运行时GIT_DIR,git rev-parse --show-toplevel不会输出任何错误消息并返回0:

$ cd $(git rev-parse --git-dir); git rev-parse --show-toplevel ; echo $?
0
Run Code Online (Sandbox Code Playgroud)

而在某个地方运行相同的命令显然不是git存储库会返回错误代码:

$ cd /; git rev-parse --show-toplevel ; echo $?
fatal: Not a git repository (or any of the parent directories): .git
128
Run Code Online (Sandbox Code Playgroud)

如果有一种方法可以找到工作树 …

git

7
推荐指数
1
解决办法
4048
查看次数

Python - 如何检查路径是否在 git repo 下?并提取回购名称

我正在尝试在 python 中开发一个rollin.py具有以下要求的 Gatekeeping 脚本:

  1. 假设用户将从rollin.py他本地 git 克隆区域内的任何地方启动脚本以将他的提交推送到主存储库

  2. 现在,rollin.py脚本将

    • 从 master 克隆一个 repo
    • 拉用户提交并合并到克隆的存储库中
    • 运行合规性测试
    • 如果通过,则将这些更改推送到主仓库,否则丢弃并通知用户

现在在rolloin.py脚本中,我将如何检查存储库名称和用户的 git clone 路径?(因为用户可以rolloin.py从他当地的任何地方启动脚本)

是否有任何现有的功能或方法可用?否则,我正在考虑实现反向递归搜索cwd以定位 .git,然后从它的配置文件中找到 url。

gitpython

-1
推荐指数
1
解决办法
2837
查看次数

标签 统计

git ×3

gitpython ×1

version-control ×1