දැනටමත් තැටියෙන් මකා දමා ඇති Git repo එකකින් බහු ගොනු ඉවත් කිරීම


1313

මා සතුව Git repo එකක් ඇත, මම ගොනු හතරක් භාවිතා නොකලෙමි rm( නැත git rm ), සහ මගේ Git තත්ත්වය මේ ආකාරයෙන් පෙනේ:

#    deleted:    file1.txt
#    deleted:    file2.txt
#    deleted:    file3.txt
#    deleted:    file4.txt

අතින් ගොස් මේ ආකාරයට එක් එක් ගොනුව එකතු නොකර Git වෙතින් මෙම ගොනු ඉවත් කරන්නේ කෙසේද:

git rm file1 file2 file3 file4

ඉතා මැනවින්, මම හැකි ආකාරයකින් ක්‍රියා කරන දෙයක් සොයමි git add ..


2
kch

10
සෙත්, එය සැමවිටම භාවිතා කිරීම පහසු නැත git rm, ඉවත් කිරීම වෙනම මෙවලමකින්, IDE හෝ ගොනු කළමනාකරුගෙන් විය හැකිය. ලිපිගොනු ඉවත් කිරීමේදී / නැවත නම් කිරීමේදී කෙනෙකුට දෘශ්‍ය චිත්‍රාගාරය වේදනාවක් විය හැකිය.
බ්‍රෙට් රයන්

67
කෙනෙකු භාවිතා නොකරන්නේ ඇයි Ugh, ඉල්ලා git rmටිකක් ඔවුන් භාවිත කරන්නේ නැහැ ඇයි ඉල්ලා සිටීමක් බඳු ය git vimහෝ git cd. එය කළ යුතු මෝඩ වැඩක් වන අතර, මකාදැමූ ලිපිගොනු වේදිකාවෙන් ඉවත් කිරීම සඳහා බිල්ට් විධානයක් හෝ අන්වර්ථයක් තිබිය යුතුය, තවද ඔබට එය SO දෙස බැලීමට හෝ දිවා ආහාර විවේකයේ මෑන් පිටු කියවීමට අවශ්‍ය නොවිය යුතුය.
ඩබ්ලිව්.සී.වෙඩින්

7
වරින්දර්ගේ පිළිතුර හොඳ ක්‍රමයක් නොවේ. කෝඩි යෝජනා කළ පරිදි git add -u සලකා බලන්න. මෙම ප්‍රශ්නයටද පිළිතුර මෙයයි: stackoverflow.com/questions/1402776/…
රෝලන්ඩ්

Answers:


2306

Git 1.x සඳහා

$ git add -u

මෙය ලුහුබැඳ ඇති ලිපිගොනු ස්වයංක්‍රීයව වේදිකා ගත කිරීමට git ට කියයි.

Git 2.0 සඳහා

ඔබේ මුළු වැඩ කරන ගස වේදිකා ගත කිරීම සඳහා:

$ git add -u :/

වත්මන් මාර්ගය වේදිකා ගත කිරීම සඳහා:

$ git add -u .

136
මෙය වෙනස් කළ, ලුහුබැඳ ඇති සියලුම ගොනු එකතු කරන බව සලකන්න - මකාදැමූ සහ යාවත්කාලීන කරන ලදි.
ඉයන් හන්ටර්

19
an බීන්ලන්ඩ්, ඔබට අවශ්‍ය වන්නේ ඒවා වෙනස් කිරීමට අවශ්‍ය නැතිනම් ඔබට වෙනස් කිරීමට අවශ්‍ය විශේෂිත ගොනුවට මාර්ගය පමණි. උදා: git add -u [path]
පෝල් ප්‍රෙවට්

27
git add -u folder/ෆෝල්ඩරයක මෙම ක්‍රියාව ක්‍රියාත්මක කිරීමටද
c ..

2
FYI: මෙම පිළිතුර stackoverflow.com/questions/1402776/…
Shog9

1
මෙම පිටුවට පැමිණෙන විට මිනිසුන් අසන ප්‍රශ්නය එය විය හැකි අතර, OP යනු සැබවින්ම ඇසීමට අදහස් කළ දෙය විය හැකිය, නමුත් එය ඇසූ නිශ්චිත ප්‍රශ්නයට පිළිතුරු සපයන්නේ නැත.
අනුක්‍රමික

1365
git ls-files --deleted -z | xargs -0 git rm 

