2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
【सम्बन्धित विषय】
- भविष्यति
commit
संस्करणं अन्यशाखायां पुनः आधारयन्तु- संस्करणविग्रहस्य सन्दर्भे पुनः आधारं कुर्वन्तु
- निर्दिष्टे संस्करणे अन्तरक्रियाशीलं पुनः आधारं कुर्वन्तु
- संस्करणानाम् समुच्चयार्थं अन्तरक्रियाशीलपुनर्आधारीकरणस्य उपयोगः
- अन्तरक्रियाशीलपुनर्आधारीकरणस्य उपयोगेन प्रतिबद्धानां परिवर्तनम्
- स्वचालित समुच्चय संस्करण
पुनः आधार ( .Rebasing
) इति Git इत्यस्य अत्यन्तं शक्तिशाली विशेषता अस्ति ।पुनः आधारीकरणं एकः प्रकारः क्रिया अस्ति: यदि कcommit
एकः प्रारम्भिकं आधारितम् आसीत्commit
ख of thenएकः पुनः आधारं कुर्वन्तुग, इत्यर्थः एकः आधारितं भवतिग संचालन।
निम्नलिखितप्रदर्शनप्रकरणे भवन्तः पश्यन्ति यत् पुनः आधारीकरणं प्रायः यथा दृश्यते तथा सुलभं न भवति ।
commit
संस्करणं अन्यशाखायां पुनः आधारयन्तु प्रथमं सरलतमं प्रकारं rebase operation पश्यामः । सम्बद्धं सज्जताकार्यम् : नूतनसञ्चिकां प्रवर्तयन्तु, प्रस्तुतं कुर्वन्तु, सामग्रीं परिवर्तयन्तु, पुनः प्रस्तूयताम्।एवं प्रकारेण स्थानीयानां द्विगुणाः भवन्तिcommit
संस्करण।
अद्यापि सह jgit
पुस्तकालयः उदाहरणार्थम् : १.
# Clone jgit repo into chapter4
$ git clone https://git.eclipse.org/r/jgit/jgit chapter4
$ cd chapter4
# Checkout a new branch
$ git checkout -b rebaseExample --track origin/stable-3.1
# Create the 1st commit
$ echo "My Fishtank
Gravel, water, plants
Fish, pump, skeleton" > fishtank.txt
$ git add fishtank.txt
$ git commit -m "My brand new fishtank"
# Create the 2nd commit
$ echo "mosquitos" >> fishtank.txt
$ git add fishtank.txt
$ git commit -m "Feeding my fish"
# Rabase to stable-3.2
$ git rebase origin/stable-3.2
Successfully rebased and updated refs/heads/rebaseExample.
पुनः आधारीकरणात् पूर्वं : १.
पुनः आधारीकरणानन्तरं : १.
git rebase
निष्पादनप्रक्रिया : १.
HEAD
पुनः आधारेण सूचितस्य लक्ष्यशाखायाः मध्ये सामान्यं संस्करणं (merge-base
);merge-base
, लक्ष्यशाखायां सर्वाणि अनुपलब्धानि संस्करणाः अन्वेष्टुम्;यदि क commit
संस्करणं वा कbranch
शाखां भिन्नं प्रति पुनः आधारयन्तुHEAD
, संस्करणविग्रहाः भवितुं शक्नुवन्ति ।अस्मिन् क्षणे विग्रहस्य समाधानं कृत्वा आदेशः चालनीयःgit rebase --continue
, पुनः आधारः सम्पन्नः भवितुम् अर्हति ।
अस्मिन् खण्डे उदाहरणानि विग्रहसन्निधौ पुनः आधारीकरणं कथं साधयितुं शक्नुवन्ति इति दर्शयन्ति ।खण्डे ४.१ प्रदर्शितस्य अन्तिमपरिणामस्य अनुसरणं कृत्वा, अस्मिन् समयेrebaseExample
शाखायाः पुनः आधारः कृतः अस्तिstable-3.2
शाखा।उदाहरणं stable-3.1 तः नूतनशाखायाः पुनः परीक्षणं करिष्यति तथा च a and योजयिष्यतिrebaseExample
समानशाखानाम्ना किन्तु असङ्गतसामग्रीयुक्ताः पाठसञ्चिकाःfishtank.txt
:
# Checkout rebaseExample2
$ git checkout -b rebaseExample2 --track origin/stable-3.1
# Add a new commit
$ echo "My Fishtank
Pirateship, Oister shell
Coconut shell
">fishtank.txt
$ git add fishtank.txt
$ git commit -m "My brand new fishtank"
# Rebase conflicting branches
$ git rebase rebaseExample
Auto-merging fishtank.txt
CONFLICT (add/add): Merge conflict in fishtank.txt
error: could not apply 24f9bf1ef... My brand new fishtank2
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 24f9bf1ef... My brand new fishtank2
$ subl fishtank.txt
विग्रहस्य स्थितिः यथा भवति ।
निम्नलिखित सामग्रीं परिवर्तयन्तु, रक्षन्तु, बन्दं कुर्वन्तु च:
विलीनसञ्चिकाः योजयित्वा पुनः आधारीकरणं निरन्तरं कुर्वन्तु:
$ git add fishtank.txt
$ git rebase --continue
hint: Waiting for your editor to close the file...
यः सम्पादकः उद्घाट्यते सः चित्रे दर्शितः अस्ति :
पुष्टिं कुर्वन्तु, रक्षन्तु, बन्दं कुर्वन्तु च, ततः भवन्तः पुनः आधारः सफलः इति प्रॉम्प्ट् द्रक्ष्यन्ति:
$ git rebase --continue
[detached HEAD 9911772b3] My brand new fishtank2
1 file changed, 2 insertions(+), 3 deletions(-)
Successfully rebased and updated refs/heads/rebaseExample2.
# Check new status via gitk
$ gitk
विवरणं यथा- १.
द्रष्टुं शक्यते यत् अस्मिन् पुनः आधारे केवलं तानि संस्करणानि एव पुनः आधारीकृतानि भविष्यन्ति (अर्थात् नूतनानि संस्करणाः योजिताः भविष्यन्ति) । commit
)。
प्रथमस्य rebase interruption इत्यस्य git prompt information इत्यत्र भवान् विकल्पद्वयं अपि द्रष्टुं शक्नोति ।
git rebase --abort
: शाब्दिकार्थत्वेन पुनः आधारं बाधित्वा
git rebase --skip
: विग्रहान् त्यक्त्वा प्रत्यक्षतया पुनः आधारं कुर्वन्तु, यस्य परिणामः भविष्यति rebaseExample2
नवीनं परित्यजन्तुcommit
, प्रत्यक्षतया विलीनः rebaseExample
, मातापिता पुनः आधारीकरणानन्तरं सूचितवान्, तथा च rebaseExample
सङ्गत:
अस्मिन् उदाहरणे वयं... rebaseExample
शाखानां आधारेण कथं उपयोगः करणीयः इति प्रदर्शयन्तु--interactive
मार्क, 4.1 मध्ये द्वयोः पुनः आधारं कुरुतcommit
दूरस्थनिरीक्षणशाखां प्रति पुनः आधारं कुर्वन्तुstable-3.1
श्रेष्ठतर:
$ git checkout rebaseExample
Switched to branch 'rebaseExample'
Your branch is ahead of 'origin/stable-3.1' by 109 commits.
(use "git push" to publish your local commits)
$ git rebase origin/stable-3.1
अस्मिन् समये, नूतने pop-up सम्पादके, श्रेणी सह, एकं commit सूची प्रदर्शितं भविष्यति rebaseExample
तथाstable-3.1
मध्ये, सर्वेषां पुनः आधारः भवितुं शक्यतेstable-3.1
इत्यस्यcommit
अभिलेख।नवद्वयं उदाहरणे स्थापयतुcommit
, शेषं सर्वं विलोपयन्तु (अर्थात् ८९ पङ्क्तौ ततः पूर्वं च सामग्रीः):
रक्षणानन्तरं सम्पादकात् बहिः गच्छन्तु ततः निम्नलिखितम् आउटपुट् द्रक्ष्यन्ति ।
$ git rebase --interactive origin/stable-3.1
Successfully rebased and updated refs/heads/rebaseExample.
# Check in gitk view:
परिणामः यथा भवति ।
उदाहरणविस्तारः
अस्मिन् उदाहरणे भवन्तः शीघ्रमेव आदेशद्वारा अपि इष्टं प्रभावं प्राप्तुं शक्नुवन्ति ।
$ git rebase --onto origin/stable-3.1 origin/stable-3.2 rebaseExample
Successfully rebased and updated refs/heads/rebaseExample.
पुनः आधारीकरणात् पूर्वं पश्चात् च चित्रं निम्नलिखितम् अस्ति ।