ප්‍රධාන ශාඛාව සහ 'සම්භවය / මාස්ටර්' අපසරනය වී ඇත, ශාඛා 'වෙන්' කරන්නේ කෙසේද?


990

කෙසේ හෝ මගේ masterසහ මගේ origin/masterශාඛාව අපසරනය වී ඇත.
ඇත්ත වශයෙන්ම ඔවුන් අපසරනය වීමට මා කැමති නැත.

මෙම වෙනස්කම් දෙස බලා ඒවා ඒකාබද්ධ කරන්නේ කෙසේද?


2
අපසරනය කිරීමෙන් ඔබ අදහස් කරන්නේ කුමක්ද? ඔබේ ස්වාමියා තල්ලු කිරීමෙන් පසු ඔබ එය ප්‍රතික්ෂේප කරනවාද?
hasen

14
මට පණිවිඩයක් ලැබෙන්නේ "ඔබේ ශාඛාව සහ 'සම්භවය / ස්වාමියා' අපසරනය වී ඇති අතර, # සහ පිළිවෙලින් 1 සහ 1 වෙනස් බැඳීම් ඇත."
ෆ්‍රෑන්ක්

එම “අපසරිත” අනතුරු ඇඟවීමේ පණිවිඩය පිළිබිඹු කිරීම සඳහා මම මගේ පිළිතුර යාවත්කාලීන කර ඇත.
VonC

8
මෙම බ්ලොග් අඩවියේ පැහැදිලි කිරීම පහත දැක්වෙන ඕනෑම පිළිතුරකට වඩා මට අසීමිත ලෙස උපකාරී විය: sebgoo.blogspot.com/2012/02/…

1
මගේ ප්‍රාදේශීය ශාඛාව 'අපසරනය' කිරීමෙන් පසු සිදු කළ සියලුම වෙනස්කම් අහෝසි කිරීම සඳහා (තල්ලු කිරීම සහ අදින්න අවශ්‍යයි, මම කිසිදු වෙනසක් නොකළ විට මට මතක තබා ගත හැකිය): git reset --hard origin / my-branch. ඔබ තබා ගැනීමට අවශ්‍ය දේශීය වෙනස්කම් කිසිවක් නොකළ බව ඔබ දන්නේ නම් පමණක් මෙය කරන්න.
පීඨාධිපති

Answers:


1033

ඔබට පහත වෙනස්කම් සමාලෝචනය කළ හැකිය :

git log HEAD..origin/master

එය අදින්නට පෙර (ලබා ගැනීම + ඒකාබද්ධ කිරීම) ( "නිශ්චිත ශාඛාවකින් සෑම විටම ඇද ගැනීමට ඔබට git ලැබෙන්නේ කෙසේද?" ද බලන්න ).


ඔබට මෙවැනි පණිවිඩයක් ඇති විට:

"ඔබේ ශාඛාව සහ 'සම්භවය / ස්වාමියා' අපසරනය වී ඇත, # සහ පිළිවෙලින් 1 සහ 1 වෙනස් බැඳීම් ඇත."

, ඔබට යාවත්කාලීන කිරීමට අවශ්‍යorigin දැයි පරීක්ෂා කරන්න . නම් originයාවත්කාලීන වන අතර, සමහර අනාචාරයේ තල්ලු කර ඇත originතවත් ණයකට ඔබ එක්කෝ කොබැඳි නැත්නම් ස්ථානීකව නොපවතියි ඔබේ ම අනාචාරයේ කළ අතර.

... o ---- o ---- A ---- B  origin/master (upstream work)
                   \
                    C  master (your work)

ඔබ ඒ මත උඩරට සිට ලබාගත් නවතම කාර්යය වන නිසා ඔබ කැපවීම A මත පදනම් විය.

කෙසේ වෙතත්, ඔබ නැවත මූලාරම්භයට තල්ලු කිරීමට උත්සාහ කිරීමට පෙර, වෙනත් අයෙකු බී කැපවීමට තල්ලු විය.
සංවර්ධන ඉතිහාසය වෙනම මාවත්වලට වෙනස් වී ඇත.