ඔබ සොයන දේ විය හැකිය .. එය මට වැඩ කරයි ..


5
කවුළු සඳහා ඊවාන් මොරන් විසින් ඉහත සඳහන් කළ පරිදි උපුටා දැක්වීම් නොමැතිව පහත දැක්වෙන අන්වර්ථය ඔබේ වින්‍යාසය තුළ එක් කිරීමට උත්සාහ කරන්න 'remove =! git ls-files --deleted -z | xargs -0 git rm '
CLS

21
ඔවුන්ගේ නමින් ඉඩ ඇති ලිපිගොනු ගැන සැලකිලිමත් වන්න
maazza

44
Ave ඩේව් එවරිට්git ls-files --deleted -z | xargs -0 git rm
මැක්ස් නැනසි

15
කෝඩි යෝජනා කළ පරිදි git add -u වඩා සරල හා ආරක්ෂිත ක්‍රමයක් වන අතර අහම්බෙන් ලිපිගොනු මකාදැමීමේ අවදානමක් නොමැත.
රෝලන්ඩ්

4
සමහර ලිපිගොනු සඳහා වැඩ කළ හැකි වුවද එය වැරදි පිළිතුරක් බැවින් මෙය අවතක්සේරු කිරීම. පහත "git add -u" භාවිතා කරන්න. එය එයයි.
n13

735

ඔයාට පාවිච්චි කරන්න පුළුවන්

git add -u

මකාදැමුණු ලිපිගොනු වේදිකාවට එක් කිරීමට, ඉන්පසු ඒවා සිදු කරන්න

git commit -m "Deleted files manually"

101
කරුණාකර ගූගල් පරිශීලකයා සටහන් කරන්න: එය නවීකරණය කරන ලද ලුහුබැඳ ඇති ලිපිගොනු වේදිකා ප්‍රදේශයට එක් කරයි.
erenon

4
මෙම විධානය ක්‍රියාත්මක කරන්න ඔබ ගොනු ඉවත් කර වහාම ඒවා ක්‍රියාත්මක කිරීමට අවශ්‍ය නම් පමණි.
ආර්යෝ


357

ඔබ සරලව ධාවනය කරන්නේ නම්:

git add -u

ඔබ මකා දැමූ ලිපිගොනු ඇත්ත වශයෙන්ම ඊළඟ බැඳීමේ කොටසක් විය යුතු බව දැන ගැනීමට git එහි දර්ශකය යාවත්කාලීන කරනු ඇත. එම වෙනස පරීක්ෂා කිරීම සඳහා ඔබට "git commit" ධාවනය කළ හැකිය.

නැතහොත්, ඔබ ධාවනය කරන්නේ නම්:

git commit -a

එය ස්වයංක්‍රීයව මෙම වෙනස්කම් (සහ වෙනත් ඕනෑම දෙයක්) ගෙන ඒවා සිදු කරයි.

යාවත්කාලීන කිරීම : ඔබට මකාදැමුණු ගොනු පමණක් එකතු කිරීමට අවශ්‍ය නම්, උත්සාහ කරන්න:

git ls-files --deleted -z | xargs -0 git rm
git commit

1
හරි, git commit -aමට අවශ්‍ය දේ කරන්නම්, සමහර අවස්ථාවලදී මට කැපවීමට අවශ්‍ය නැති ලිපිගොනු මා සතුව ඇත, එබැවින් මට කැපවීම අතින් සකස් කිරීමට අවශ්‍යය.
ඊගෝර් සෙවාකා

2
commit -a මූලිකවම "add -u" එකක් කරයි; එය දන්නා ලිපිගොනු වල යම් වෙනසක් සමඟ දර්ශකය යාවත්කාලීන කරනු ඇත (ඒවා මකාදැමීම් හෝ සරල වෙනස්කම් වේවා). ඔබට ඇත්ත වශයෙන්ම වඩාත් නිශ්චිත විය හැකි අතර ඔබට අවශ්‍ය ගොනු පමණක් එකතු කරන්න. git.or.cz/gitwiki/… ප්‍රයෝජනවත් විය හැකිය.
එමිල් සීට්

2
"යාවත්කාලීන කිරීම: .." යටින් ඇති විධාන කට්ටලය චාම් එකක් මෙන් ක්‍රියා කළේය. ස්තූතියි!
ජේ ටේලර්

