Git හි ගොනුවක කොටසක් පමණක් කරන්න


2774

මම Git හි ගොනුවකට වෙනස්කම් සිදු කරන විට, සමහර වෙනස්කම් පමණක් සිදු කරන්නේ කෙසේද?

උදාහරණයක් ලෙස, ගොනුවක වෙනස් කර ඇති පේළි 30 න් පේළි 15 ක් පමණක් මා කරන්නේ කෙසේද?


3
ආශ්‍රිත stackoverflow.com/q/34609924/52074 : ඔබට කුඩා හක්කකට බෙදීමට අවශ්‍ය නම්.
ට්‍රෙවර් බොයිඩ් ස්මිත්

සාරාංශය: හැකියාව අනුව: git gui= git add -e> git add -i -p; පහසුව අනුව: git gui> git add -i -p> git add -e. එබැවින්: git guiඔබට X වෙත ප්‍රවේශය ඇති git add -i -pවිට git add -e
තෝරන්න

Answers:


3704

ඔබට භාවිතා කළ හැකිය git add --patch <filename>(හෝ -pකෙටියෙන්), සහ git ඔබේ ගොනුව සංවේදී "හන්ක්ස්" (ගොනුවේ කොටස්) යැයි සිතන දෙයට බිඳ දැමීමට පටන් ගනී. එය පසුව මෙම ප්‍රශ්නය ඔබෙන් විමසනු ඇත:

Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?

එක් එක් විකල්පය පිළිබඳ විස්තරයක් මෙන්න:

  • y ඊළඟ කැපවීම සඳහා මෙම හක්ක වේදිකා ගත කරන්න
  • n ඊළඟ කැපවීම සඳහා මෙම හක්ක වේදිකා ගත නොකරන්න
  • qඉවත්; මෙම හක්ක හෝ ඉතිරි හන්ක් කිසිවක් වේදිකා ගත නොකරන්න
  • a ගොනුවේ මෙම හන්ක් සහ පසුව ඇති සියලුම හන්ක් වේදිකා ගත කරන්න
  • d මෙම හන්ක් හෝ පසුකාලීන හන්ක්ස් කිසිවක් ගොනුවේ ස්ථානගත නොකරන්න
  • g යන්නට හක්කක් තෝරන්න
  • / දී ඇති රීජෙක්ස් වලට ගැලපෙන හක්කක් සොයන්න
  • j මෙම හක්ක තෝරා නොගෙන තබන්න, ඊළඟ තීරණය නොකළ හක්ක බලන්න
  • J මෙම හක්ක තීරණය නොකර තබන්න, ඊළඟ හක්ක බලන්න
  • k මෙම හක්ක තීරණය නොකළ ලෙස තබන්න, කලින් තීරණය නොකළ හක්ක බලන්න
  • K මෙම හක්ක තීරණය නොකර තබන්න, පෙර හන්ක් බලන්න
  • s වත්මන් හක්ක කුඩා හක්කකට බෙදන්න
  • e වත්මන් හක්ක අතින් සංස්කරණය කරන්න
  • ? හන්ක් උදව් මුද්‍රණය කරන්න

ගොනුව තවමත් ගබඩාවේ නොමැති නම්, ඔබට පළමුව කළ හැකිය git add -N <filename>. පසුව ඔබට ඉදිරියට යා හැකිය git add -p <filename>.

පසුව, ඔබට භාවිතා කළ හැකිය:

  • git diff --staged ඔබ නිවැරදි වෙනස්කම් සිදු කර ඇත්දැයි පරීක්ෂා කිරීමට
  • git reset -p වැරදීමකින් එකතු කරන ලද හන්ක්ස් වේදිකාවට
  • git commit -v ඔබ බැඳීම් පණිවිඩය සංස්කරණය කරන අතරතුර ඔබගේ කැපවීම බැලීමට.

මෙය git format-patchවිධානයට වඩා බෙහෙවින් වෙනස් බව සලකන්න , එහි අරමුණ වන්නේ .patchලිපිගොනු ගොනුවකට විග්‍රහ කිරීමයි .

අනාගතය සඳහා යොමුව: Git මෙවලම් - අන්තර් ක්‍රියාකාරී වේදිකා


86
ප්‍රයෝජනවත් අන්තර්ක්‍රියාකාරී මාදිලිය ආරම්භ කරන විධානය -p/--patchතුළ ඇති පැච් ක්‍රියාව සඳහා කෙටිමඟක් බව සටහන් කිරීම ප්‍රයෝජනවත් විය හැකිය . -i/--interactive
tutuDajuju

