සම්බන්ධයක් නැති ඉතිහාසයන් නැවත ප්‍රතිස්ථාපනය කිරීම ඒකාබද්ධ කිරීම ප්‍රතික්ෂේප කරන්න


2177

තුළ git rebase origin/developmentපහත සඳහන් දෝෂ Git සිට ඇත:

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

මගේ Git අනුවාදය 2.9.0 වේ. එය පෙර අනුවාදයේ හොඳින් වැඩ කිරීමට භාවිතා කළේය.

නව නිකුතුවේදී හඳුන්වා දුන් බලහත්කාර ධජය සමඟ සම්බන්ධයක් නැති ඉතිහාසයන්ට ඉඩ දෙමින් මෙම ප්‍රතිප්‍රහාරය දිගටම කරගෙන යන්නේ කෙසේද?


12
Ish ශිෂ්‍යා නිසි ගෞරවයෙන් වඩාත්ම ඡන්දය දුන් පිළිතුර මෙම ප්‍රශ්නය සෘජු ආකාරයකින් විසඳන්නේ නැත. ප්‍රශ්නය git-rebaseතත්වය විමසන අතර පිළිතුර ධජයක් ලබා දෙයිgit-merge
ශුභාම් චෞද්රි

13
S අසිෆ් මොහමඩ් එය පිළිගත් පිළිතුරක් සඳහා නොවේ. පෙරනිමි ඡන්ද අනුව වර්ග කිරීම නිසා මිනිසුන් ස්වයංක්‍රීයව වැඩි ඡන්ද සංඛ්‍යාවක් සමඟ පිළිතුර සොයාගනු ඇත.
ග්ලෝර්ෆින්ඩෙල්

2
වෙනත් අයෙකු එකම වැරැද්දක් කර ඇත්නම්, git pull [repo URL]ඒ වෙනුවට අහම්බෙන් භාවිතා කිරීමෙන් පසුව මට මෙම දෝෂය ඇතිවියgit clone [repo URL]
rsoren


37
මාතෘකාව අවලංගු කිරීමේ සන්දර්භය තුළ ඇති බව සඳහන් නොකිරීම නිසා මෙහි අවුල් ජාලයක් ඇති වී ඇත , එබැවින් ඔබේ ප්‍රශ්නය විවිධ සන්දර්භයන්හි මෙම දෝෂය ලබාගෙන ඇත්ත වශයෙන්ම නැති පිළිතුරක් ඉහළට ඔසවා තබන ගූග්ලර්ස් වෙත යොමු වේ. ඔබ ඇසූ ප්‍රශ්නයට අදාළ වේ. එය දැන් පහසුවෙන් පිරිසිදු කළ නොහැක, එබැවින් නොගැලපෙන Q&A යුගලය වෙබ් අඩවියේ පවතිනු ඇති අතර ගූගල් සෙවුම් ප්‍රති results ල සදහටම ඉහළ මට්ටමක පවතී. කතාවේ සදාචාරය නම් ප්‍රශ්න මාතෘකා වැදගත් වීමයි!
අමරි

Answers:


2646

Git 2.9 සිට පෙරනිමි හැසිරීම වෙනස් වී ඇත:

පෙරනිමියෙන් පොදු පදනමක් නොමැති ශාඛා දෙකක් ඒකාබද්ධ කිරීමට ඉඩ සලසන “git merge”, එමඟින් පවත්නා ව්‍යාපෘතියක නවතම ඉතිහාසයක් නිර්මාණය වී සැක සහිත නඩත්තුකරුවෙකු විසින් ඇද ගන්නා ලද අතර එමඟින් අනවශ්‍ය සමාන්තර ඉතිහාසයක් පවතින ව්‍යාපෘතියට ඒකාබද්ධ කිරීමට ඉඩ ලබා දෙන ලදි. . පෙරනිමියෙන් මෙය ඉඩ නොදෙන ලෙස විධානය උගන්වා ඇති අතර , --allow-unrelated-historiesඔවුන්ගේ ජීවිත ස්වාධීනව ආරම්භ කළ ව්‍යාපෘති දෙකක ඉතිහාසය ඒකාබද්ධ කරන දුර්ලභ අවස්ථාවකදී පැනීමේ හැච් විකල්පයක් භාවිතා කළ හැකිය.

