Answers:
මෙම පිළිතුර අදාළ වන්නේ Git අනුවාදය 1.x ට පමණි . Git අනුවාදය 2.x සඳහා, වෙනත් පිළිතුරු බලන්න.
සාරාංශය:
git add -A
අධ්යනයක් සියලු වෙනස්කම්
git add .
මකාදැමීමකින් තොරව නව ලිපිගොනු සහ වෙනස් කිරීම් සිදු කරයි
git add -u
නව ලිපිගොනු නොමැතිව , වෙනස් කිරීම් සහ මකාදැමීම් සිදු කරයි
විස්තර:
git add -A
සමාන වේ git add .; git add -u
.
මෙහි ඇති වැදගත්ම කරුණ git add .
නම්, එය වැඩ කරන ගස දෙස බලා වේදිකාගත කරන ලද වෙනස්කම් වලට ඒවා සියල්ලම වෙනස් කර හෝ නව හෝ නොසලකා හරිනු ලැබුවහොත් එය කිසිදු 'ආර්එම්' ක්රියාවක් සිදු නොකරයි.
git add -u
දැනටමත් ලුහුබැඳ ඇති සියලුම ලිපිගොනු දෙස බලා එම ගොනු වෙනස් නම් හෝ ඒවා ඉවත් කර ඇත්නම් ඒවා වෙනස් කරයි. එය කිසිදු නව ලිපිගොනු එකතු නොකරයි, එය දැනටමත් නිරීක්ෂණය කර ඇති ලිපිගොනු වල වෙනස්කම් පමණක් සිදු කරයි.
git add -A
ඒ දෙකම කිරීම සඳහා පහසු කෙටිමඟකි.
ඔබට මේ වගේ දෙයක් සමඟ වෙනස්කම් පරීක්ෂා කළ හැකිය (Git අනුවාදය 2.x සඳහා ඔබේ ප්රතිදානය වෙනස් git add .
git status
වනු ඇති බව සලකන්න):
git init
echo Change me > change-me
echo Delete me > delete-me
git add change-me delete-me
git commit -m initial
echo OK >> change-me
rm delete-me
echo Add me > add-me
git status
# Changed but not updated:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me
git add .
git status
# Changes to be committed:
# new file: add-me
# modified: change-me
# Changed but not updated:
# deleted: delete-me
git reset
git add -u
git status
# Changes to be committed:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me
git reset
git add -A
git status
# Changes to be committed:
# new file: add-me
# modified: change-me
# deleted: delete-me
git add -A -p
යමෙකු බලාපොරොත්තු වන පරිදි ඉතා නරක ක්රියා නොකරයි (සොයා නොගත් ලිපිගොනු ගැන අන්තර්ක්රියාකාරී ලෙස විමසන්න)
git add -A :/
හෝgit add -A .
git add -u
බවට පත්ව git add -u :/
ඇති අතර, ඔබට -u සමහර නාමාවලි වලට ඉඩ :/
දී මුළු ගසම හසුරුවයි.
git add -u
හෝ git add .
එය කිසිදු සමමුහුර්ත ගැටලු ඉන්නේ බව සහතික කිරීමට එකතු වන අමතර මානසික බදු සඳහා වූ ගිණුම්වල පසුව පවා පහසු ඔහුගේ ජීවිතය කරවන කිරීමෙන්? Git භේදය furthur නැත ඇයි මම කල්පනා add -u
වෙනම විධාන දෙකකට add -u1
හා add-u2
-ඉලක්කම් නොවන සමඟ ආරම්භ ගොනු සඳහා ඉලක්කම් හා අනෙකුත් සමඟ ආරම්භ ගොනු සඳහා එමඟින් එක් ක්රියා
ඉක්මන් අවබෝධය සඳහා වගුවක් මෙන්න:
Git අනුවාදය 1.x :
Git අනුවාදය 2.x :
දිගු හැඩැති කොඩි:
git add -A
සමාන වේ git add --all
git add -u
සමාන වේ git add --update
වැඩිදුර කීයවීම:
git diff-files -z --diff-filter=M --name-only | xargs -0 git add
පමණක් වෙනස් ගොනු, නමුත් නව ගොනු හෝ සිදුවූ මකාදැමීම් එකතු කිරීමට.
git add .
වත්මන් මාවතේ ඇති නව ලිපිගොනු එක් කිරීම පමණි. එනම්, ඔබට නව නාමාවලියක් තිබේ නම් ../foo
, git add -A
එය වේදිකා ගත git add .
කරනු ඇත, එසේ නොවේ.
git add .
සමාන වේ git add -A .
, එය සමාන වේgit add "*"
Git 2.0git add -A
git add .
git add -A .
සමඟ පෙරනිමිය: සමාන වේ .
git add <path>
git add -A <path>
දැන් " " හා සමාන වේ , එවිටgit add dir/
ඔබ ඩිරෙක්ටරියෙන් ඉවත් කළ මාර්ග " " සහ ඉවත් කිරීම සටහන් කරයි.
Git හි පැරණි අනුවාද වල,git add <path>
ඉවත් කිරීම් නොසලකා හරින ලදි.ඔබට සැබවින්ම අවශ්ය නම්
git add --ignore-removal <path>
එකතු කළ හෝ වෙනස් කළ මාර්ග පමණක් එක් කිරීමට ඔබට " " කිව හැකිය<path>
.
git add -A
වැනි ය git add :/
( ඉහළ git repo ෆෝල්ඩරයෙන් සියල්ල එක් කරන්න ).
Git 2.7 (නොවැ. 2015) ඔබට " :
" නම් ෆෝල්ඩරයක් එක් කිරීමට ඉඩ දෙන බව සලකන්න ! ජූනියෝ සී හමානෝ විසින් රචිත 29abb33 (2015 ඔක්තෝබර් 25)
බලන්න (gitster
) .
කතා කරන විට git 2.0 (Q1 හෝ Q2 2014) ආරම්භ කරන බව සලකන්නgit add .
(කම්කරු ගසක් තුළ වත්මන් මාර්ගය), ඔබ භාවිතා කළ යුතු ' .
' අනෙක් දී git add
විධාන මෙන්ම.
ඒ කියන්නේ:
"
git add -A .
" සමාන වේ "git add .; git add -u .
"
(සඳහා අමතර ' .
' සටහන් කරන්නgit add -A
සහgit add -u
)
නිසා git add -A
හෝ git add -u
(GIT 2.0 ක් පමණක් ආරම්භ) මත ක්රියාත්මක කිරීමට සමස්ත කම්කරු ගසක් මත මිස වර්තමාන මාවතේ පමණක් නොවේ.
එම විධානයන් "
git commit -a
" සහ අනෙකුත් විධානයන්ට අනුකූලව Git 2.0 හි ඇති මුළු ගසෙහිම ක්රියාත්මක වේ. "git add -u
" ලෙස හැසිරීමට යාන්ත්රණයක් නොමැතිgit add -u .
හෙයින්, "git add -u
" (පාස්පෙක් නොමැතිව) වර්තමාන උප බහලුමේ ඇති මාර්ග සඳහා පමණක් දර්ශකය යාවත්කාලීන කිරීමට පුරුදු වී සිටින අයට පැහැදිලිවම පැවසීමට ඇඟිලි පුහුණු කිරීම ආරම්භ කිරීම වැදගත් වේ.git add -u .
Git 2.0 පැමිණීමට පෙර ඔවුන් එය අදහස් කරන විට.මෙම විධානයන් පාස්පෙක්ට් නොමැතිව ධාවනය වන විට සහ වත්මන් නාමාවලියෙන් පිටත දේශීය වෙනස්කම් ඇති විට අනතුරු ඇඟවීමක් නිකුත් කරනු ලැබේ , මන්ද එවැනි තත්වයක් තුළ Git 2.0 හි හැසිරීම වර්තමාන අනුවාදයට වඩා වෙනස් වනු ඇත.
සිට චාල්ස් උපදෙස් , මගේ යෝජනා අවබෝධය පරීක්ෂා කිරීමෙන් අනතුරුව පහත සඳහන් පරිදි වනු ඇත:
# For the next commit
$ git add . # Add only files created/modified to the index and not those deleted
$ git add -u # Add only files deleted/modified to the index and not those created
$ git add -A # Do both operations at once, add to all files to the index
මෙම විධාන යෙදිය හැක්කේ කුමන තත්වයකද යන්න තේරුම් ගැනීමට මෙම බ්ලොග් සටහන ප්රයෝජනවත් විය හැකිය: ඔබගේ Git වැඩ කරන නාමාවලියෙන් මකාදැමුණු ගොනු ඉවත් කිරීම .
Git 2.0 ( 2014-05-28 ) සමඟ තත්වය වෙනස් විය :
-A
දැන් පෙරනිමිය වේ--ignore-removal
.git add -u
හා git add -A
විධාන රේඛාවේ මාර්ග තොරව උප බහලුම තුල සමස්ත ගස මත ක්රියාත්මක වේ.එබැවින් Git 2 සඳහා පිළිතුර:
git add .
හා git add -A .
එකතු නව / වත්මන් බහාළුම වෙනස් වූ / මකා ගොනුgit add --ignore-removal .
වත්මන් නාමාවලියෙහි නව / වෙනස් කළ ගොනු එක් කරයිgit add -u .
වත්මන් නාමාවලියෙහි නවීකරණය කරන ලද / මකා දැමූ ගොනු එක් කරයිවඩාත් ආසවනය කළ ඉක්මන් පිළිතුර:
git add -A
git add .
git add -u
git add :/
+git add -u :/
දී Git 2.x :
ඔබ කෙලින් පිහිටා නම් වැඩකරන බහලුම නම්, git add -A
හා git add .
වෙනස නැතිව වැඩ.
ඔබ ඕනෑම උප බහලුම වේ නම් කම්කරු බහලුම , git add -A
සමස්ත සියලු ගොනු එකතු වේ කම්කරු බහලුම , සහ git add .
ඔබේ ගොනු එකතු වේ වත්මන් බහලුම .
එපමණයි.
මෙය තවත් පැහැදිලි කිරීමක් එකතු කරනු ඇතැයි මම බලාපොරොත්තු වෙමි.
!The syntax is
git add <limiters> <pathspec>
! Aka
git add (nil/-u/-A) (nil/./pathspec)
සීමාවන් -u හෝ -A හෝ නිල් විය හැකිය.
පාත්ස්පෙක් යනු ගොනු මාර්ගයක් හෝ තිතක් විය හැකිය, '.' වත්මන් නාමාවලිය දැක්වීමට.
Git 'එකතු කරන ආකාරය' පිළිබඳ වැදගත් පසුබිම් දැනුම:
-A
ද නිශ්චිතව දක්වා නොමැති නම් පුනරාවර්තන නොවේ . තිත යනු වත්මන් ඩිරෙක්ටරියට තදින්ම යොමු කරයි - එය ඉහළින් සහ පහළින් ඇති මාර්ග මඟ හැරේ.දැන්, එම දැනුම අනුව, අපට ඉහත පිළිතුරු යෙදිය හැකිය.
සීමාවන් පහත පරිදි වේ.
-u
= --update
= ලුහුබැඳ ඇති ලිපිගොනු වලට උප කුලකය => එකතු කරන්න = නැත; වෙනස් කිරීම = ඔව්; මකන්න = ඔව්. => අයිතමය නිරීක්ෂණය කර ඇත්නම් .-A
= --all
(එවැනි කිසිවක් නැත -a
, එය සින්ටැක්ස් දෝෂයක් ලබා දෙයි) = 2.0 ට පෙර Git හි හැර, සොයා නොගත් / ලුහුබැඳ ඇති සියලුම ලිපිගොනු වල සුපර්සෙට් එක, තිත් ගොනු විශේෂයක් ලබා දෙන්නේ නම්, එම විශේෂිත ෆෝල්ඩරය පමණක් සලකනු ලැබේ. => නම් අයිතමය පිළිගත්, git add -A
එය සොයා එය එකතු වනු ඇත.පථය පහත පරිදි වේ.
git add -A .
git add -u .
අවසාන වශයෙන්, මගේ ප්රතිපත්තිය:
git status
..gitignore
ලිපිගොනුවක් තබා ගන්න එවිට සාමාන්යයෙන් උනන්දුවක් දක්වන ලිපිගොනු පමණක් හඳුනා නොගත් සහ / හෝ හඳුනා නොගනී.git add .
සමානාත්මතාවයට git add -A .
ලිපිගොනු එකතු කරන්නේ වත්මන් සහ ළමා ෆෝල්ඩර වලින් පමණි.
git add -A
වැඩ කරන ගසෙහි ඇති සියලුම ෆෝල්ඩර වලින් දර්ශකයට ගොනු එකතු කරයි.
PS: තොරතුරු Git 2.0 (2014-05-28) හා සම්බන්ධයි.
දෙකම git add .
සහgit add -A
නව, නවීකරණය කරන ලද සහ මකාදැමූ සියලුම ගොනු Git හි නවතම අනුවාද වල ස්ථානගත කරනු ඇත.
වෙනස වන්නේ git add -A
ඔබේ වැඩ කරන Git ගබඩාවට අයත් "ඉහළ, වත්මන් සහ උප බහලුම්" වල ගොනු ස්ථානගත කිරීමයි. නමුත් git add .
වර්තමාන ඩිරෙක්ටරියේ සහ උප බහලුම්වල ඇති එකම අදියර ගොනු කිරීම ( එසේ නොවේ පිටත ඇති ගොනු , එනම් ඉහළ නාමාවලි).
මෙන්න උදාහරණයක්:
/my-repo
.git/
subfolder/
nested-file.txt
rootfile.txt
ඔබේ වත්මන් කම්කරු බහලුම නම් /my-repo
, ඔබ කරන්නේ rm rootfile.txt
, එසේ නම් cd subfolder
, අනුගමනය git add .
, එය වනු ඇත නොවන මකා දමන ගොනුව වේදිකාගත. git add -A
ඔබ කොතැනින් ආ command ාවක් කළත් එසේ කිරීමෙන් මෙම වෙනස සිදුවනු ඇත.
එම -A
විකල්පය නව්යන කරයි, සහ වැඩ ගසක් ගැලපෙන දර්ශකය සටහන් ඉවත් කරයි.
Git 2 හි -A
විකල්පය දැන් පෙරනිමිය වේ.
Git ප්රලේඛනයට.
අනුව ඔබ දැනට සිටින නාමාවලියට යාවත්කාලීන කිරීමේ විෂය පථය සීමා කරන a එකතු කළ විට
එසේ නොවේ නම්
<pathspec>
-A විකල්පයක් භාවිතා කරන විට ලබා නොදුනහොත්, මුළු වැඩ කරන ගසෙහි ඇති සියලුම ලිපිගොනු යාවත්කාලීන වේ (වත්මන් ඩිරෙක්ටරියට සහ එහි උප බහලුම් වලට යාවත්කාලීන කිරීම සීමා කිරීමට Git හි පැරණි අනුවාද භාවිතා වේ).
මා එකතු කරන එක් දෙයක් නම්, --interactive
හෝ -p
මාදිලිය භාවිතා git add
කරන්නේ නම් යාවත්කාලීන ( -u
) ධජය භාවිතා කළ ආකාරයට හැසිරෙනු ඇති අතර නව ගොනු එකතු නොකරයි.
git add *
කෙසේද?