2015-12-15 57 views
1

我嘗試在腳本中執行Mac OS X 10.11上的命令git rev-list HEAD --countHEAD修訂版問題

#!/bin/bash 
git=`sh /etc/profile; which git` 
buildNumber=`"$git" rev-list --all |wc -l` 
echo "$buildNumber" 

,但我得到下一個錯誤:

usage: git rev-list [OPTION] ... [ -- paths... ] limiting output: --max-count=

我的腳本gitRepository/Folder/Scripts/my_script.sh

位於如果我在根git的文件夾中運行git rev-list HEAD --count我得到的結果1049,但如果我從../Scripts運行我收到一個錯誤:

fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this:
'git <command> [...] -- [...]'

這不是一個空的存儲庫。

可能是什麼問題?

+0

這是在其還沒有提交新的資料庫?通常情況下,如果git無法打開'HEAD'文件,它只是抱怨你甚至沒有存儲庫;在這裏,它的行爲就像'HEAD'引用是對不存在的分支的符號引用,這是新存儲庫的正常狀態。 – torek

+0

如果由於某些原因,您丟失了.git/HEAD文件,您可以使用文本編輯器重新創建它。格式爲''或'ref:refs/heads/' – user3159253

+0

你是否處於「分離頭部」模式?嘗試一下「git status」,看看你是否是。如果是這樣,請嘗試:「git checkout master」並重新運行您的命令 –

回答

0

在大多數情況下,Git命令需要讀取/寫入特定的資源庫,即從最喜歡的東西配置命令放在一邊,幫助需要從一個Git倉庫內某處被執行。這意味着任何包含.git目錄及其子目錄以及裸存儲庫根目錄的目錄。

您正在收到的錯誤表明當前目錄不是Git目錄。

爲了解決這個問題要麼cd到所需的目錄,或使用類似下面的命令:

git --git-dir=/path/to/repo/.git rev-list HEAD --count