फिश फ़ंक्शन में बाहरी निर्देशिका से गिट कमांड चलाएँ


0

एक मछली समारोह में, क्या मैं इसे बदलने के बिना एक निश्चित निर्देशिका से एक कमांड चला सकता हूं?

या

क्या मैं pushकिसी तरह से अपना मार्ग निर्दिष्ट करके रिपॉजिटरी के बाहर से एक git कमांड ( ) चला सकता हूं ?


मैं कुछ इस तरह करना चाहता हूं:

function backup
    set BKDIR /flash/drive
    rsync -av $HOME/important/ $BKDIR/important/
    cd $HOME/git_repo
    git push flash master
end

लेकिन मैं कुछ अन्य निर्देशिका में बदलना नहीं चाहता। अगर मैं rsync का उपयोग करते समय git रेपो को सिंक कर सकता हूं तो यह बहुत अच्छा होगा: स्रोत निर्देशिका को निर्दिष्ट करके लेकिन कार्यशील निर्देशिका को परिवर्तित नहीं करना।

मुझे लगता है कि शुरुआत में वर्तमान निर्देशिका को रिकॉर्ड करने और अंत में इसे वापस बदलने के लिए एक आखिरी उपाय होगा।

जवाबों:


1

git --git-dir /foo/bar/ rest-of-git-command

संदर्भ:

--git-dir=<path>रिपॉजिटरी के लिए रास्ता तय करें। इसे GIT_DIR पर्यावरण चर सेट करके भी नियंत्रित किया जा सकता है। यह वर्तमान कार्यशील निर्देशिका के लिए एक निरपेक्ष पथ या सापेक्ष पथ हो सकता है।


मैंने वास्तव में पाया है कि git -C /foo/bar rest-of-git-commandमैं जो चाहता था, उसके करीब का उपयोग कर रहा हूं: " -C <path>: वर्तमान कार्यशील निर्देशिका के बजाय यदि gitइसे शुरू किया गया था, तो चलाएं <path> " मुझे लगता है कि यह अधिक मामलों में बेहतर काम करता है, जैसा कि यह सेट करता है git-dirऔर work-treeGit मैन-पेज-C में देखें ।
Askewchan

1

@RaGe का सही उत्तर है।

एक मछली-विशिष्ट उत्तर पुशड और फिर पोप का उपयोग करना है

function backup
    # ...
    pushd $HOME/git_repo
    git push flash master
    popd
end
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.