git checkout master # first get back to master
git checkout experiment -- app.js # then copy the version of app.js
# from branch "experiment"
यह भी देखें कि एक फाइल के परिवर्तन को कैसे करें?
अगस्त २०१ ९ अपडेट करें, २.२३
नए git switch
और git restore
आदेशों के साथ, यह होगा:
git switch master
git restore -s experiment -- app.js
डिफ़ॉल्ट रूप से, केवल काम कर रहे पेड़ को बहाल किया जाता है।
यदि आप इंडेक्स को भी अपडेट करना चाहते हैं (मतलब फ़ाइल सामग्री को पुनर्स्थापित करें, और इसे एक कमांड में इंडेक्स में जोड़ें):
git restore -s experiment --staged --worktree -- app.js
# shorter:
git restore -s experiment -WS -- app.js
जैसा कि जकुब नारुबस्की ने टिप्पणियों में उल्लेख किया है:
git show experiment:path/to/app.js > path/to/app.js
काम करता है, सिवाय इसके कि, एसओ प्रश्न में विस्तृत रूप से " Git में विशिष्ट संशोधन से किसी एकल फ़ाइल को कैसे पुनर्प्राप्त करें? ", आपको रेपो की मूल निर्देशिका से पूर्ण पथ का उपयोग करने की आवश्यकता है।
इसलिए उनके उदाहरण में जकूब द्वारा उपयोग किया गया पथ / to / app.js।
के रूप में फ़्रॉस्टी टिप्पणी में उल्लेख है:
आप केवल app.js का सबसे हालिया राज्य प्राप्त करेंगे
लेकिन, git checkout
या git show
, आप वास्तव में अपने इच्छित किसी भी संशोधन का संदर्भ दे सकते हैं, जैसा कि एसओ प्रश्न " git gui में फ़ाइल के गिट चेकआउट संशोधन " में चित्रित किया गया है :
$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME
यह वही होगा जो $ FILENAME संस्करण फ़ाइल का पूर्ण पथ है।
$REVISION
के रूप में दिखाया जा सकता है git rev-parse
:
experiment@{yesterday}:app.js # app.js as it was yesterday
experiment^:app.js # app.js on the first commit parent
experiment@{2}:app.js # app.js two commits ago
और इसी तरह।
schmijos टिप्पणियों में जोड़ता है :
आप भी इसे स्टैश से कर सकते हैं:
git checkout stash -- app.js
यदि आप दो शाखाओं पर काम कर रहे हैं और कमिट नहीं करना चाहते हैं तो यह बहुत उपयोगी है।