5
> එම ගොනුව දැනටමත් වේදිකා ගත කර ඇත්නම් කුමක් සිදුවේද? එය පෙන්වන්නේ අස්ථිර වෙනස්කම් පමණි. පරිදිමය git diffකරන්නේ.
ඉයුජන් කොන්කොව්

3
වත්මන් හක්ක අතින් සංස්කරණය කරන්නේ කෙසේද? මම ඊ ටයිප් කිරීමෙන් පසු කුමක් කළ යුතුදැයි මම නොදනිමි.
හුන්සු

23
දැවෙන පසු e, ඔබ වෙනුවට ශ්රමිකව Hunk සංස්කරණය කළ හැකි +හෝ -විසින්#
veksen

1
මෙය විශිෂ්ටයි නමුත් දැන් මම එය තල්ලු කරන්නේ කෙසේද? මම git pushඑය කරන්නේ නම් දැනටමත් යාවත්කාලීන බව පවසයි. මම git diffදැක්කොත් මම කිව්වේ හන්ක්ස් n. මට git diff --stagedපෙනේ නම් මට තල්ලු කිරීමට අවශ්‍ය කැපවීම. මට කැපවීම තල්ලු කළ හැකි යැයි උපකල්පනය කරමින්, මා කී හන්ක මකා දැමිය හැක්කේ noකෙසේද?
chovy

251

ඔබට භාවිතා කළ හැකි git add --interactiveහෝ , පසුව ( නැති ); git-add manpage හි අන්තර්ක්‍රියාකාරී මාදිලිය බලන්න , නැතහොත් උපදෙස් අනුගමනය කරන්න.git add -p <file>git commit git commit -a

නූතන Git හි ද ඇත git commit --interactive(සහ git commit --patch, එය අන්තර්ක්‍රියාකාරී කැපවීමේ විකල්පය පැච් කිරීමට කෙටිමං වේ).

ඔබ එය GUI වෙතින් කිරීමට කැමති නම්, ඔබට git-gui භාවිතා කළ හැකිය . ඔබට කැපවීමට ඇතුළත් කිරීමට අවශ්‍ය කැබලි සලකුණු කළ හැකිය. භාවිතා කිරීමට වඩා මට පෞද්ගලිකව එය පහසු ය git add -i. QGit හෝ GitX වැනි අනෙකුත් git GUI වලටද මෙම ක්‍රියාකාරීත්වය තිබිය හැකිය.


1
සිත්ගන්නාසුලු කරුණක් නම්, windows.github.com හි අර්ධ ලිපිගොනු කොමිස් සඳහා සහය ඇති නමුත් එය මෑතකදී අතහැර දැමූ බවක් පෙනේ ..
ජූරි

1
Ur ජූරි මම හිතන්නේ අර්ධ ලිපිගොනු සඳහා වන සහාය නැවත ලැබී ඇති බවයි.
Ela782

@ ජූරි ඔබව සාදරයෙන් පිළිගනිමු. එය මීට පෙර එහි ඇති බව මම කිසි විටෙකත් දුටුවේ නැත - මම පසුගිය සතියේ එය දැක "ඔහ්, මොනතරම් පුදුමාකාර නව අංගයක්" යැයි සිතුවෙමි! :-)
Ela782

1
වර්තමානයේ windows.github.com නැවත නම් කරන ලද GitHub ඩෙස්ක්ටොප් වෙත හරවා යවන අතර එය Git GUI ට වඩා හොඳ වන අතර අර්ධ කැපවීම් සඳහා සහය දක්වයි ... නමුත් අත්සන් කිරීමට සහාය නොදක්වයි. සැනසුම් සුසුමක්.

147

git gui මෙම ක්‍රියාකාරීත්වය අවකලනය යටතේ සපයයි. ඔබ උනන්දුවක් දක්වන රේඛාව (ය) මත දකුණු ක්ලික් කරන්න, එවිට ඔබට "කැපවීමට මෙම රේඛාව වේදිකා කරන්න" මෙනු අයිතමයක් දැකිය යුතුය.


13
සංකීර්ණ පැච් සඳහා මෙය සාමාන්‍යයෙන් මට වේගවත්ම ප්‍රවේශයයි.
hochl

7
මෙය ඉතා කාර්යක්ෂම හා බුද්ධිමත් ක්‍රමයක් වන අතර වේදිකාගත කරන ස්ථානයට සියුම් ලෙස වෙනස්කම් එකතු කළ හැකිය. පේළි කිහිපයක් තෝරා ගත හැකි අතර එම තේරීම තුළ ඇති සියලුම වෙනස්කම් එකතු වේ.
jox