එවිට ඔබට ඒකාබද්ධ කිරීම හෝ නැවත ප්‍රතිස්ථාපනය කළ හැකිය. බලන්න Rebasing - Git අතු බෙදී: Pro Git විස්තර සඳහා.

ඒකාබද්ධ කරන්න

Git merge විධානය භාවිතා කරන්න:

$ git merge origin/master

මෙය origin/masterඔබගේ කාර්යයේ වෙනස්කම් ඒකාබද්ධ කිරීමට හා ඒකාබද්ධ කිරීමේ බැඳීමක් ඇති කිරීමට Git ට කියයි .
ඉතිහාසයේ ප්‍රස්ථාරය දැන් මේ ආකාරයට පෙනේ:

... o ---- o ---- A ---- B  origin/master (upstream work)
                   \      \
                    C ---- M  master (your work)

නව ඒකාබද්ධ කිරීම, කැපවීම එම්, සඳහා දෙමව්පියන් දෙදෙනෙකු සිටින අතර, එක් එක් සංවර්ධනයේ එක් මාවතක් නියෝජනය කරයි.

එම් පිටුපස ඇති ඉතිහාසය දැන් රේඛීය නොවන බව සලකන්න.

නැවත සකස් කරන්න

Git rebase විධානය භාවිතා කරන්න:

$ git rebase origin/master

මෙය Git ට කියනුයේ A (ඔබේ කාර්යය) වෙනුවට ඔබ එය A මත පදනම් වූ B මත පදනම් වූවාක් මෙන් ය
.
Git හුදෙක් කැපවීම සහ නැවත සකස් කිරීමේ පියවර අතර පැහැදිලි වෙන් කිරීමක් එක් කරයි.

ඉතිහාසයේ ප්‍රස්ථාරය දැන් මේ ආකාරයට පෙනේ:

... o ---- o ---- A ---- B  origin/master (upstream work)
                          \
                           C'  master (your work)

Commit C 'යනු git rebase විධානය මඟින් නිර්මාණය කරන ලද නව කැපවීමකි.
එය C ට වඩා ආකාර දෙකකින් වෙනස් වේ:

  1. එයට වෙනස් ඉතිහාසයක් ඇත: ඒ වෙනුවට බී.
  2. එහි අන්තර්ගතය බී සහ සී යන දෙකෙහිම වෙනස්කම් සඳහා හේතු වේ; එය ඒකාබද්ධ කිරීමේ උදාහරණයෙන් M ට සමාන වේ.

සී පිටුපස ඇති ඉතිහාසය තවමත් රේඛීය බව සලකන්න.
රේඛීය ඉතිහාසයට පමණක් ඉඩ දීම සඳහා අපි (දැනට) තෝරාගෙන ඇත cmake.org/cmake.git.
මෙම ප්‍රවේශය කලින් භාවිතා කළ CVS මත පදනම් වූ කාර්ය ප්‍රවාහය ආරක්ෂා කරන අතර සංක්‍රාන්තිය ලිහිල් කළ හැකිය.
සී අපගේ ගබඩාවට තල්ලු කිරීමේ උත්සාහයක් සාර්ථක වනු ඇත (ඔබට අවසර ඇති බව උපකල්පනය කර ඔබ ප්‍රතික්ෂේප කරන අතරතුර කිසිවෙකු තල්ලු කර නැත).

Git pull විධානය මඟින් මූලාරම්භය ලබා ගැනීමට සහ ඒ මත දේශීය වැඩ නැවත කිරීමට කෙටිමං ක්‍රමයක් සපයයි:

$ git pull --rebase

මෙය ඉහත ලබා ගැනීම සහ පියවර නැවත එක් විධානයකට ඒකාබද්ධ කරයි.


5
මම මෙය සොයාගත්තේ එකම ගැටලුව දෙස බලන විට, 'git reset --hard HEAD' ගැටලුව විසඳුවේ නැත්තේ මන්දැයි ඔබට පැහැදිලි කළ හැකිද?
නෙත්