වැඩි විස්තර සඳහා Git නිකුතුව වෙනස් කිරීම බලන්න .

--allow-unrelated-historiesඒකාබද්ධ කිරීම සිදුවීමට බල කිරීම සඳහා ඔබට භාවිතා කළ හැකිය .


18
ඒකාබද්ධ කිරීමේ වෙනස දැනගන්න, නමුත් මෙම විකල්පය නැවත සකස් කිරීම සමඟ ක්‍රියා නොකරනු ඇත
ශුභාම් චෞද්රි

3
--allow-unrelated-historiesස්ථිරවම ක්‍රියාත්මක වන විකල්පයක් තිබේද?
jmarceli

4
marjmarceli "එවැනි" ව්‍යාපෘති දෙකක් ඒකාබද්ධ කිරීම "දුර්ලභ සිදුවීමක් බැවින්, එවැනි ඒකාබද්ධ කිරීමකට සැමවිටම ඉඩ ලබා දෙන වින්‍යාස විකල්පයක් එකතු නොවේ." එබැවින් නැත.
blue112

2
මම මේ ආකාරයෙන් වෙනත් රෙපෝවක් සඳහා ශාඛාවක් ඒකාබද්ධ කිරීමට උත්සාහ කළ නමුත් එය මගේ වර්තමාන ශාඛාවට නව බැඳීමක් ඇති කළ අතර ඉතිහාසය අනෙක් ගබඩාවෙන් keep ත් නොවීය. පසුව මම අනෙක් ගබඩාවෙන් දේශීය ශාඛාවක් පරීක්ෂා කර එය ඒකාබද්ධ කළ අතර හදිසියේම සාමාන්‍ය ඒකාබද්ධ කිරීමේ බැඳීමක් දිස්විය. අමුතුයි.
mgol

14
විශිෂ්ටයි, එසේම වැඩ කරයි git pull. එම ස්වාධීනව ඔවුන්ගේ ජීවිත ආරම්භ කළ ව්‍යාපෘති දෙකක ඉතිහාසය ඒකාබද්ධ කරන දුර්ලභ සිදුවීමකි. git --work-tree="." pull --allow-unrelated-histories
පෙට්රු සහරියා

1215

මගේ නඩුවේදී, දෝෂය fatal: refusing to merge unrelated historiesසෑම උත්සාහයකදීම සිදු විය, විශේෂයෙන් දුරස්ථව Git ගබඩාවක් එක් කිරීමෙන් පසු පළමු ඉල්ලීම.

--allow-unrelated-historiesධජය භාවිතා කිරීම මේ ආකාරයෙන් අදින්න ඉල්ලීමක් සමඟ වැඩ කළේය:

git pull origin branchname --allow-unrelated-histories

234
මම සෑම විටම මෙම දෝෂය දකින්නේ මම README.md සමඟ නව ගිතුබ් ගබඩාවක් සාදන විට, එය පළමු වරට දේශීය ගබඩාවකට අදින්න. ඉතින් කරදරයක්.
Tien Do

29
නව ගබඩාවන් සඳහා, පළමුව අදින්න, සාමාන්‍යයෙන් a සමඟ ආරම්භ කිරීම වඩා හොඳය git clone.
කුඩය

3
ArdPardeepJain කරුණාකර මෙම github.com/git/git/blob/master/Documentation/RelNotes/…
adi

2
පෙරනිමි ලිපිගොනු සඳහා මෙය සිදුවන්නේ නම් මෙවැනි ලිපිගොනු ඒකාබද්ධ කිරීම සඳහා පැහැදිලි විභේදනයක් තිබිය යුතු බව වටහා ගැනීමට පෙර මෙය පැය කිහිපයක් මට නතර විය - අවම වශයෙන් මෙම ගැටලුව ඇති එකම පුද්ගලයා මම නොවීම ගැන මම සතුටු වෙමි!
සිබොබ්ස්