මෙය එසේ නොවන බව සලකන්න gitk, නමුත් එය වින්ඩෝස් සඳහා Git Bash සමඟ ඇතුළත් කර ඇත; ඔබට ඒ සඳහා ආරම්භක මෙනු ප්‍රවේශයක් තිබිය යුතුය, නැතහොත් එය විධානයෙන් ආරම්භ කළ හැකිය git gui. ද තිබෙන stage this hunkබොහෝ විට වඩා ප්රයෝජනවත් වන stage this line. මෙම පිළිතුර මීට වසර 10 කට පෙර නිර්මාණය කළ බැවින් අළුත් විය හැකිය.
ක්‍රිස්

82

git add -e myfileඑය පහසුම ක්‍රමය බව මම විශ්වාස කරමි (අවම වශයෙන් මගේ මනාපය) එය හුදෙක් පෙළ සංස්කාරකයක් විවෘත කර ඔබට වේදිකා ගත කිරීමට අවශ්‍ය රේඛාව සහ ඔබ නොකළ යුතු රේඛාව තෝරා ගැනීමට ඉඩ සලසයි. විධාන සංස්කරණය කිරීම සම්බන්ධයෙන්:

එකතු කළ අන්තර්ගතය:

එකතු කළ අන්තර්ගතය "+" වලින් ආරම්භ වන රේඛා මගින් නිරූපණය කෙරේ. එකතු කිරීමේ රේඛා මකා දැමීමෙන් ඔබට ඒවා වළක්වා ගත හැකිය.

ඉවත් කළ අන්තර්ගතය:

ඉවත් කළ අන්තර්ගතය "-" වලින් ආරම්භ වන රේඛා මගින් නිරූපණය කෙරේ. "-" "" (අවකාශය) බවට පරිවර්තනය කිරීමෙන් ඔබට ඒවා ඉවත් කිරීම වළක්වා ගත හැකිය.

වෙනස් කළ අන්තර්ගතය:

නවීකරණය කරන ලද අන්තර්ගතය "-" රේඛා (පැරණි අන්තර්ගතය ඉවත් කිරීම) සහ "+" පේළි (ආදේශන අන්තර්ගතය එකතු කිරීම) මගින් නිරූපණය කෙරේ. "-" පේළි "" බවට පරිවර්තනය කිරීමෙන් සහ "+" රේඛා ඉවත් කිරීමෙන් ඔබට නවීකරණය කිරීම වළක්වා ගත හැකිය. යුගලයෙන් අඩක් පමණක් වෙනස් කිරීම දර්ශකයේ ව්‍යාකූල වෙනස්කම් හඳුන්වා දීමට ඉඩ ඇති බව පරෙස්සම් වන්න.

පිළිබඳ සෑම විස්තරයක්ම git addලබා ගත හැකියgit --help add


7
එම රේඛා සැබවින්ම තෝරා ගන්නේ කෙසේද යන්න පිළිබඳ පැහැදිලි පැහැදිලි කිරීමක් කොතැනක හෝ තිබේ නම් මෙය වඩාත් ප්‍රයෝජනවත් වනු ඇත (එනම් ඇතුළත් කිරීමට නියම විධානයන්). මට ලියකියවිලි වලින් එකක් සොයාගත නොහැකි විය. ඔබට යොමු කිරීමක් එකතු කළ හැකිද?
ඇලෙක්ස්

4
කෙටිකාලීන විකල්ප වලට අකමැති අයට, -eවේ --edit.
කොලූන්යා

2
Lex ඇලෙක්ස් ෆ්‍රීඩම් බනානා විසින් එකතු කරන ලද උපුටා දැක්වීම් පැච් සංස්කරණය කිරීමgit --help add
රැන්ඩල්

8
sඅන්තර්ක්‍රියාකාරී පැච් ප්‍රකාරයේදී ඔබට හන්ක්ස් කුඩා කිරීමට නොහැකි වූ විට රේඛීය වශයෙන් එකතු කිරීම / ඉවත් කිරීම පිළිබඳ ගැටළුව විසඳන එකම පිළිතුර මෙයයි (git පමණක් අවශ්‍ය වේ) .
cdosborn

3
මෙම විධානය ( git add -e) * තැටියේ ගොනු අන්තර්ගතය වෙනස් නොකරන බව තේරුම් ගැනීම ප්‍රයෝජනවත් විය හැකිය . එය වෙනස්වීම් වලින් කොටසක් වේදිකාගත නොවූ සිට වේදිකාවට (දර්ශකය) ගෙන යයි.
පෙන්ගේ ජෙන්

44

