JGit

2014-07-22 9 views
8

के साथ गिट रिपॉजिटरी से विशिष्ट संशोधन देखें, मैं एक भंडार क्लोन करने और किसी विशेष प्रतिबद्धता को चेकआउट करने के लिए jGit का उपयोग करने का प्रयास कर रहा हूं।JGit

प्रतिबद्ध हैश मानते हैं: 1e9ae842ca94f326215358917c620ac407323c81।

मेरा पहला कदम है:

// Cloning the repository 
    Git.cloneRepository() 
     .setURI(remotePath) 
     .setDirectory(localPath) 
     .call(); 

मैं तो एक और सवाल जो इस दृष्टिकोण का सुझाव दिया पाया:

git.checkout(). 
       setCreateBranch(true). 
       setName("branchName"). 
       setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK). 
       setStartPoint("origin/" + branchName). 
       call(); 

लेकिन मैं अनिश्चित हूँ कैसे एक साथ दो से जोड़ने के लिए?

कोई विचार?

Git.cloneRepository().setURI(remotePath).setDirectory(localPath).call(); 

बस चेकआउट करने के लिए एक अपने आईडी द्वारा प्रतिबद्ध आप इस तरह checkout कॉल कर सकते हैं:

उत्तर

14

आप पहले भंडार क्लोन करने के लिए होगा, इस प्रकार अपना पहला कदम सही था

git.checkout().setName("<id-to-commit>").call(); 

लेकिन ध्यान दें कि इसका परिणाम detached HEAD होगा। इससे बचने के लिए, आप पहले एक नई शाखा बनाने के लिए checkout बता सकते हैं जो प्रतिबद्धता को इंगित करता है और फिर इस शाखा को चेकआउट करता है।

git.checkout().setCreateBranch(true).setName("new-branch").setStartPoint("<id-to-commit>").call(); 

एपीआई बहुत सहज नहीं है, लेकिन यह वही करता है जो इसे करना चाहिए।

+1

धन्यवाद, यह वही है जो मुझे चाहिए! – MrD

संबंधित मुद्दे