10
'Git ls-files --deleted | සඳහා ඔබට බොහෝම ස්තූතියි xargs git rm '!
මිට්

18
"git ls-files --deleted | xargs git rm" යනු නිවැරදි පිළිතුරයි! ස්තූතියි!
නැවත

166

ඔබ බොහෝ විට සොයන්නේ -A:

git add -A

මෙය git add -u හා සමාන වන අතර නව ගොනු එකතු කරයි. මෙය දළ වශයෙන් hg හි addremoveවිධානයට සමාන වේ (චලනය හඳුනාගැනීම ස්වයංක්‍රීය වුවද).


8
ඉක්මන් පැත්තේ සටහනක, -u භාවිතා කිරීම මඟින් ලුහුබැඳ ඇති ලිපිගොනු වලට එකතු කිරීම සීමා කරන අතර -a මඟින් සොයා නොගත් ලිපිගොනු ද ඇතුළත් වේ. මම හිතුවා මම වෙනස පෙන්වා දෙයි කියලා.
spaaarky21

මෙම අවස්ථාවෙහිදී ඔබට කැපවීමේ ධජය හරහා සියල්ල එකතු කළ හැකිය.
සැක් ග්‍රියර්සන්

94

මකා දැමූ ගොනු පමණක් වේදිකා ගත කිරීම සඳහා :

for x in $(git status | grep deleted | awk '{print $2}'); do git rm $x; done

හෝ (xargs මාර්ගය):

git status | awk '/deleted/ {print $2}' | xargs git rm

ඔයාට පුළුවන් පහසු පසුකාලීන භාවිතය සඳහා ඔබට කැමති විධාන කට්ටලයක් අන්වර්ථ .


2
A සාබ් පෝලිම ගැන තේරුම් ගන්න, නමුත් xargsප්‍රගුණ කිරීමට මිනිත්තු 15 ක් පමණ වේ.
එරික් විල්සන්

11
git status | awk '/deleted/ {print $3}' | xargs git rmඑය කිරීමට කෙටි ක්‍රමයක් වනු ඇත. grep | awk... නිකම්ම කියන්න
මාර්ක් රීඩ්

58
git rm $(git ls-files --deleted)මෙම (පිටපත් වඩාත් පහසු නොවේ මේ ).
හොට්ෂ්කේ

1
xargs හෝ ඉහත $ () ආදේශනය ලැයිස්තුව විශාල නොවන බව ඔබ දන්නේ නම්. ලැයිස්තුව නම් වේ විශාල: git ls-files --deleted | while read f; do git rm $f; done
ඇන්ඩෲ

2
And ඇන්ඩ rew xargsවිශාල ලැයිස්තුවක් සඳහා ටික වේලාවකට වඩා කාර්යක්ෂම වේ, මන්ද එය ක්‍රියාත්මක කරන සෑම අවස්ථාවකම තර්ක එකකට වඩා වැඩි ගණනක් සම්මත කරයි git rm. git rmඑය ක්‍රියාත්මක වන සෑම අවස්ථාවකම සම්මත කරන ලද තර්ක ගණන සීමා කිරීම සඳහා, -nවිකල්පය භාවිතා කරන්න :git ls-files --deleted | xargs -n 15 git rm
අජෙඩි 32

61
git rm test.txt

ඔබ සත්‍ය ගොනුව මකා දැමීමට පෙර හෝ පසුව.


7
එය ක්‍රියාත්මක වන අතරම, බොහෝ විට මම ලිපිගොනු ටොන් ගණනක් මකා rmදමා පසුව කනගාටු වෙමි .
carl

4
මෙය කරනවාට වඩා නරක ඇයි git add -u? සියලු වෙනස්කම් එකතු කරනවාට වඩා, මකාදැමූ විශේෂිත ලිපිගොනු එකතු කිරීම ආරක්ෂිත යැයි පෙනේ .
ඉයන් ඩන්

2
ඇත්ත වශයෙන්ම මෙය ප්‍රශ්නයේ අවසාන පේළියට අනුව හොඳම පිළිතුර විය යුතුය "මට අවශ්‍ය වන්නේ සියලුම ලිපිගොනු git වෙතින් මකා දැමිය හැකි විධානයක් තැටියෙන් මකා දැමීමයි."
රාම්ෂරන්