13
EthNeth: මන්ද එය වේදිකාගත කරන ලද වෙනස් කිරීම් ගැන නොවේ (එනම් දර්ශකයේ ඇති වෙනස් කිරීම් නමුත් තවමත් සිදු කර නොමැති), නමුත් දේශීය කොමිස් (දුරස්ථයේ ඇති කොමිස් වලට වඩා වෙනස්). git reset --hard HEADඕනෑම දේශීය සුචිගත නොකළ කැපවීමක් ඉවත් කිරීම පමණක් ඉවත් කරන අතර දේශීය හා දුරස්ථ කොමිස් අතර වෙනස්කම් සමථයකට පත් කිරීමට කිසිවක් නොකරනු ඇත . ඒකාබද්ධ කිරීමක් හෝ ප්‍රතිප්‍රහාරයක් පමණක් මඟින් කොමිස් දෙක (දේශීය එක සහ දුරස්ථ එක) එකට ගෙන එනු ඇත.
VonC

4
ඇවැත්නි, මෙම පුදුමාකාර ප්‍රතිචාරයට ස්තූතියි. අපි "--rebase" නොමැතිව අහම්බෙන් "git pull" එකක් කර ඇති අතර, "git rebase origin / master" යනු නිවැරදි කිරීම පමණි!
mrooney

5
කෙසේද - මට අවශ්‍ය වන්නේ මගේ දේශීය වෙනස්කම් නොසලකා හැර / දුරස්ථව සිටින මගේ ප්‍රාදේශීය ශාඛාව සමඟ සිටීමටද? වෙනත් වචන වලින් කිවහොත්, මට ඔබේ ආදර්ශය masterපෙන්වා දීමට අවශ්‍යයි B.
CygnusX1

25
@ git reset --hard origin/masterපහත දැක්වෙන පිළිතුරේ සඳහන් වන පරිදි සිග්නස්එක්ස් 1
VonC

747

ඉහත ප්‍රතිචාර කියවීමෙන් පසුව පවා මට මෙය ඇති අතර එයට හේතුව කුමක්ද යන්න පිළිබඳව මා තුළ සැකයක් පවතී. මගේ විසඳුම වූයේ එය කිරීමයි

git reset --hard origin/master

(දුරස්ථ) සම්භවය / ස්වාමියා විසින් නිරූපණය කරන පරිදි, මගේ (දේශීය) මාස්ටර්ගේ පිටපත (ඉස්කුරුප්පු කර ඇතැයි මම සිතමි) නිවැරදි ස්ථානයට යලි සකසමි.

අවවාදයයි : තවම තල්ලු කර නොමැති සියලුම වෙනස්කම් ඔබට අහිමි වනු ඇත origin/master.


23
ඔව්, එය ඩම්මි විකල්පය මෙන් දැනේ, නමුත් සැබෑ අනතුරක් නොමැති නම් සහ ඔබ ඉක්මන් විසඳුමක් සඳහා මෙහි සිටී නම් - මෙය ක්‍රියාත්මක වේ (කෙසේ හෝ මට)
පැන්ඩාවුඩ්

7
මේ සඳහා පෙර ප්‍රධාන ශාඛාවේ සිටිය යුතුය ("git checkout master").
නිල් පාටින්

මෙය මට වරක් සිදු වූ විට මා හට නවතම සම්භවය ලැබුණු විට, පසුව වෙනත් අයෙකු බලහත්කාරයෙන් සම්භවය කරා තල්ලු කළ අතර එමඟින් පෙර සම්භවය නැවත ඇතිවීමට හේතු විය. ඒ නිසා මගේ ප්‍රාදේශීය ශාඛාව ආපසු හරවා යවා ඇති අතර, මම මුල සිටම නවතම දේ ඇද ගැනීමට උත්සාහ කළ විට එය පැවසුවේ මට ඒකාබද්ධ විය යුතු බවයි. මෙම අවස්ථාවෙහිදී --hard සම්භවය / (ශාඛාව) යළි පිහිටුවීම අර්ථවත් විය, මන්දයත් මේ වන විටත් ගැටලුව ආරම්භයේදීම විසඳා තිබූ බැවිනි.
ලන්ඩන් පොච්

