2009-09-23 15 views
13

मैं हाल ही में मेरी मैकबुक Snow Leopard के लिए प्रो और "Git पुल" रिटर्न उन्नत बनाया:"Git पुल" टूट

rakudo $ git pull 
git: 'pull' is not a git-command. See 'git --help' 

Did you mean this? 
     shell 
rakudo $ git-pull 
-bash: git-pull: command not found 

मैं macports के माध्यम से फिर से स्थापित करने की कोशिश की है, लेकिन कोई लाभ नहीं हुआ। तब मैंने यह देखा

rakudo $ git --exec-path 
/Users/ovid/libexec/git-core 

मुझे आश्चर्य हुआ कि यह निर्देशिका मौजूद नहीं है, और न ही यह अस्तित्व में है। Google यहां मदद नहीं कर रहा है। उम्मीद है कि आप कर सकते हैं :)

+0

मैं, एक ही समस्या में पड़ गए जब मैं Xcode पैकेज से बाहर Git द्विआधारी हैक करने की कोशिश की। 'ln -s/अनुप्रयोग /Xcode.app/Contents/Developer/usr/bin/git ~/bin/git' – shakthi

उत्तर

23

Git के स्रोत में देख रहे हैं, वहाँ git.c में एक टिप्पणी है:

/* 
* We use PATH to find git commands, but we prepend some higher 
* precedence paths: the "--exec-path" option, the GIT_EXEC_PATH 
* environment, and the $(gitexecdir) from the Makefile at build 
* time. 
*/ 

आप git --exec-path फोन हैं, तो आप exec_cmd.c में const char *git_exec_path(void) बुला अंत। यही कारण है कि इस तरह दिखता है:

const char *env; 

if (argv_exec_path) 
    return argv_exec_path; 

env = getenv(EXEC_PATH_ENVIRONMENT); 
if (env && *env) { 
    return env; 
} 

return system_path(GIT_EXEC_PATH); 

अब, _argv_exec_path_ सेट किया गया है जब आप कहते हैं --exec-path=/some/where तो रियायती जा सकता है। आपने कहा है कि पर्यावरण चर सेट नहीं है। GIT_EXEC_PATH को Makefile में संकलन के दौरान परिभाषित किया गया है। पीछे की तरफ जाना, ऐसा लगता है कि इसे libexec/git-core के रूप में परिभाषित किया गया है। इसलिए, हमें यह देखने की ज़रूरत है कि system_path() इसके बजाय क्या करता है।

मुझे यकीन नहीं है कि RUNTIME_PREFIX आपके लिए परिभाषित किया गया है या नहीं। लेकिन मेकफ़ाइल में नाकते समय, मैंने नोटिस किया कि prefix$(HOME) पर डिफ़ॉल्ट है। मुझे संदेह है कि यह आपकी समस्याओं का कारण हो सकता है।

सरल उत्तर ~/.bashrc में इस डाल करने के लिए है:

export GIT_EXEC_PATH=/opt/local/libexec/git-core 

आप क्या हो रहा है के बारे में और अधिक जानकारी प्राप्त करना चाहते हैं, तो आप शायद port -d upgrade -f git-core का उपयोग कर Git पुनः संकलित (या समान) और बारीकी से देखने के लिए होगा यह देखने के लिए बिल्ड लॉग पर जहां उपसर्ग सेट किया जा रहा है। संयोग से, port cat git-core${prefix} का भारी उपयोग दिखाता है, इसलिए इसे (उम्मीद है) स्पष्ट होना चाहिए।

+0

बढ़िया! यह तय है। – Ovid

+3

किसी और के लिए बस एक स्पष्टीकरण जो इसे पाता है: गिट के आदेशों का पथ वास्तव में संकलन समय पर सेट होता है (हालांकि इसे GIT_EXEC_PATH द्वारा संशोधित किया जा सकता है, और फिर --exec-path द्वारा)। यह संभवतः 'prefix =/path/to/git ...' बनाकर संकलित समय पर सेट किया गया है। उम्मीद है कि कोई भी पूर्व-निर्मित संस्करण ठीक से ऐसा करेगा! – Cascabel