2
@ රාම්ෂරන් නැත, මන්ද එය කිසිසේත් නොකරන බැවිනි. මෙය තනි ගොනුවක් මකා දමයි; මකාදැමූ "සියල්ල" ගොනු OP විශේෂයෙන් ඉල්ලා සිටියේය.
ආදම්

1
Ams රාම්ෂරන් නැත, කාරණය එයයි - සෑම අවස්ථාවකම පාහේ ඔබට ආදේශක කාඩ්පතක් භාවිතා කළ නොහැක (ගැලපෙන ආදේශක කාඩ්පතක් නොමැත). ප්‍රධාන පිළිතුර එතරම්ම සංකීර්ණ වන්නේ මේ නිසා ය.
ඇඩම්

49

'--All' හෝ '--update' විකල්ප සමඟ git-add භාවිතා කිරීමෙන් ඔබට අවශ්‍ය ප්‍රමාණයට වඩා ලබා ගත හැකිය. නව සහ / හෝ වෙනස් කළ ගොනු ද දර්ශකයට එක් කරනු ඇත. මකාදැමූ ගොනු වෙනත් ලිපිගොනු ස්පර්ශ නොකර git වෙතින් ඉවත් කිරීමට අවශ්‍ය විටදී මට bash අන්වර්ථ සැකසුම ඇත:

alias grma='git ls-files --deleted -z | xargs -0 git rm'

ගොනු පද්ධතියෙන් ඉවත් කර ඇති සියලුම ගොනු මකාදැමූ ලෙස දර්ශකයට එක් කරනු ලැබේ.


39

එය සැබවින්ම වැදගත් බව නොවේ, නමුත් තෝරාගත් පිළිතුරට මම එකඟ නොවෙමි:

git add -u 

... වැඩ කරන ගසෙහි අනුරූප ලිපිගොනු ඉවත් කර ඇත්නම් දර්ශකයෙන් ගොනු ඉවත් කරනු ඇත, නමුත් එය ලුහුබැඳ ඇති ලිපිගොනු වල නවීකරණය කරන ලද නව අන්තර්ගතයන් ද වේදිකා ගත කරයි.

git rm $(git ls-files --deleted)

... අනෙක් අතට ලුහුබැඳ ඇති මකාදැමුණු ගොනු පමණක් rm කරනු ඇත.

එබැවින් මගේ දෘෂ්ටියේ දෙවැන්න වඩා හොඳ විකල්පයයි.


29

ඒවා එකම වෙනස්කම් නම්, ඔබට සරලව කළ හැකිය

git commit -a

සියලු වෙනස්කම් කිරීමට. මකා දැමූ ලිපිගොනු එයට ඇතුළත් වේ.


3
මා ඡන්දය ප්‍රකාශ කළේ මන්දැයි විශ්වාස නැත; git rm භාවිතා කිරීමෙන් ඔබ එය පැහැදිලිව නොකියුවත්, මකාදැමූ ගොනු හඳුනා ගැනීම සඳහා git හොඳ කාර්යයක් කරයි.
ස්පූන්මයිසර්

"-A" පිළිගත හැකි ස්විචයක් නොවන නිසා එය "-ඒ" නිසා ඔබ ඡන්දය ප්‍රකාශ කළේය. ඔබේ පිළිතුර සංස්කරණය කිරීම.
ෂෙහාර්

10
නැහැ, "යයි සලකන," වේ විධානය නිසා, පිළිගත හැකි ස්විචයක් සිදු . "-A" වෙත මාරු වේ එකතු නමුත් සිදු . ඔබ යෝජනා කළ සංස්කරණය දැනටමත් ප්‍රතික්ෂේප කර ඇති බව මට පෙනේ.
ස්පූන්මයිසර්

ඔබ කරන එකම දෙය මකා දැමූ ගොනුව නම්, ස්විචය --allow-හිස්
බිල්චාර්ඩ්ස්

වැරදියි, ඇත්ත වශයෙන්ම --allow-හිස් අවශ්‍ය වන්නේ ඔබ git rm --cached
billrichards

20
git ls-files --deleted | xargs git rm 

මකා දැමූ ගොනු පමණක් එකතු කිරීමට හොඳම විකල්පය වේ.

මෙන්න තවත් විකල්ප කිහිපයක්.

git add .  => Add all (tracked and modified)/new files in the working tree.

git add -u => Add all modified/removed files which are tracked.

git add -A => Add all (tracked and modified)/(tracked and removed)/new files in the working tree.