100
මෙය බොහෝ විට පරිශීලකයින්ට අනතුරු ඇඟවිය යුතුය, මෙය තවමත් මූලාරම්භයට තල්ලු කර නොමැති සියලු වෙනස්කම් නැති කර දමනු ඇත
Pedro Loureiro

6
@PedroLoureiro පාපකාරී ඇත්තටම අහිමි සටහනක්, ඔබ ඒත් සමග අනාචාරයේ සොයා ගත හැකි git reflogහෝ ඒවා දකින gitk --all. එහෙත්, ඇත්ත වශයෙන්ම දෘ reset යළි පිහිටුවීම නැවත පිරවීමකට වඩා තවත් දෙයකි.
sebkraemer

54
git pull --rebase origin/master 

බොහෝ විට ඔබට උදව් කළ හැකි තනි විධානයකි.

සංස්කරණය කරන්න: සම්භවය / ස්වාමියා වෙතින් කොමිස් අදින අතර අලුතින් ඇද ගන්නා ලද ශාඛා ඉතිහාසය මත ඔබගේ වෙනස්කම් අදාළ වේ.


91
කරුණාකර විධානය කරන දේ සඳහන් කරන්න, එසේ
නොමැතිනම්

1
කිසිදු ගැටළුවක් නොමැති නම්, ඔබේ ස්වාමියා සමඟ සියලු වෙනස්වීම් සම්භවය / මාස්ටර් අඩංගු විය යුතු අතර ඔබේ සියලු දේශීය කොමිස් ඒ මත නැවත ධාවනය වේ. මට හොඳයි වගේ.
පිලිප් ක්ලැසෙන්

7
සැබෑ වෙනස්කම් ඇති විට සහ එය ඔබව නවතා දැමූ පසුබෑමකට ලක් වේ.
ffledgling

මෙය දෝෂයක් ලබා දෙයි: දෝෂය: වෙනස්කම් ඒකාබද්ධ කිරීමට අපොහොසත් විය. පැච් අසමත් විය 0024 ඉල්ලීම් සහ ප්‍රතිචාර ආකෘති
ඉගෝර්ගනාපොල්ස්කි

32

දුරස්ථ ශාඛාවක් ලුහුබඳින ශාඛාවක් නැවත ප්‍රතිස්ථාපනය කිරීමට මා උත්සාහ කළ විට මම මෙම තත්වයට පත්විය . මෙම අවස්ථාවෙහිදී, ඔබ නැවත ප්‍රතිස්ථාපනය කිරීමට උත්සාහ කරන්නේ නම්, ඔබේ ශාඛාව අපසරනය වී ඇති බව ඔබට පෙනී යනු ඇත.

ඔබ ස්වාමියාගෙන් අතු බෙදී ඇති my_remote_tracking_branch ශාඛාවේ සිටින බව කියමු

$ git status

# ශාඛාවේ my_remote_tracking_branch

කැපවීමට කිසිවක් නැත (වැඩ කරන නාමාවලිය පිරිසිදුයි)

දැන් ඔබ උත්සාහ කරන්නේ ස්වාමියාගෙන් මෙසේ ප්‍රතික්ෂේප කිරීමට ය:

git rebase master

දැන් නතර වී යම් කරදරයකින් බේරෙන්න! ඒ වෙනුවට, ඒකාබද්ධ කිරීම භාවිතා කරන්න:

git merge master

ඔව්, ඔබ ඔබේ ශාඛාවේ අමතර කොමිස් සමඟ අවසන් වනු ඇත. නමුත් ඔබ "අපසරනය නොවන" ශාඛා සඳහා සූදානම් නොවන්නේ නම්, මෙය නැවත ප්‍රතිස්ථාපනය කිරීමට වඩා සුමට වැඩ ප්‍රවාහයක් වනු ඇත. වඩාත් සවිස්තරාත්මක පැහැදිලි කිරීමක් සඳහා මෙම බ්ලොගය බලන්න .

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