+1

अगर मुझे केवल पता था कि आप एक कामकाज चाहते हैं और ठीक नहीं है! ;-) –

2

दिलचस्प। echo $GIT_EXEC_PATH, which git आज़माएं। बर्फ जानवर से संबंधित होने की संभावना नहीं है ...

+0

$ GIT_EXEC_PATH सेट नहीं है और" कौन सा गिट "रिटर्न/ऑप्ट/लोकल/बिन/गिट, जैसा कि मैं ' मैं उम्मीद कर रहा हूँ। – Ovid

+0

यह अजीब है। मुझे 'गिट' और बर्फ के साथ कोई समस्या नहीं है, लेकिन मैं मैकपोर्ट्स का उपयोग नहीं करता हूं। एक बार जब मैं घर जाऊंगा तो मैं मैकपोर्ट्स 'गिट' की कोशिश करूंगा और देख सकता हूं कि यह गलत व्यवहार करता है ... –

+0

ठीक है, मैक्सपोर्ट 'गिट रिटर्न'/opt/local/libexec/git-core' exec-path मेरे लिए ... –

1

क्या आपने ports Migration wiki page पर दिए गए चरणों का प्रयास किया है? यह दर्दनाक था, लेकिन --force अनइंस्टॉल करने और प्रक्रिया को पुनर्स्थापित करने के बाद, मुझे अपने किसी भी बंदरगाह के साथ कोई समस्या नहीं है, जिसमें git शामिल है (जिसमें हर संस्करण चालू है)।

+0

हाँ, क्या कुछ दिनों पहले मैंने पाया कि मेरे कई बंदरगाह काम नहीं कर रहे हैं। जैसा कि आप उल्लेख करते हैं, दर्दनाक था। यह भी मेरी गिट समस्या हल नहीं किया :) – Ovid

0

गिट इतनी आसानी से संकलित करता है कि वास्तव में मैकपोर्ट की पागलपन से परेशान होने का कोई कारण नहीं है। जो भी हो/ऑप्ट इन से छुटकारा पाएं और इसे सामान्य तरीके से बनाने का प्रयास करें। बाधाएं अच्छी हैं, यह काम करेगी।

http://help.github.com/mac-git-installation/

वे एक स्टैंड-अलोन संस्थापक है (हालांकि दूसरा विकल्प MacPorts नहीं है ...)

वे प्रयोग किया है:

0

एक अन्य विकल्प GitHub पर सहायक पेज से डाउनलोड करने के लिए है एक पृष्ठ ट्यूटोरियल में बहुत अच्छा है जो अब splintered लगता है। कितनी शर्म की बात है।

2

मेरे सिस्टम पर, libexec/git-core/usr/local में है और /opt/local नहीं है। /usr/local/libexec निर्देशिका मेरे लिए केवल रूट सुलभ अनुमतियाँ था, और यह समस्या सुलझा नहीं:

sudo chmod a+rx /usr/local/libexec 
+0

वह भी मेरे लिए काम किया। मै मैक ओएस एक्स पर स्थापित (कॉन्फ़िगर, मेक, सुडो इंस्टॉलेशन) स्थापित किया था, और जाहिर है कि उसने वहां गलत अनुमतियां डालीं। – danwood

0

मेरे लिए, यह एक मुद्दा केवल विशेष रूप से मेरी काढ़ा स्थापित करने के लिए प्रासंगिक था। पर OSX 10.9.2, मैं जड़ के तहत स्थापित किया काढ़ा थी, इसलिए यह मेरे लिए काम करता है:

sudo su 
export GIT_EXEC_PATH=/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core 
brew update # or whatever you want from here 
संबंधित मुद्दे