ඔබ vim භාවිතා කරන්නේ නම්, ඔබට පලායාම නම් විශිෂ්ට ප්ලගිනය උත්සාහ කිරීමට අවශ්‍ය විය හැකිය .

වැඩ කරන පිටපත සහ දර්ශකය සමඟ ගොනුවක වෙනස ඔබට දැක ගත හැකිය :Gdiff, ඉන්පසු සම්භාව්‍ය vim diff විධානයන් භාවිතා කරමින් දර්ශකයට රේඛා හෝ හන්ක් එක් කරන්න dp. දර්ශකයේ වෙනස් කිරීම් සුරකින්න සහ ඒ සමඟ බැඳී :Gcommitසිටින්න, ඔබ ඉවරයි.

ඉතා හොඳ හඳුන්වාදීමේ screencasts මෙතන (ඇය දත්තා බලන්න. 2 කොටස ).


මෙම සබැඳි වලට බොහොම ස්තූතියි. මට අවශ්‍ය දේ හරියටම සමානයි. විශේෂයෙන් :diffget/:diffputදෘශ්‍ය ප්‍රකාරයේදී, මට නැවත සැකසීමට / කැපවීමට අවශ්‍ය විශේෂිත රේඛා තෝරා ගත හැකිය. එබැවින්, නැවත වග බලා ගන්න: vim නියමයි.
goodniceweb

30

ඇට්ලේෂියන් වෙතින් SourceTree භාවිතා කිරීමට මම තරයේ නිර්දේශ කරමි . (එය නොමිලේ.) එය සුළු දෙයක් බවට පත් කරයි. ඔබට එක් එක් කේත හෝ තනි කේත රේඛා ඉක්මනින් හා පහසුවෙන් වේදිකා ගත කළ හැකිය.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


1
SourceTree මෙම අරමුණු සඳහා හොඳ මෙවලමක් බව මම එකඟ වෙමි, මන්ද එය විධාන රේඛාව හරහා කළ හැකි දේට වඩා සියුම් පාලනයක් ඔබට ලබා දෙන බැවිනි.

19
upcupcake SourceTree බොහෝ විට එම විධාන රේඛා git executables භාවිතා කරන බව දැකීමෙන් මම ප්‍රතිවිරුද්ධව තර්ක කරමි, සහජයෙන්ම සෑම විටම “විධාන රේඛාව” හරහා එකම (හෝ වැඩි) සියුම් ක්‍රියාවන් කළ හැකිය.
tutuDajuju

2
සියුම් තර්කය කුමක් වුවත්, මම SourceTree වේදිකා ගත කිරීම හා තනි රේඛා කිරීම ඉතා පහසු යැයි නිර්දේශ කරමි : i.imgur.com/85bNu4C.png
අඟහරු රොබට්සන්

1
uttutuDajuju මේ අවස්ථාවේ දී, එය සත්‍ය බව මට විශ්වාස නැත. වේදිකා රේඛාවට රේඛා අනුව කුමන කොටස් තෝරා ගැනීමේ හැකියාව SourceTree සතුව ඇත . ඔබට සම්පූර්ණ හක්කක් දැමිය යුතු නැත; ඔබට පේළි 2 ක් හක්කක් මැදට ගෙන යා හැකිය. එය ඉටු කරන්නේ කෙසේදැයි මා දන්නේ නැත. . කිසිසේත් නැත. අවම වශයෙන් සරල ආකාරයකින් නොවේ.)
jpmc26

1
Un ඔබට 50 වන පේළිය මත ක්ලික් කර මාරුව + ක්ලික් කරන්න 100 පේළිය පසුව වේදිකාව. ඔබට පහසුවෙන් සෝර්සෙට්‍රි හි 50-100 පේළිය වේදිකා ගත කළ හැකිය :)
ryan123

26

නව ගොනුවක්git add --patch සඳහා භාවිතා කිරීම සඳහා ඔබ මුලින්ම ගොනුව දර්ශකයට එක් කළ යුතු බව සඳහන් කිරීම වටී :git add --intent-to-add

git add -N file
git add -p file

23

මට බොහෝ වෙනස්කම් ඇති විට, සහ වෙනස්කම් වලින් කොමිස් කිහිපයක් නිර්මාණය කිරීමෙන් අවසන් වන විට, දේවල් ආරම්භ කිරීමට පෙර මගේ ආරම්භක ස්ථානය තාවකාලිකව සුරැකීමට මට අවශ්‍යය.

මෙවැනි:

$ git stash -u
Saved working directory and index state WIP on master: 47a1413 ...
$ git checkout -p stash
... step through patch hunks
$ git commit -m "message for 1st commit"
$ git checkout -p stash
... step through patch hunks
$ git commit -m "message for 2nd commit"
$ git stash pop