දැන් ඔබ මේ කියවන්නේ නම්, ඔබ මේ වන විටත් නිසා වේ එය නිසා එවැනි rebase කිරීමට සිදුවීම් "අපසරනය", ඔබ භාවිතා කරමින් සම්භවය සිට සිදු (ක එක්සත් ජාතීන්ගේ-අපසරනය රාජ්ය එනම්) ආපසු පසුගිය කිරීමට ලබා ගත හැක:

git reset --hard සම්භවය / my_remote_tracking_branch


5
මා රීතියක් rebaseනම්, ඔබ ප්‍රතික්ෂේප කරන ශාඛාව ප්‍රකාශයට පත් කර නොමැති නම් (සහ වෙනත් පුද්ගලයින් විසින් භාවිතා කරනු ලැබේ). එසේ නොමැතිනම් භාවිතා කරන්න merge. ඔබ දැනටමත් ප්‍රකාශයට පත් කර ඇති (සහ භාවිතා කළ) ශාඛා නැවත ප්‍රතිස්ථාපනය කරන්නේ නම්, ඔබේ ශාඛාව භාවිතා කළ සෑම සංවර්ධකයෙකු හරහාම ඉතිහාසය නැවත ලිවීමේ කුමන්ත්‍රණයක් සම්බන්ධීකරණය කළ යුතුය.
මිකෝ රන්ටලයිනන්

1
අවාසනාවකට මෙන් මම මෙම පණිවිඩය කියවීමට පෙර කියවා නැත git rebase master...
විටාලි අයිසෙව්

'ෆූබාර්' ශාඛාවේ සිටියදී මම git rebase master කරන්නේ නම්, මම git push -f කරන තුරු තාක්‍ෂණිකව foobar සම්භවය / foobar වලින් ged ත් වේ, නේද?
relipse


1
git reset --hard origin/my_remote_tracking_branchසැබවින්ම ක්‍රියාත්මක වූයේ එයයි
sgohl

24

මගේ නඩුවේදී අපසරනය කළ පණිවිඩය ඇති කිරීමට මා කළේ එයයි : මම කළ git pushනමුත් පසුව කළ git commit --amendපණිවිඩයට යමක් එකතු කිරීමට කළෙමි . ඊට පස්සේ මම තවත් කැපවීමක් කළා.

ඉතින් මගේ නඩුවේ සරලවම අදහස් කළේ සම්භවය / ස්වාමියා යල්පැන ඇති බවය. වෙනත් කිසිවෙකු සම්භවය / ස්වාමියා ස්පර්ශ නොකරන බව මා දැන සිටි හෙයින්, නිවැරදි කිරීම සුළුපටු ය: git push -f ( -fබලය යනු කොතැනද )


8
+1 git push -fකලින් සිදු කර ඇති වෙනස්කම් නැවත ලිවීමට සහ ආරම්භයට තල්ලු කිරීමට. වෙන කිසිවෙකු ගබඩාවට අත නොතැබූ බව මට විශ්වාසයි.
zacharydl

4
ඉතා අවදානම් සහගත විධානයක්. කරුණාකර විධානයේ අවදානම් සාධකය පිළිබඳව කෙටි තොරතුරු ලියන්න.
J4cK

1
Rick ට්‍රික්ස්ටර්: මම දැනටමත් අවදානම විස්තර කර ඇත්තෙමි: "මා දන්නා පරිදි වෙනත් කිසිවෙකු සම්භවය / ස්වාමියා ස්පර්ශ නොකරන බව". මම විශ්වාස කරනවා, එවැනි අවස්ථාවක මෙය අවදානම් සහගත විධානයක් නොවේ.
ඩැරන් කුක්

1
යමෙකු ස්වාමියා මත
පැටලී

11