3
මගේ නඩුවේ එය සිදු වූයේ මම ගිතුබ්හි බලපත්‍ර ගොනුවක් එක් කළ බැවිනි. ඉහත සඳහන් කළ විධානය (සහ පහළ, ඒවා සමාන වේ) ක්‍රියාත්මක විය.
uudaddy


267

මම මුලින්ම දේශීය ගබඩාවක් සැකසූ විට මෙම දෝෂය ඇතිවිය. පසුව මම GitHub වෙත ගොස් නව ගබඩාවක් නිර්මාණය කළෙමි. ඊට පස්සේ මම දිව්වා

git remote add origin <repository url>

මම තල්ලු කිරීමට හෝ අදින්නට උත්සාහ කළ විට, fatal: unrelated_historiesසෑම විටම එකම දෝෂයක් මට ලැබුණි .

මෙන්න මම එය සවි කළ ආකාරය:

git pull origin master --allow-unrelated-histories
git merge origin origin/master
... add and commit here...
git push origin master

මම හිතන්නේ අපි හිටියේ එකම බෝට්ටුවේ. යමක් එකතු කිරීම සඳහා: මගේ ගැටලුව වූයේ දුරස්ථ ගබඩාවේ දැනටමත් යමක් තිබීමයි. ඉතින් මගේ ෆෝල්ඩරයේ, එය ෆෝල්ඩරය මකා දමා .git, දුව ගොස් git initආදිත්‍ය පැවසූ දේ කළා, ඒකාබද්ධ කිරීමේ කොටස හැර.
codepleb

1
මැක්හි INSERT බොත්තම ඔබන්නේ කෙසේද? ඇත්ත වශයෙන්ම, මට බැඳීමේ පණිවිඩය ටයිප් කර විධාන රේඛාවෙන් ඒකාබද්ධ කළ යුතුය, නමුත් විධාන රේඛාවෙන් එය කරන්නේ කෙසේදැයි මම නොදනිමි.
ෂජීල් අෆ්සාල්

එය විවෘතව තිබේද? එය එසේ නම්, එය හුදෙක් SHIFT +:
ආදිත්‍ය භට්

මම පවා මුලින්ම GitHub repo නිර්මාණය කර ඇති අතර repo එකතු කිරීමේ එම විධානයන් හරහා යමි.
සුර්ය ha ා

1
මෙය ඇත්තෙන්ම හොඳ පිළිතුරකි. කාරණය වන්නේ ඔබ බලෙන් ඇදගෙන ගොස් දේශීය හා දුරස්ථ repo ඒකාබද්ධ කිරීමයි.
alanwsx

152

මේ සඳහා, විධානය ඇතුළත් කරන්න:

git pull origin branchname --allow-unrelated-histories

උදාහරණයක් වශයෙන්,

git pull origin master --allow-unrelated-histories

යොමුව:

GitHub සම්බන්ධයක් නැති ඉතිහාස නිකුතුව


පළමු වතාවට ස්තූතියි එහි වැඩ මා වෙනුවෙන් අදින්න "git pull origin master --allow-සම්බන්ධයක් නැති ඉතිහාසයන්"
Ankitkumar Makwana

136
git pull origin <branch> --allow-unrelated-histories

ඔබව Vim සංස්කරණ කවුළුවකට යොමු කරනු ඇත:

  • බැඳීම් පණිවිඩය ඇතුළු කරන්න
  • ඉන්පසු Esc("ඇතුළු කරන්න" ප්‍රකාරයෙන් පිටවීමට), පසුව :(මහා බඩවැලේ), පසුව x(කුඩා "x") ඔබා අවසානයේ EnterVim වෙතින් ඉවත් වීමට පහර දෙන්න
  • git push --set-upstream origin <branch>

5
Ctrl + X ඔබව Vim වෙතින් ඉවත් නොකරනු ඇත
Ruben

නමුත් :x<Enter>කැමැත්ත
webKnjaZ