ඇයිමාර්ගේ පිළිතුර මම සාමාන්‍යයෙන් කරන්නේ, සමහර විට වෙනස්කම් රාශියක් ඇති අතර, මට වේදිකා ගත කරන විට වැරැද්දක් කළ හැකි යැයි මට පැවසිය හැකිය, මට දෙවන වරටත් නැවත වැටිය හැකි කැපවූ රාජ්‍යයක් අවශ්‍යය.


12

ඔබ ඉමාක්ස් භාවිතා කරන්නේ නම්, මැජිට් දෙස බලන්න , එය ඉමාක් සඳහා git අතුරු මුහුණතක් සපයයි. එය වේදිකා ගත කිරීම සඳහා (ලිපිගොනු කොටස්) හොඳින් සහාය වේ.


මම බොහෝ විට සංස්කාරකයක් විවෘත කිරීමට අවශ්‍ය git විධානයක් හරහා ගමන් කරමි, මම එය Mx shell කවුළුවකින් ධාවනය කරන විට. මැජික් එම උමතුවට බාධා කර ඒ සඳහා නව බෆරයක් පමණක් විවෘත කරයිද? (කරුණාකර පසුබිම්-ඉමාක්ස්-ඩීමන් ඉඟි නැත; කෙසේ වෙතත් ස්තූතියි නමුත් ජීවිතය ඉතා කෙටි ය).
user2066657

නැත, මට කිව හැකි තාක් දුරට මෙය බාධාවක් නොවේ. (1) මම කිසි විටෙකත් ඉමාක්ස් හි ෂෙල් කවුළුව භාවිතා නොකරන අතර (2) මම සාමාන්‍යයෙන් ඉමාස්ක්ලියන්ට් භාවිතා කරමි. Emacsclient නම්, බව රැකෙයි වේ අවම වශයෙන් විවෘත කරමින් සහ "COMMIT_EDITMSG" බෆරය මගේ දැනට පවතින හැරදමයි කවුළුව විවෘත කරන ලදී. සිට emacs සමග අතිරේක කවුළුව වළක්වා බව, ඔබ සඳහා වූ විකල්පයක්
මාර්ක් වැන් ලෙන්ට්

11

V2018.1 සිට ඉන්ටෙලිජ් අයිඩීඊඒ (සහ මාලාවේ අනෙකුත් සියලුම නිෂ්පාදන) අර්ධ කැපවීම් සඳහා සහය දක්වයි.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


ඉතා පහසු ක්‍රමයක්. මම බිය වන්නේ ඉන්ටෙලිජ් අයිඩීඒ විසින් අන්තිම කොන්සෝලය නැරඹීමට උත්සාහ කරන ගිටෝව බේරා ගැනීමට උත්සාහ කරන බවයි.
මිනිත්තු

10

Git දිගු භාවිතා කරන අය සඳහා :

බැඳීම් කවුළුව තුළ, ඔබට අර්ධ වශයෙන් කැපවීමට අවශ්‍ය ගොනුව තෝරන්න, ඉන්පසු නිවැරදි කවුළුව තුළ ඔබට කිරීමට අවශ්‍ය පෙළ තෝරන්න, ඉන්පසු තේරීම මත දකුණු-ක්ලික් කර සන්දර්භය මෙනුවෙන් 'අදියර තෝරාගත් රේඛා' තෝරන්න.


2
'අදියර තෝරාගත් රේඛා' සඳහා Git දිගු වල යතුරුපුවරු කෙටිමඟ s- කැපවීමක් සඳහා ලිපිගොනු කොටස් ඉක්මනින් ස්ථානගත කිරීම සඳහා ඉතා ප්‍රයෝජනවත් වේ.
ඇල්කෙමිස්ට්මාට්

මම මෙය උත්සාහ කළ නමුත් ඔබට එදිරිව කේත භාවිතා කළද මකාදැමූ රේඛා තෝරාගත නොහැක
iamafasha

8

Jdsumsion ගේ පිළිතුරට සමානව ඔබට ඔබගේ වර්තමාන වැඩ කටයුතු ද අඩාල කළ හැකි නමුත් තෝරාගත් වෙනස්කම් තොගයෙන් ඇද ගැනීමට මෙල්ඩ් වැනි ඩිෆ්ටූල් භාවිතා කරන්න. ඒ ආකාරයෙන් ඔබට හන්ක්ස් අතින් ඉතා පහසුවෙන් සංස්කරණය කළ හැකිය, එය ඇති විට එය සුළු වේදනාවක් වේ git add -p:

$ git stash -u
$ git difftool -d -t meld stash
$ git commit -a -m "some message"
$ git stash pop

ඔබේ කේතය තවමත් ක්‍රියාත්මක වන්නේ නම්, එය සිදු කිරීමට පෙර, ස්ටෑෂ් ක්‍රමය භාවිතා කිරීමෙන් ඔබට පරීක්ෂා කිරීමට අවස්ථාව ලැබේ.


මෙය හොඳින් ක්‍රියාත්මක වේ, නමුත් ඔබ භාවිතා කරන්නේ නම්, ඔබට git commit --amendපසුව තොගය පොප් කළ නොහැකි බව පෙනේ, නැතහොත් මෙය කිරීමට ක්‍රමයක් තිබේද?
මාක්

7

පෙර පිළිතුරක් එකතු කිරීම, ඔබ විධාන රේඛාව භාවිතා කිරීමට කැමති නම්, ඇතුලත් කිරීම git add -e myfileමඟින් ඔබට කැපවීමට අවශ්‍ය දේ පේළියකින් තෝරා ගැනීමට අවස්ථාව ලබා දෙයි , මන්ද මෙම විධානය මඟින් වෙනස්කම් සහිත සංස්කාරකයක් විවෘත කරනු ඇත.

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ඇරඹුම් රේඛා එකතු කිරීම් බව ඔබ දන්නා පරිදි, ආරම්භ +වන රේඛා -මකාදැමීම් වේ. ඒ නිසා:

  • එකතු කිරීමක් සිදු නොකිරීමට එම පේළිය මකන්න.
  • මකාදැමීමක් සිදු නොකිරීමට -අවකාශය වෙනුවට ආදේශ කරන්න .

මේ මොකක්ද git add -hගොනු මේ ආකාරයට එකතු (ගොනු ඉක්මනට එන්න) ගැන මෙසේ පවසයි

එකතු කළ අන්තර්ගතය "+" වලින් ආරම්භ වන පේළි මගින් එකතු කරන ලද අන්තර්ගතය නිරූපණය කෙරේ. එකතු කිරීමේ රේඛා මකා දැමීමෙන් ඔබට ඒවා වළක්වා ගත හැකිය.

ඉවත් කළ අන්තර්ගතය: ඉවත් කළ අන්තර්ගතය "-" වලින් ආරම්භ වන රේඛා මගින් නිරූපණය කෙරේ. "-" "" (අවකාශය) බවට පරිවර්තනය කිරීමෙන් ඔබට ඒවා ඉවත් කිරීම වළක්වා ගත හැකිය.

වෙනස් කළ අන්තර්ගතය: නවීකරණය කරන ලද අන්තර්ගතය "-" රේඛා (පැරණි අන්තර්ගතය ඉවත් කිරීම) සහ "+" රේඛා (ආදේශන අන්තර්ගතය එකතු කිරීම) මගින් නිරූපණය කෙරේ. "-" පේළි "" බවට පරිවර්තනය කිරීමෙන් සහ "+" රේඛා ඉවත් කිරීමෙන් ඔබට නවීකරණය කිරීම වළක්වා ගත හැකිය. යුගලයෙන් අඩක් පමණක් වෙනස් කිරීම දර්ශකයේ ව්‍යාකූල වෙනස්කම් හඳුන්වා දීමට ඉඩ ඇති බව පරෙස්සම් වන්න.

අවවාදයයි: ගොනුවේ අන්තර්ගතය වෙනස් නොකරන්න, මෙය කිරීමට හොඳ ස්ථානයක් නොවේ. මකාදැමූ හෝ එකතු කළ රේඛාවල ක්‍රියාකරුවන් වෙනස් කරන්න.


පෙර පිළිතුර කුමක්ද? ඔවුන් සතුව ඇති ලකුණු ගණන මත පදනම්ව පිළිතුරු ගබඩා වේ. එබැවින් ඔබගේ පිළිතුර වෙනත් පිළිතුරු හා සසඳන විට ඔබ එය ලියූ කාලයට වඩා වෙනස් ස්ථානයක තිබේ.
KulaGGin

යොමු කරන ලද පිළිතුර FtheFreedomBanana
K. සංකේතය

6

vim-gitgutter ප්ලගිනයට vim editor භාවිතයෙන් තොරව හන්ක් වේදිකා ගත කළ හැකිය

:GitGutterStageHunk

මේ හැරුණු විට, සමහර නවීන IDE වල මෙන් වෙනස් සං sign ා තීරුවක් වැනි වෙනත් සිසිල් විශේෂාංග එය සපයයි

Hunk කොටසක් පමණක් වේදිකා ගත යුතු නම්, විම්-පලා