මගේ නඩුවේදී මම වෙනස්කම් සිදු කර ඇති origin/masterඅතර පසුව මා එසේ නොකළ යුතුව තිබූ බව වටහා ගතිමි :-( මෙය දේශීය වෙනස්කම් උප කුලක තිබීම නිසා මෙය සංකීර්ණ විය. එබැවින් මම "නරක" දේශීය වීමට පෙර අවසන් යහපත් කැපවීමට ගියෙමි. වෙනස්කම් (SourceTree භාවිතා කරමින්) පසුව මට "අපසරන පණිවිඩය" ලැබුණි.

දේශීයව මගේ අවුල නිරාකරණය කිරීමෙන් පසු (විස්තර මෙහි වැදගත් නොවේ) දුරස්ථ origin/masterශාඛාව "නියමිත වේලාවට ආපසු යාමට" මට අවශ්‍ය වූ අතර එමඟින් එය නැවත දේශීයයා සමඟ සමපාත වේ master. මගේ නඩුවේ විසඳුම වූයේ:

git push origin master -f

මෙම සටහන -f(බලය) ස්විචය. මෙය origin/masterවැරදීමකින් තල්ලු කර ඇති "නරක වෙනස්කම්" මකා දැමූ අතර දැන් දේශීය හා දුරස්ථ ශාඛා සමමුහුර්ත වී ඇත.

කරුණාකර මෙය විනාශකාරී මෙහෙයුමක් බව මතක තබා ගන්න, එබැවින් දුරස්ථ මාස්ටර් "ආපසු යාම" සුදුසු යැයි ඔබට 100% විශ්වාස නම් පමණක් එය සිදු කරන්න.


සැමවිටම ප්‍රයෝජනවත් නමුත් නිසැකවම ප්‍රශ්නයට පිළිතුරු සපයන්නේ නැත.
තිබෝල්ට් ඩී.

1
IbThibaultD. එය එසේ නොවුනත්, මම සොයන දේ මෙයයි.
නීල් චෞද්රි

මට ලැබෙනවා You are not allowed to force push code to a protected branch on this project.. මම මගේ දෙබලකට තල්ලු කිරීමට උත්සාහ කරමි.
බෑන්අනානාස්


5

මම පිළිතුරු ඕනෑ තරම් මෙහි ඇත්තේ දන්නවා, නමුත් මම හිතන්නේ git reset --soft HEAD~1එය ඔබ අවසන් වරට වෙනස් කරගන්න උත්සාහ කරමු නිසා, සමහර අවධානය යොමු විය යුතුව දේශීය (තල්ලු නොවේ) අපසරනය රාජ්ය විසඳීම අතර නසාගන්නවා. මම හිතන්නේ මෙය අදින්නට වඩා බහුකාර්ය විසඳුමක් rebase, මන්ද දේශීය කැපවීම සමාලෝචනය කර වෙනත් ශාඛාවකට ගෙන යා හැකි බැවිනි.

යතුර භාවිතා --softකරන්නේ රළු වෙනුවට ය --hard. බැඳීම් 1 ට වඩා තිබේ නම්, විචල්‍යතාවයක් ක්‍රියාත්මක විය HEAD~xයුතුය. ඉතින් මගේ තත්වය විසඳූ සියලු පියවර මෙන්න (මට දේශීය කැපවීම් 1 ක් සහ දුරස්ථව කොමිස් 8 ක් තිබුණි):

1) git reset --soft HEAD~1 දේශීය බැඳීම අහෝසි කිරීම. ඊළඟ පියවර සඳහා, මම SourceTree හි අතුරු මුහුණත භාවිතා කර ඇත, නමුත් පහත දැක්වෙන විධානයන් ද ක්‍රියාත්මක විය යුතු යැයි මම සිතමි:

2) git stash 1 සිට වෙනස්කම් වළක්වා ගැනීමට). දැන් සියලු වෙනස්කම් ආරක්ෂිත වන අතර තවදුරටත් අපසරනය නොමැත.

3) git pull දුරස්ථ වෙනස්කම් ලබා ගැනීමට.