පිටතට යන්නේ කෙසේදැයි නියම කිරීමට ස්තූතියි; මට සම්පූර්ණයෙන්ම අහිමි වූ අතර අනෙක් සියලුම පිළිතුරු එය පැහැදිලිව පෙනේ යැයි පෙනේ!
නිශ්චල_ දැනුවත් කිරීම

101

මටත් ඒ වගේ ප්‍රශ්නයක් තිබුණා. මේක උත්සාහ කරන්න:

git pull origin master --allow-unrelated-histories 

git push origin master

48

උත්සාහ කරන්න git pull --rebase development


මෙය මගේ ගැටලුව විසඳීය. මෙන්න ගැටළුව ආරම්භ වූ ආකාරය
හාර්ලන් නෙල්සන්

1
මෙය බොහෝ විට විය යුත්තේ:git pull --rebase=preserve --allow-unrelated-histories development
රිකාඩෝ මුරි

3
IcRiccardoMurri එය අත්හදා බැලීමෙන් පසු මම නැවත එය නොකරමි. මගේ නව ගබඩාව තුළ නියැදි ආරම්භක ලිපිගොනු කිහිපයක් තිබූ අතර, මගේ දේශීය රෙපෝ මාසවල වටිනාකමින් යුතු මුදල්. මෙය ක්‍රියාත්මක කිරීම ( newOrigin branchවෙනුවට development) මගේ ප්‍රාදේශීය ශාඛාවේ මුදුනට මුලික කැපවීම එක් කළ අතර එයින් සෑම දෙයක්ම පාහේ effectively ලදායී ලෙස ඉවත් කළේය. මට අවශ්‍ය වූයේ නව දුරස්ථයේ ආරම්භක කැපවීම පතුලේ තිබීමයි.
redOctober13

44

Android Studio සහ IntelliJ සඳහා:

පළමුව, සිදු සියල්ල ඕනෑම ගැටුම් නිරාකරණය.

ඉන්පසු IDE ට පහළින් ටර්මිනලය විවෘත කර ඇතුළත් කරන්න:

git pull origin master --allow-unrelated-histories

දැන් ඔබට තල්ලු කළ හැකිය.


38

මෙය අනතුරු ඇඟවීම දුරස්ථ ගබඩාව අභිබවා යාමට ඉඩ ඇත

මෙය මට ප්‍රයෝජනවත් විය:

git push origin master --force

1
නමුත් දේශීය හා දුරස්ථ ලිපිගොනු සමඟ ඇත්ත වශයෙන්ම සිදුවන්නේ කුමක්ද?
ප්‍රතමේෂ් මෝර්

මා දන්නා සහ පළපුරුදු පරිදි, දේශීය ලිපිගොනු නොවෙනස්ව පවතී. ඔබට විශේෂිත ෆෝල්ඩරයකට එක් කිරීමට අවශ්‍ය දුරස්ථ ලිපිගොනු එකතු වේ.
අනිකෙට් පටිල්


මෙම විධානය ප්‍රධාන ශාඛාවේ ඇති සියලුම ලිපිගොනු අභිබවා යන බවට වියාචනය ඇතුළත් කරන්න . මට හොඳට වැඩ කළා. ස්තූතියි.
ෆ්ලේවියෝ

1
එය ක්‍රියාත්මක වන නමුත් තරමක් කටුක ය, --allow-undlad-history වඩාත් නිශ්චිත හා සුදුසු ය
bdulac

33

අනෙක් සියලුම පිළිතුරු ඇත්ත වශයෙන්ම ප්‍රශ්නයට පිළිතුරු නොදක්වන හෙයින්, අදාළ පිළිතුරක් සඳහා මෙම පිළිතුරෙන් ආනුභාව ලත් විසඳුමක් මෙන්න .

එබැවින් ඔබ ඔබේ දෝෂය සිදු කරයි git rebase:

$ git rebase origin/development
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

මෙම දෝෂය ඇත්ත වශයෙන්ම ප්‍රතිප්‍රහාරය අවලංගු නොකරයි, නමුත් ඔබ දැන් සිටින්නේ මැද ය:

$ git status
interactive rebase in progress; onto 4321beefdead
Last command done (1 command done):
   pick 1234deadbeef1234deadbeef test merge commit