git commit -a -m "commit message" - Add and commit modified/removed files which are tracked.

16

git add -u

-u --update වැඩ කරන ගසට වඩා දර්ශකයේ දැනටමත් ලුහුබැඳ ඇති ලිපිගොනු සමඟ පමණක් ගැලපෙන්න. එයින් අදහස් වන්නේ එය කිසි විටෙකත් නව ලිපිගොනු වේදිකා ගත නොකරන නමුත් එය නවීකරණය කරන ලද ලිපිගොනු වල නව අන්තර්ගතයන් වේදිකා ගත කරන බවත් වැඩ කරන ගසෙහි අනුරූප ලිපිගොනු ඉවත් කර ඇත්නම් එය දර්ශකයෙන් ගොනු ඉවත් කරන බවත් ය.

කිසිවක් ලබා දී නොමැති නම්, පෙරනිමිය "."; වෙනත් වචන වලින් කිවහොත්, වත්මන් නාමාවලියෙහි සහ එහි උප බහලුම්වල ඇති සියලුම ලුහුබැඳ ඇති ගොනු යාවත්කාලීන කරන්න.


ඉහළ ඡන්දය දුන් පිළිතුර දැනටමත් භාවිතා කිරීමට පවසයි git add -u. ඔබගේ පිළිතුරේ ඇති අනෙකුත් සියලුම දෑ පැමිණෙන්නේ කොහෙන්ද? ඔබ ප්‍රලේඛනයට සම්බන්ධ වී එය එසේ නම් එය අවහිර කරන්න.
TheWarriorNamedFoo

14

එම සරල විසඳුම මට හොඳින් ක්‍රියාත්මක වේ:

git rm $(git ls-files --deleted)

වර්තමාන වැඩ කරන නාමාවලිය ඔබ සැමවිටම git shell භාවිතා කළ යුතු යැයි මම සිතමි
Houssem Badri

2
මෙය කදිම හා සරල නමුත් පුනරාවර්තන ෆෝල්ඩර සමඟ ක්‍රියා නොකරයි.
DrB

EBehnazChangizi මම හිතන්නේ එය එසේ වේ, stackoverflow.com/questions/1054044/…
Houssem Badri

@PvdL මාවතේ අවකාශයන් පිළිගෙන නොමැති os-specefic ප්රශ්නය
Houssem බද්රි

11

ඔබට එය එකතු කිරීමට .gitconfigඅවශ්‍ය නම් මෙය කරන්න:

[alias]
  rma = !git ls-files --deleted -z | xargs -0 git rm

එවිට ඔබ කළ යුත්තේ ධාවනය පමණි:

git rma

1
සහ cmd රේඛාවෙන්git config --global alias.rmd '!git ls-files --deleted -z | xargs -0 git rm'
කේසි

9
git ls-files --deleted -z | xargs -0 git rm --cached

මෙමඟින් කලින් මකාදැමූ සියලුම මකාදැමූ ලිපිගොනු ඉවත් කරනු ඇත, එසේම ඔබේ ගොනු නාමවල අවකාශයන් ඇති අවස්ථාව හසුරුවනු ඇත.

ඔබගේ POSIX ප්‍රභේදය මත පදනම්ව, ඔබට භාවිතා කිරීමට අවශ්‍ය විය හැකිය xargs -0 -r: මෙය xargsශුන්‍ය අන්තර්ගතය නල කරන විට මනාව පිටවීමට හේතු වේ.

සංස්කරණය කරන්න: --cachedසහ --deletedදැනටමත් මකා දමා නොමැති ලිපිගොනු අහම්බෙන් මකාදැමීමෙන් ආරක්ෂා වීම සඳහා ධජ එකවරම භාවිතා කරයි.


7

වෙනස් කරන ලද සහ මකා දැමූ ගොනු ස්වයංක්‍රීයව වේදිකා ගත කිරීමට විධානයට කියන්න, නමුත් ඔබ Git ගැන නොකියූ නව ලිපිගොනු බලපාන්නේ නැත:

-a
--all

git add . && git commit -m -a "Your commit"

හෝ

git add --all && git commit -m "Your commit"

1
git add --all && git commit -m "Your commit" මෙය වින්ඩෝස් -7 හි Git bash විධාන කවචය භාවිතා කරමින් මට වැඩ කළේය.
kmarabet