4) git stash pop හෝ git stash applyඅවශ්‍ය නම්, අවසන් වරට සිදුකරන ලද වෙනස්කම් යෙදීම, ඉන්පසු නව බැඳීමක් අනුගමනය කිරීම. දේශීය බැඳීම්වල වෙනස්කම් කුණු කූඩයට දැමීමට අවශ්‍ය වූ විට 2) සමඟ මෙම පියවර අත්‍යවශ්‍ය නොවේ . එසේම, වෙනත් ශාඛාවකට බැඳීමට අවශ්‍ය වූ විට, අපේක්ෂිත ශාඛාවට මාරුවීමෙන් පසු මෙම පියවර සිදු කළ යුතුය.


ඇත්ත වශයෙන්ම, මේ දිනවල, pull --rebaseකෙසේ හෝ ස්වයංක්‍රීයව ගොඩගැසෙනු ඇත. stackoverflow.com/a/30209750/6309
VonC

4

වෙනස්කම් බැලීමට:

git difftool --dir-diff master origin/master

මෙය ශාඛා දෙක අතර වෙනස්කම් හෝ වෙනස්කම් පෙන්වනු ඇත. ඇරැක්සිස් වලදී (මගේ ප්‍රියතම) එය ෆෝල්ඩරයේ වෙනස ශෛලියකින් පෙන්වයි. වෙනස් කළ එක් එක් ගොනු පෙන්වයි. ගොනුවේ වෙනස්කම් පිළිබඳ විස්තර බැලීමට මට ගොනුවක් මත ක්ලික් කළ හැකිය.


1
Git-dir හි සිත්ගන්නාසුලු භාවිතය: +1
VonC

3

මගේ නඩුවේදී මෙය සිදු වූයේ මගේ ගැටුම් නිරාකරණය නොකිරීම හේතුවෙනි.

ගැටළුව ඇති වූයේ git pullවිධානය ක්‍රියාත්මක කිරීමෙනි . මූලාරම්භයේ වෙනස්වීම් මගේ දේශීය රෙපෝ සමඟ ගැටුම් වලට තුඩු දුන් අතර එය මම විසඳා ගත්තෙමි. කෙසේ වෙතත්, මම ඒවා සිදු කළේ නැත. මෙම අවස්ථාවේදී විසඳුම වන්නේ වෙනස්කම් සිදු කිරීමයි ( git commitවිසඳූ ගොනුව)

ගැටුම නිරාකරණය කිරීමෙන් පසු ඔබ සමහර ලිපිගොනු වෙනස් කර ඇත්නම්, git statusවිධානය මඟින් දේශීය වෙනස් කිරීම් අස්ථායී දේශීය වෙනස් කිරීම් ලෙස පෙන්වන අතර වේදිකාගත කළ දේශීය වෙනස් කිරීම් ලෙස විභේදනය ඒකාබද්ධ කරයි. පළමුව ඒකාබද්ධ කිරීමෙන් වෙනස්කම් සිදු කිරීමෙන් git commit, පසුව සුපුරුදු පරිදි අස්ථායි වෙනස්කම් එකතු කිරීමෙන් හා සිදු කිරීමෙන් මෙය නිසි ලෙස විසඳා ගත හැකිය (උදා git commit -a.)


0

අවසාන කැපවීමේ පණිවිඩය සංස්කරණය කිරීමට උත්සාහ කරන විටත්, දැනටමත් තල්ලු කර ඇති බැඳීම්වලත් භාවිතා කරමින් මට එකම පණිවිඩයක් තිබුණි: git commit --amend -m "New message" භාවිතා කරමින් වෙනස්කම් තල්ලු කරන විට git push --force-with-lease repo_name branch_name කිසිදු ගැටළුවක් නොවීය.


0

මම A ශාඛාව පදනම් කරගෙන ශාඛාවක් නිර්මාණය කරන විට මෙම ගැටළුව විසඳා ඇත

git checkout -b a

ඉන්පසු මම B ශාඛාවේ ආරම්භක ශාඛාව ආරම්භ කළෙමි

git branch -u origin/B

එවිට මට ඉහත දෝෂ පණිවිඩය ලැබුණි.

මට මෙම ගැටළුව විසඳීමට එක් ක්‍රමයක් වූයේ,

  • ශාඛාව මකන්න a
  • විසින් නව ශාඛාවක් සාදන්න
git checkout -b b origin/B
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.