එබැවින් ඔබට දැන් ඒකාබද්ධ කිරීම අතින් කළ හැකිය. මුල් ඒකාබද්ධ කිරීමේ කැපවීමේ මවුපියන්ගේ බැඳීම් සොයා ගන්න:

$ git log -1 1234deadbeef1234deadbeef
commit 1234deadbeef1234deadbeef
Merge: 111111111 222222222
Author: Hans Dampf
Date:   Wed Jun 6 18:04:35 2018 +0200

    test merge commit

වර්තමාන දෙමව්පියන් සමඟ ඒකාබද්ධ කරන ලද දෙමව්පියන් දෙදෙනාගෙන් git log 222222222කවරෙක් දැයි සොයා ගන්න (බොහෝ විට දෙවැන්නා, සත්‍යාපනය කරන්න ), පසුව ඒකාබද්ධ කිරීම අතින් සිදු කරන්න, මුල් ඒකාබද්ධ කිරීමේ බැඳීමේ පණිවිඩය පිටපත් කරන්න:

$ git merge --allow-unrelated 222222222 --no-commit
Automatic merge went well; stopped before committing as requested
$ git commit -C 1234deadbeef1234deadbeef
[detached HEAD 909af09ec] test merge commit
 Date: Wed Jun 6 18:04:35 2018 +0200
$ git rebase --continue
Successfully rebased and updated refs/heads/test-branch.

28

මටත් ඒ වගේ ප්‍රශ්නයක් තිබුණා. ගැටළුව දුරස්ථ වන්නේ මෙය වළක්වන යමක් තිබීමයි.

මම මුලින්ම දේශීය ගබඩාවක් නිර්මාණය කළා. මම එකතු LICENSEසහ README.mdමගේ දේශීය හා කැප කිරීම ගොනුව.

එවිට මට දුරස්ථ ගබඩාවක් අවශ්‍ය වූ නිසා මම GitHub හි එකක් නිර්මාණය කළෙමි. මෙන්න මම "README සමඟ මෙම ගබඩාව ආරම්භ කරන්න" පරීක්ෂා කිරීමේ වැරැද්දක් කළ අතර එය දුරස්ථවද README.md නිර්මාණය කළේය.

ඉතින් දැන් මම දුවද්දී

git push --set-upstream origin master

මම ගත්තා:

error: failed to push some refs to 'https://github.com/lokeshub/myTODs.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes
(e.g. hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

දැන් මෙය ජය ගැනීම සඳහා මම කළා

git pull origin master

එහි ප්‍රති ulted ලය වූයේ පහත දෝෂයයි:

From https://github.com/lokeshub/myTODs
branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories**

මම උත්සාහ කළා:

git pull origin master --allow-unrelated-histories

ප්‍රති ult ලය:

From https://github.com/lokeshub/myTODs
 * branch            master     -> FETCH_HEAD
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed;
fix conflicts and then commit the result.

විසඳුමක්:

මම දුරස්ථ ගබඩාව ඉවත් කර නව එකක් නිර්මාණය කළෙමි (ගොනුව ඉවත් කිරීම පමණක් READMEවැඩ කළ හැකිව තිබූ බව මම සිතමි ) ඉන්පසු පහත වැඩ කළේ:

git remote rm origin
git remote add origin https://github.com/lokeshub/myTODOs.git
git push --set-upstream origin master

25
නව ගබඩාවක් නිර්මාණය කිරීම විසඳුමක් නොවේ
Zach

3
git pull origin master --allow-සම්බන්ධයක් නැති ඉතිහාසයන් මා වෙනුවෙන් වැඩ කළා .. ස්තූතියි
SKalariya

git push --force ... මෙම විශේෂිත අවස්ථාවෙහි 1 වන පියවරේදී නිසි විසඳුමක් වනු ඇත
කොන්ස්ටන්ටින් පෙලෙපලින්

2
මෙය විසඳුමක් නොවේ. ඔබ ආරම්භකයකු නම්, ඔබට එය කළ හැකිය, නමුත් ඔබ සමහර සැබෑ ව්‍යාපෘති සමඟ වැඩ කරන්නේ නම්, ඔබට නිසි ආකාරයෙන් කටයුතු කළ යුතුය.
ප්‍රතමේෂ් මෝර්

28

මෙය සාමාන්‍යයෙන් සිදුවන්නේ ඔබ පළමු වරට දුරස්ථ ගබඩාවට කැප වූ විටය. දෝෂය පැහැදිලිව පවසන පරිදි “සම්බන්ධ නොවූ ඉතිහාසයන් ඒකාබද්ධ කිරීම ප්‍රතික්ෂේප කිරීම”, අප භාවිතා කළ යුත්තේ - සම්බන්ධ නොවන-ඉතිහාස ධජයයි.

git pull origin master  --allow-unrelated-histories

දැන් අප විසින් අතින් විසඳිය යුතු ගැටුම් කිහිපයක් තිබේ. ඊට පසු කේතය කැප කර එය තල්ලු කරන්න.


ප්‍රශ්නයේ සඳහන් කර ඇති පරිදි, මම උත්සාහ කරන්නේ git-rebase එකක් මිස git-pull, git-rebase --allow-unrelated-historiesධජය නැත.
ශුභම් චෞද්රි

28

මෙය සිදුවිය හැකි අවස්ථා දෙකක් -

  1. ඔබ ව්‍යාපෘතියක් ක්ලෝන කර ඇති අතර, කෙසේ හෝ .git නාමාවලිය මකා දමා හෝ දූෂිත වී ඇත. මෙය ඔබගේ දේශීය ඉතිහාසය ගැන Git නොදැන සිටීමට හේතු වන අතර, එබැවින් ඔබ දුරස්ථ ගබඩාවට තල්ලු කිරීමට හෝ අදින්නට උත්සාහ කරන විට මෙම දෝෂය ඇතිවීමට එය හේතු වේ.

  2. ඔබ නව ගබඩාවක් නිර්මාණය කර ඇති අතර, ඒ සඳහා කොමිස් කිහිපයක් එකතු කර ඇති අතර, දැන් ඔබ උත්සාහ කරන්නේ දුරස්ථ ගබඩාවකින් ඉවත් කර ගැනීමට ය. ව්‍යාපෘති දෙක සම්බන්ධ වන්නේ කෙසේදැයි නොදන්නා බැවින් Git ද මෙම නඩුවේ දෝෂය විසි කරයි.

විසඳුමක්

git pull සම්භවය මාස්ටර් - ඉඩ නොතබන-ඉතිහාසයන්

Ref - https://www.educative.io/edpresso/the-fatal-refusing-to-merge-unrelated-histories-git-error


17

මම කළේ අ

  git pull --allow-unrelated-histories

Ish බිෂ්වාස්මිෂ්රා ගිට් පුල් සම්භවය ශාඛා නාමය - ඉඩ නොතබන-ඉතිහාසය
කිෂාන් වාගෙලා

15

පළමුව පහත දැක්වෙන විධානය භාවිතා කර දුරස්ථ වෙනස්කම් ඔබේ ප්‍රාදේශීයයට අදින්න:

git pull origin branchname --allow-unrelated-histories

** ශාඛා නාමය මගේ නඩුවේ ප්‍රධාන වේ.

අදින්න විධානය සිදු කළ විට ගැටුම් ඇතිවේ. ඔබ ගැටුම් විසඳිය යුතුයි. ගැටුම් නිරාකරණය කිරීම සඳහා මම ඇන්ඩ්‍රොයිඩ් ස්ටුඩියෝ භාවිතා කරමි. රූප විස්තරය මෙහි ඇතුළත් කරන්න

ගැටුම් නිරාකරණය වූ විට, ඒකාබද්ධ කිරීම සිදු කෙරේ!

දැන් ඔබට ආරක්ෂිතව තල්ලු කළ හැකිය.


මම Resolve ConflictAS හි බොත්තම සොයමින් සිටිමි . සමහර විට දකුණු පස ඇති උත්පතන / බැලූනය අතුරුදහන් වන අතර මට කිසිවක් කළ නොහැක. ස්තූතියි @oiyio
mochadwi

12

මමත් මේ සමඟ පොරබදමින් සිටියද, ඒ සඳහා විසඳුමක් සොයා ගැනීමට මට හැකි විය.

ඔබ ඉහත දෝෂයට ගොදුරු වූ විට, ඒකාබද්ධ කිරීමේ බැඳීම චෙරි-තෝරාගෙන නැවත ප්‍රතිචක්‍රීකරණය දිගටම කරගෙන යන්න:

git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue

3
කරුණාකර ගුවන් යානයෙන්?
නියෝජිත සෙබ්‍රා

1
@AgentZebra සංකීර්ණ තලයේ ඕනෑම තැටියක් සඳහා අඛණ්ඩ සංවෘත මාර්ග අනුකලනය 0 වේ.
Addem

7

එය කරන විට git pull, මට මෙම පණිවිඩය ලැබුනේ fatal: refusing to merge unrelated histories රෙපෝ මොඩියුලයක් සඳහා වන අතර එහිදී මම ටික වේලාවක් දේශීය පිටපත යාවත්කාලීන කර නොමැත.

මම මෙම විධානය ක්‍රියාත්මක කළේ දේශීය සම්භවය නැවුම් කිරීම සඳහා පමණි. මට දුරස්ථ සිට නවතම අවශ්‍ය වූ අතර දේශීය වෙනස්කම් අවශ්‍ය නොවීය.

git reset --hard origin/master

මෙය මගේ නඩුවේදී එය සවි කර ඇත.


12
අවවාදයයි: මෙය මගේ සියලුම ලිපිගොනු මකා දැමීය. ඔබ කරන්නේ කුමක්දැයි නොදන්නේ නම් ප්‍රවේශම් වන්න!
සල්වි පැස්කුවල්

2
මෙය අපේක්ෂිත සියලු වෙනස්කම් මකා දමනු ඇත!
ඔරෙස්ටිස් පී.


1

මම වසර ගණනාවක් තිස්සේ ප්‍රතිලාභ භාවිතා කරන අතර මට කිසි විටෙකත් එවැනි ගැටලුවකට මුහුණ දී නොමැත. කෙසේ වෙතත්, ඔබේ පළමු ප්රශ්නය ඔබට දුරස්ථ ශාඛා මත සෘජුවම එය කිරීමට උත්සාහ වේ developmentනම් දුරස්ථ ගබඩාව, සිට origin. එය වචනයේ පරිසමාප්ත අර්ථයෙන්ම වැරදියි, මන්දයත් නැවත සැකසීම භයානක විධානයක් වන අතර එය ඉතිහාසය නැවත සකස් කරයි. එසේ පැවසීමෙන් පසු, ඔබ මුලින්ම උත්සාහ කළ යුත්තේ ඔබේ දේශීය ගබඩාව මත එය තල්ලු කර එය අපේක්ෂා කළ පරිදි ඔබ වෙනුවෙන් වැඩ කරන්නේ නම් පමණි.

එබැවින්, මගේ සුපුරුදු ප්‍රතිවිකුණුම් කාර්ය ප්‍රවාහය පහත පරිදි පෙනේ (නමුත් කරුණාකර මතක තබා ගන්න, ඔබ එකම කමිටුවක් නොවන ශාඛා මත නැවත භාවිතා කිරීම නොකළ යුතුය. එවැනි ශාඛා සඳහා, සරලව ඒකාබද්ධ වී ගැටුම් නිරාකරණය කරන්න, අදාළ නම්)

  1. ඔබට පිරිසිදු වැඩ කරන ගසක් ඇති බවට වග බලා ගන්න (නොගැලපෙන වෙනස්කම් නොමැත)
  2. ඔබට නැවත ප්‍රතිස්ථාපනය කිරීමට අවශ්‍ය ශාඛාව වෙත පිවිසීම (නිදසුනක් ලෙස, එය masterඑක් පේළියේ විධානයක් ලෙස කියමු ):git checkout master && git pull origin master && git checkout development
  3. සත්‍ය ප්‍රතිප්‍රහාරය කරන්න: git rebase master
  4. එය සිදු කර සියල්ල අපේක්ෂා කළ පරිදි ක්‍රියාත්මක වන්නේ නම්, එය ඔබගේ දුරස්ථයට තල්ලු කරන්න. එසේ කිරීම සඳහා, ඔබ එය බල කළ යුතුය, මන්ද දුරස්ථ ධාරකයට දැනටමත් වෙනත් අනුපිළිවෙලක ඉතිහාසය ඇති බැවින්, දුරස්ථය තල්ලු කිරීමට කිසිවක් නොමැතිව පිළිතුරු සපයයි. එබැවින්, අපට කිව යුතුව ඇත්තේ "ඉතිහාසයේ මගේ දේශීය අනුවාදය නිවැරදි ය, එම දුරස්ථ ශාඛාවේ ඇති සියල්ල ඉතිහාසයෙහි මගේ දේශීය අනුවාදය භාවිතා කර නැවත ලියන්න":git push -f origin development

මා දැනටමත් සඳහන් කර ඇති පරිදි, මතක තබා ගන්න, එම ප්‍රතිප්‍රහාරය git ඉතිහාසය හසුරුවයි, එය සාමාන්‍යයෙන් නරක දෙයකි. කෙසේ වෙතත්, වෙනත් කිසිවෙකු නොසිටින අතු මත එය කළ හැකිය. අනෙක් සංවර්ධකයින් සඳහා ශාඛාව අදින්නට හැකි වන පරිදි, ඒකාබද්ධ කිරීම, ස්කොෂ් හෝ චෙරිපික් වැනි තවත් ඒකාබද්ධ කිරීමේ උපාය මාර්ගයක් භාවිතා කරන්න. එබැවින්, වෙනත් වචන වලින් කිවහොත්: බෙදාහැරීමේ සංවර්ධනය පිළිබඳ ඔබේ මෙවලම රීබේස් නොවිය යුතුය. මෙම ගබඩාවේ වැඩ කරන්නේ ඔබ පමණක් නම් එය ඔබට හොඳින් ක්‍රියාත්මක වේ.

අපි විශේෂාංග ශාඛා උපාය භාවිතා කරමු. මෙහි දී, මම සාමාන්‍යයෙන් ප්‍රතිනිර්මාණය භාවිතා කරන්නේ අනෙක් සංවර්ධකයින්ගෙන් “යාවත්කාලීනයන්” ලබා ගැනීම සඳහා ය. එසේ කිරීමෙන්, අදින්න ඉල්ලීමකින් පෙනෙන කොමිස් ප්‍රමාණය අඩු කරයි. එමනිසා, කේත විචාරකයාට මෙම විශේෂාංග ශාඛාවේ මා කළ වෙනස්කම් දැකීම පහසු කරයි.


මෙම අවස්ථාවේ දී, මට ඇත්ත වශයෙන්ම අවශ්‍ය වූයේ නැවත ගෙවීම දිගටම කරගෙන යාමට වන අතර පිළිතුර එයට ආමන්ත්‍රණය නොකරයි. නැවත ප්‍රතිස්ථාපනය කිරීමේ අවදානම මම දනිමි. තවද මම git-rebase භාවිතා නොකළ යුතුය. මෙය git workflow සඳහා පොදු (මතවාදී) මාර්ගෝපදේශයක් වන අතර ප්‍රශ්නයට directly ජුව පිළිතුරු සපයන්නේ නැත. වසර ගණනාවක් තිස්සේ ප්‍රතිරෝධය භාවිතා කරන තාක් දුරට, මෙම විශේෂිත දෝෂය git හි v2.9.0 හි එකතු කරන ලද අතර එම නිකුතුවට පෙර හොඳින් ක්‍රියා කිරීමට භාවිතා කරන ප්‍රවාහය. ඔබ මෙම පිළිතුරෙහි පළ කර ඇති දේට දැනටමත් පැරණි ප්‍රශ්න වලට stackoverflow.com/a/11566503/2670370 සහ git-scm.com/book/en/v2/Git-Branching-Rebasing
Chaudhary
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.