1
පහත දැක්වෙන විධානය වින්ඩෝස් -7 හි වැඩ කර ඇත, Git bash විධාන කවචය භාවිතා කරමින්: $ git add --all && git commit -m "දේපල ගොනු ඉවත් කරන්න" [master 58c41ac] දේපල ගොනු ඉවත් කරන්න 1 ගොනුව වෙනස් කර ඇත, මකාදැමීම් 9 ක් (-). .. ඉන්පසු එම වෙනස් කිරීම් දුරස්ථ ගබඩාවට තල්ලු කිරීම සඳහා ක්‍රියාත්මක වේ: it git push සම්භවය .. වස්තු ගණනය කිරීම: 10, සිදු කර ඇත.
kmarabet

6

සැකසීමට ඔබට ලිපිගොනු විශාල ප්‍රමාණයක් තිබුණද, පහත සඳහන් දෑ ක්‍රියාත්මක වේ:

git ls-files --deleted | xargs git rm

ඔබට බොහෝ විට අදහස් දැක්වීමක් කිරීමට අවශ්‍ය වනු ඇත.

විස්තර සඳහා, බලන්න: ප්‍රයෝජනවත් Git ස්ක්‍රිප්ට්


6

භාවිතා කරන්න -tඇත්ත වශයෙන්ම ක්‍රියාත්මක වන්නේ කුමන විධානයදැයි බැලීමට

මම එය කිරීමට විරේන්ද්‍රගේ පිළිතුර වෙනස් කළෙමි:

git ls-files --deleted -z | xargs -t -0 git rm

5

Git-add සඳහා වන කිසිදු කොඩියක් ඉවත් කළ ගොනු පමණක් වේදිකා ගත නොකරයි; ඔබ වෙනස් කර ඇති සියල්ල මකා දැමූ ලිපිගොනු නම්, ඔබ හොඳයි, නමුත් වෙනත් ආකාරයකින්, ඔබට git-status ධාවනය කර ප්‍රතිදානය විග්‍රහ කළ යුතුය.

ජෙරමිගේ පිළිතුරෙන් බැහැරව, මට ලැබුණේ මෙයයි:

git status |  sed -s "s/^.*deleted: //" | grep "\(\#\|commit\)" -v | xargs git rm
  1. ලිපිගොනු වල තත්වය ලබා ගන්න.
  2. මකා දැමූ ගොනු සඳහා, ගොනුවේ නම හුදකලා කරන්න.
  3. #S වලින් ආරම්භ වන සියලුම රේඛා මෙන්ම එහි "මකාදැමූ" යන වචනය තිබූ තත්ව රේඛාවක් ඉවත් කරන්න; එය කුමක්දැයි මට හරියටම මතක නැත, එය තවදුරටත් එහි නොමැත, එබැවින් ඔබට විවිධ තත්වයන් සඳහා මෙය වෙනස් කිරීමට සිදුවනු ඇත. මම හිතන්නේ ප්‍රකාශන කාණ්ඩ කිරීම GNU- විශේෂිත ලක්‍ෂණයක් විය හැකිය, එබැවින් ඔබ gnutils භාවිතා නොකරන්නේ නම්, ඔබට බහු එකතු කිරීමට සිදුවනු ඇතgrep -v පේළි .
  4. ලිපිගොනු වෙත යොමු කරන්න git rm.

මෙය දැන් ෂෙල් අන්වර්ථයක ඇලවීම ...


5

සඳහන් පරිදි

git add -u

ඉවත් කරන ලද ගොනු මකාදැමීම සඳහා පියවර තබයි, නමුත් යාවත්කාලීන කිරීම සඳහා වෙනස් කරන ලද ගොනු.

නවීකරණය කළ ගොනු අස්ථාපනය කිරීමට ඔබට කළ හැකිය

git reset HEAD <path>

ඔබේ කැපවීම් සංවිධානාත්මකව හා පිරිසිදුව තබා ගැනීමට ඔබ කැමති නම්.
සටහන: මෙය මකාදැමූ ලිපිගොනු අස්ථාපනය කළ හැකි අතර එම ආදේශක කාඩ්පත් සමඟ ප්‍රවේශම් වන්න.


4
git commit -m 'commit msg' $(git ls-files --deleted)

මම දැනටමත් ලිපිගොනු මකා දැමීමෙන් පසුව මෙය මට ප්‍රයෝජනවත් විය.


3

මට එකම හා භාවිතා කළ git gui "stage change" බොත්තම අවශ්‍ය විය. එය ද සියල්ල එකතු කරයි.