:Gdiff

දෘශ්‍ය පරාසය තේරීමට :'<,'>diffputහෝ :'<,'>diffgetතනි පේළි වෙනස් කිරීම් වේදිකා ගත කිරීමට / ආපසු හැරවීමට ඉඩ දෙයි .



4

ඉබ්බා ගිට් සමඟ:

ගොනුව මත දකුණු ක්ලික් කර භාවිතා කරන්න Context Menu → Restore after commit. මෙය ගොනුවේ පිටපතක් නිර්මාණය කරයි. එවිට ඔබට ගොනුව සංස්කරණය කළ හැකිය, උදා: TortoiseGitMerge හි සහ ඔබට කිරීමට අවශ්‍ය නොවන සියලු වෙනස්කම් අහෝසි කරන්න. එම වෙනස්කම් සුරැකීමෙන් පසු ඔබට ගොනුව කළ හැකිය.


4

මෙම ප්‍රශ්නය ඇසී වසර 10 ක් ගතවී ඇත. මෙම පිළිතුර යමෙකුට ප්‍රයෝජනවත් වනු ඇතැයි මම බලාපොරොත්තු වෙමි. පිළිතුර දී ඇති පරිදි මෙහි , චිත්රක විකල්පයක් නොවේ එහිදී, ඇන්ඩෲ Shadura ගේ crecord දීර්ඝ අපි ගත කිරීමට මාර්ග තෝරා ගැනීම කළ හැකි ncurses කවුළුව ගෙන උපකාරී වේ.

දිගුව පහත පරිදි සකසන්න:

git clone https://github.com/andrewshadura/git-crecord
cd git-crecord
./setup.py install
ln -s $PWD/git-crecord ~/.local/bin/git-crecord

cd ඔබේ git repo වෙත ගොස් පහත පරිදි එය ඉල්ලා සිටින්න:

git crecord

මෙය පහත දැක්වෙන පරිදි භාවිතා කළ හැකි ncurses අතුරුමුහුණත ගෙන එනු ඇත. Ncurses කවුළුවෙහි පහත යතුරු එබීමෙන් ඇතැම් ක්‍රියා සිදු වේ:

f       hunk toggle fold (arrow keys can also be used)
space   toggle hunk selection
a       toggle commit or amend
c       confirm and open commit window

නියැදි භාවිතයක් පෙන්වන තිර විකාශනයඋදාහරණයක්


3

සඳහා Atom පරිශීලකයන්, ඇසුරුම github ශෛලිය තුල ඇති, අන්තර් වේදිකාගත වේ git gui. කෙටිමං සඳහා පැකේජයේ ප්‍රලේඛනය බලන්න .

පරමාණු භාවිතා කිරීම අඳුරු පසුබිමක් ඇති තේමාවක් සමඟ වැඩ කිරීමට ඉඩ දෙයි (පෙරනිමියෙන් git guiසුදු පසුබිමක් ඇත).



2

git-meld-index - වෙබ් අඩවියෙන් උපුටා දැක්වීම:

git-meld-index ක්‍රියාත්මක වන්නේ මෙල්ඩ් - හෝ වෙනත් ඕනෑම git difftool (kdiff3, විසරණය, ආදිය) - ඔබට git දර්ශකයේ අන්තර්ක්‍රියාකාරී ලෙස වෙනස්කම් කිරීමට ඉඩ ලබා දීම සඳහා (git staging area ලෙසද හැඳින්වේ).

මෙය git add -p හි ක්‍රියාකාරීත්වයට සමාන වන අතර git add --interactive. සමහර අවස්ථාවලදී git add -p වලට වඩා උණු කිරීම පහසු / ඉක්මන් වේ. එයට හේතුව මෙල්ඩ් ඔබට ඉඩ සලසයි, උදාහරණයක් ලෙස:

  • තවත් සන්දර්භය බලන්න
  • අභ්‍යන්තර රේඛා වෙනස බලන්න
  • අතින් සංස්කරණය කර 'සජීවී' වෙනස යාවත්කාලීන කිරීම් බලන්න (සෑම යතුරුපුවරුවකටම පසුව යාවත්කාලීන වේ)
  • ඔබට මඟ හැරීමට අවශ්‍ය සෑම වෙනස්කමකටම 'n' නොකියමින් වෙනසකට යන්න

භාවිතය

Git ගබඩාවක, ධාවනය කරන්න:

git meld-index

මෙල්ඩ් (හෝ ඔබේ වින්‍යාසගත කරන ලද git difftool) සමඟ උත්පතන ඔබට පෙනෙනු ඇත:

වම් : තාවකාලික ඩිරෙක්ටරිය ඔබගේ කම්කරු ගස් වලින් පිටපත් ගොනු contining

අයිතිය : දර්ශකයේ අන්තර්ගතය සහිත තාවකාලික නාමාවලිය. මෙයට තවමත් දර්ශකයේ නොමැති නමුත් වැඩකරන පිටපතෙහි වෙනස් කර ඇති හෝ හඳුනා නොගත් ලිපිගොනු ඇතුළත් වේ - මේ අවස්ථාවේ දී ඔබ HEAD වෙතින් ගොනු අන්තර්ගතයන් දකිනු ඇත.

සතුටු වන තුරු දර්ශකය (දකුණු පස) සංස්කරණය කරන්න. අවශ්‍ය විට ඉතිරි කිරීමට මතක තබා ගන්න.

ඔබ අවසන් වූ විට, වසා දැමීම වසා දමන්න, සහ git-meld-index මඟින් ඔබ විසින් සංස්කරණය කරන ලද මෙල්ඩ් හි දකුණු පැත්තේ තාවකාලික නාමාවලියෙහි අන්තර්ගතයට ගැලපෙන පරිදි දර්ශකය යාවත්කාලීන කරනු ඇත.


2

එය මත නම්, Windowsවේදිකාව, මගේ මතය git guiඉතා හොඳ මෙවලමක් වන stage/ commitසිට පේලි කිහිපයක් unstagedගොනු

1. හන්ක් නැණවත්:

  • unstagged Changesකොටසේ සිට ගොනුව තෝරන්න
  • වේදිකා ගත කළ යුතු කේත කැබැල්ල දකුණු ක්ලික් කරන්න
  • තෝරන්න Stage Hunk for commit

2. රේඛාව අනුව:

  • unstagged Changesකොටසේ සිට ගොනුව තෝරන්න
  • වේදිකා ගත කළ යුතු රේඛාව / රේඛා තෝරන්න
  • දකුණු ක්ලික් කර තෝරන්න Stage Lines for commit

3. පේළි කිහිපයක් හැර සම්පූර්ණ ගොනුව වේදිකා ගත කිරීමට ඔබට අවශ්‍ය නම්:

  • unstagged Changesකොටසේ සිට ගොනුව තෝරන්න
  • ඔබන්න Ctrl+T (Stage file to commit)
  • තෝරාගත් ගොනුව දැන් Staged Changesකොටසට ගමන් කරයි
  • වේදිකා ගත කරන රේඛාව / රේඛා තෝරන්න
  • දකුණු ක්ලික් කර තෝරන්න UnStage Lines for commit

1

ලෙස එක් පිළිතුරක් ඉහත වගුව, ඔබ භාවිතා කළ හැකිය git add --patch filename.txt

හෝ කෙටි ස්වරූපය git add -p filename.txt

... නමුත් දැනටමත් ඔබේ ගබඩාවේ ඇති ලිපිගොනු සඳහා, බැඳීම් විධානය මත --patch ධජය කෙලින්ම භාවිතා කිරීම වඩා හොඳය (ඔබ මෑතකදී ප්‍රමාණවත් තරම් git අනුවාදයක් භාවිතා කරන්නේ නම්): git commit --patch filename.txt

... හෝ, නැවතත්, කෙටි ස්වරූපය git commit -p filename.txt

... ඉන්පසු කැපවූ යතුරු ඇතුළත් කිරීම සඳහා (y / n යනාදිය), කැපවීමට ඇතුළත් කළ යුතු රේඛා තෝරා ගැනීම සඳහා.


git add -p filename.txtදෝෂයක් සඳහා අඩු ඉඩක් හැරෙන්නට එය ඔබට වඩා වැඩි යමක් ලබා දෙන්නේ කුමක් ද ? ඔබ අර්ධ-ගොනු වෙනස් කිරීම අවුල් කරන්නේ නම්, බැඳීමක් අහෝසි කිරීමට වඩා එකතු කිරීමක් අහෝසි කිරීම හොඳය.
CTMacUser

එයට හේතුව මම නොදනිමි, නමුත් මම 'n' යැයි පැවසූ විට රේඛාව ඇතුළත් වේ .... 2 වන හක්කෙහි 'y' යැයි පැවසූ විට එයද ඇතුළත් වේ.
chovy

1

git-cola විශිෂ්ට GUI එකක් වන අතර මෙම අංගය ගොඩනගා ඇත. වේදිකාවට පේළි තෝරන්න සහ ඔබන්න S. තෝරා ගැනීමක් සිදු නොකළේ නම්, සම්පූර්ණ හක්ක වේදිකා ගත වේ.

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.