"වේදිකාව වෙනස් වූ පසු" මම "කැපවීම" කළා ...

එබැවින් මගේ වැඩ කරන නාමාවලිය නැවත පිරිසිදුයි.


හොඳයි ගයි එකක් පාවිච්චි කිරීම චේටිං, ලොල්! නමුත් GUI නිර්මාණකරු ඔබේ අවශ්‍යතා ආවරණය කළ අවස්ථා වලදී වේගවත් වේ. 'කබාය යට ඇති දේ' සමඟ සම්බන්ධ වන්නේ කෙසේදැයි දැන ගැනීම හොඳය.
ඩෙනිස්

1
FYI: මෙම පිළිතුර stackoverflow.com/questions/1402776/…
Shog9

3
git rm $(git ls-files -d)

git ls-filesවිධානය මඟින් ලැයිස්තුගත කර ඇති සියලුම ගොනු ඉවත් කරයි (-d පෙන්වන්නේ මකාදැමුණු ගොනු පමණි). ගොනු නාමයේ හෝ මාර්ගයේ ඉඩ ඇති ලිපිගොනු සඳහා ක්‍රියා නොකරයි, නමුත් මතක තබා ගැනීම සරල ය


2

git add -u <filenames>මකාදැමුණු ගොනු පමණක් වේදිකා ගත කිරීමට ඔබට භාවිතා කළ හැකිය .

උදාහරණයක් ලෙස, ඔබ ගොනු මකා දැමුවහොත් templates/*.tplභාවිතා කරන්න git add -u templates/*.tpl.

මෙම -uනිධිය තුල පවතින නමුත් කම්කරු නාමාවලියේ තවදුරටත් පවතින ගොනු යොමු කිරීම සඳහා අවශ්ය වේ. එසේ නොමැතිනම්, පෙරනිමිය git addවන්නේ වැඩ කරන නාමාවලියෙහි ඇති ලිපිගොනු සෙවීමයි, ඔබ එහි මකාදැමූ ලිපිගොනු සඳහන් කළහොත් එය සොයාගත නොහැක.


2

මකාදැමුණු ගොනු විධාන ලෙස ස්ථානගත කිරීම සඳහා පද්ධති අන්වර්ථය එකතු කිරීම rm-all

යුනික්ස් alias rm-all='git rm $(git ls-files --deleted)'

වින්ඩෝස් doskey rm-all=bash -c "git rm $(git ls-files --deleted)"

සටහන

වින්ඩෝස් bashස්ථාපනය කර තිබිය යුතුය .


2

(තවත් විචලනයකි)

තැටි ලිපිගොනු වලින් දැනටමත් මකා දමා ඇති නමුත් එක් විශේෂිත ෆෝල්ඩරයකින් මකා දැමීමට මට අවශ්‍ය වූ අතර අනෙක් ෆෝල්ඩර ස්පර්ශ නොකෙරේ. පහත සඳහන් දෑ මා වෙනුවෙන් වැඩ කළේය:

git ls-files --deleted  | grep <folder-name> | xargs git rm


1

දෘශ්‍ය චිත්රාගාර ව්යාපෘතිය සඳහා

'git ls-files --deleted | sed 's/(.*)/"\1"/'| xargs git rm' 

මකා දැමූ ගොනු මාර්ගයට ඉඩක් ඇති විට එය ප්‍රයෝජනවත් වේ


-1

මේ දක්වා මා සොයාගෙන ඇති වඩාත්ම නම්‍යශීලී විසඳුම නම්

git cola

මට වේදිකා ගත කිරීමට අවශ්‍ය සියලුම මකා දැමූ ගොනු තෝරන්න.

(සටහන මම සාමාන්‍යයෙන් සෑම දෙයක්ම විධාන රේඛාව git වලින් කරන්නෙමි, නමුත් git විසින් ඉවත් කරන ලද ලිපිගොනු ටිකක් අමුතු ලෙස හසුරුවයි).


වයිල්ඩ් කා ards ් මා සමඟ වැඩ නොකිරීම git add -u path/to/my/deleted-files-pattern-*.ymlනිසා මෙය මට හොඳම පිළිතුර විය (මකාදැමුණු සියලුම ලිපිගොනු වේදිකා ගත කිරීමට අකමැති නමුත් සියගණනක් 50 ක්)
mlncn
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.