উত্তর:
এই উত্তরটি কেবল গিট সংস্করণ 1.x এ প্রযোজ্য । গিট সংস্করণ ২.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 :/
, আপনাকে কিছু ডিরেক্টরি ডিরেক্টরিতে অনুমতি দেয়, :/
পুরো গাছটি পরিচালনা করে।
git add -u
বা এমনটি করার মাধ্যমে git add .
যে কোনও সিঙ্কের সমস্যা নেই তা নিশ্চিত করার জন্য অতিরিক্ত মানসিক করের জন্য অ্যাকাউন্টিং করার পরেও তার জীবনটি আরও সহজ করে তোলে? কেন আমি ভাবছি গীত না furthur বিভক্ত করে add -u
দুটি পৃথক কমান্ড মধ্যে add -u1
এবং add-u2
ফাইলের জন্য যেখানে এক কাজ ফাইলের জন্য সংখ্যাসমূহ দিয়ে শুরু এবং অন্যান্য অ সংখ্যাসমূহ দিয়ে শুরু
দ্রুত বোঝার জন্য এখানে একটি টেবিল রয়েছে:
গিট সংস্করণ 1.x :
গিট সংস্করণ 2.x :
দীর্ঘ-ফর্ম পতাকা:
git add -A
সমতুল্য git add --all
git add -u
সমতুল্য git add --update
আরও পড়া:
git add .
কেবল বর্তমান পথে রয়েছে এমন নতুন ফাইল যুক্ত adds অর্থাত যদি আপনি একটি নতুন ডিরেক্টরি আছে ../foo
, git add -A
এটা মঞ্চ করবে git add .
না।
git add .
এর সমতুল্যgit add -A .
git add "*"
গিট ২.০git add -A
git add .
git add -A .
সহ ডিফল্ট: সমান ।
git add <path>
git add -A <path>
এখন " " এর মতোই , সুতরাং "git add dir/
" ডিরেক্টরি থেকে আপনার সরানো পথগুলি লক্ষ্য করে এবং অপসারণটি রেকর্ড করে।
গীটের পুরানো সংস্করণগুলিতে,git add <path>
অপসারণগুলি " " উপেক্ষা করুন।আপনি যদি সত্যিই চান
git add --ignore-removal <path>
তবে কেবল যুক্ত বা পরিবর্তিত পাথগুলিতে যোগ করতে " " বলতে<path>
পারেন।
git add -A
মত git add :/
( শীর্ষ গিট রেপো ফোল্ডার থেকে সবকিছু যোগ করুন )।
নোট করুন যে গিট 2.7 (নভেম্বর 2015) আপনাকে " :
" নামের একটি ফোল্ডার যুক্ত করতে দেবে !
দেখুন 29abb33 কমিট (25 অক্টোবর 2015) দ্বারা junio সি Hamano ( gitster
) ।
নোট করুন যে গিট 2.0 (কিউ 1 বা কিউ 2 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
কেবল চলমান পথে নয়, পুরো কার্যক্ষম গাছের উপর (কেবল গিট 2.0 শুরু করা) পরিচালনা করবে ।
এই কমান্ডগুলি "
git commit -a
" এবং অন্যান্য কমান্ডের সাথে সামঞ্জস্যতার জন্য গিট 2.0 তে পুরো গাছটিতে কাজ করবে । "git add -u
" " " " " যেমন " " আচরণ করার কোনও ব্যবস্থা থাকবে নাgit add -u .
, তবে "git add -u
" (প্যাথস্পেক ব্যতীত) " " যারা " " (প্যাথস্পেক ব্যতীত) ব্যবহার করা হয় তাদের পক্ষে কেবলমাত্র সাবডাইরেক্টরিতে পাথের জন্য সূচি আপডেট করার জন্য তাদের আঙ্গুলগুলি স্পষ্টভাবে বলতে প্রশিক্ষণ শুরু করা গুরুত্বপূর্ণ "git add -u .
"যখন গিট ২.০ আসার আগে তারা এটিকে বোঝায়।এই কমান্ডগুলি যখন কোনও প্যাথস্পেক ছাড়াই চালানো হয় এবং যখন আপনার বর্তমান ডিরেক্টরির বাইরে স্থানীয় পরিবর্তন হয়, তখন একটি সতর্কতা জারি করা হয় কারণ গিট ২.০-তে আচরণ যেমন একটি পরিস্থিতিতে আজকের সংস্করণ থেকে আলাদা হবে।
থেকে চার্লস 'নির্দেশাবলী , আমার প্রস্তাবিত বোঝার পরীক্ষা নিম্নরূপ হবে পরে:
# 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
এই কমান্ডগুলি কী পরিস্থিতিতে প্রয়োগ করা যেতে পারে তা এই ব্লগ পোস্টটি বুঝতেও সহায়তা করতে পারে: আপনার গিট ওয়ার্কিং ডিরেক্টরি থেকে মুছে ফেলা ফাইলগুলি সরানো ।
গিট 2.0 ( 2014-05-28 ) এর সাথে জিনিসগুলি পরিবর্তন হয়েছে :
-A
এখন ডিফল্ট--ignore-removal
।git add -u
এবং git add -A
কমান্ড লাইনের পাথ ছাড়াই একটি উপ-ডিরেক্টরিতে পুরো গাছটিতে কাজ করে।সুতরাং গিট 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 :/
ইন গীত 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 বা শূন্য হতে পারে।
পাথস্পেক কোনও ফাইলপথ বা বিন্দু হতে পারে '' বর্তমান ডিরেক্টরি নির্দেশ করতে।
গিট কীভাবে 'যোগ' করে সে সম্পর্কে গুরুত্বপূর্ণ পটভূমি জ্ঞান:
-A
। বিন্দুটি বর্তমান ডিরেক্টরিকে কঠোরভাবে উল্লেখ করে - এটি উপরে এবং নীচের দিকের পথগুলি বাদ দেয়।এখন, সেই জ্ঞানটি দেওয়া হলে আমরা উপরের উত্তরগুলি প্রয়োগ করতে পারি।
সীমাবদ্ধতা নীচে হয়।
-u
= --update
= ট্র্যাক করা ফাইলগুলিতে সাবসেট => অ্যাড = না; পরিবর্তন = হ্যাঁ; মুছুন = হ্যাঁ => যদি আইটেমটি ট্র্যাক করা হয়।-A
= --all
((এরূপ কোনও নয় -a
, যা সিনট্যাক্স ত্রুটি দেয়) = ২.০ এর আগে গিট না থাকলে সমস্ত চিহ্নবিহীন / ট্র্যাক করা ফাইলের সুপারসেট, যার মধ্যে যদি ডট ফাইলস্পেক দেওয়া থাকে তবে কেবলমাত্র সেই নির্দিষ্ট ফোল্ডার হিসাবে বিবেচনা করা হবে। => যদি আইটেমটি স্বীকৃত হয় git add -A
তবে এটি খুঁজে পেয়ে এটি যুক্ত করবে।পাথস্পেকটি নিম্নরূপ।
git add -A .
git add -u .
উপসংহারে, আমার নীতিটি হ'ল:
git status
।.gitignore
ফাইল আছে যাতে স্বাভাবিকভাবে কেবল আগ্রহের ফাইলগুলি অচিহ্নযুক্ত এবং / অথবা অপ্রজনিত।উভয়ই git add .
এবং git add -A
গিট এর নতুন সংস্করণগুলিতে সমস্ত নতুন, সংশোধিত এবং মোছা ফাইল মঞ্চস্থ করবে।
পার্থক্যটি হ'ল git add -A
"উচ্চতর, বর্তমান এবং উপ-ডিরেক্টরি" -এ ফাইলগুলি পর্যায়ক্রমে করে যা আপনার কাজের গিট সংগ্রহস্থলের অন্তর্ভুক্ত। কিন্তু এমনটি করা হলেও একটি git add .
শুধু এটা নিম্নলিখিত বর্তমান ডিরেক্টরির মধ্যে ফাইল এবং সাবডিরেক্টরি পর্যায়ে ( না মিথ্যা বাহিরে ফাইল, অর্থাত, উচ্চতর ডিরেক্টরি)।
এখানে একটি উদাহরণ:
/my-repo
.git/
subfolder/
nested-file.txt
rootfile.txt
যদি আপনার সাম্প্রতিক কাজ করা হয় /my-repo
, এবং আপনি কি rm rootfile.txt
, তারপর cd subfolder
, দ্বারা অনুসরণ git add .
, তাহলে এটি হবে না মুছে ফেলা ফাইল দ্বিতীয় পর্যায়ে। তবে git add -A
আপনি যেখানেই কমান্ডটি সম্পাদন করেছেন তা নিশ্চিত না করেই এই পরিবর্তনটি পর্যায়ক্রমে আসবে।
-A
বিকল্প, যোগ পরিবর্তন, এবং কাজ গাছ মেলে সূচক এন্ট্রি সরিয়ে ফেলা হয়।
গিট 2 এ -A
বিকল্পটি এখন ডিফল্ট।
গিট ডকুমেন্টেশন অনুসারে.
আপনি যে ডিরেক্টরিটিতে রয়েছেন সেখানে আপডেটের সুযোগ সীমাবদ্ধ করে এমন একটি যুক্ত করা হয়
<pathspec>
-এ বিকল্পটি ব্যবহার করার সময় যদি কোনও দেওয়া না হয় তবে পুরো কার্যক্ষম গাছের সমস্ত ফাইল আপডেট হয়ে যায় (বর্তমান ডিরেক্টরি এবং এর উপ-ডিরেক্টরিতে আপডেট সীমাবদ্ধ করতে ব্যবহৃত গিটের পুরানো সংস্করণ)।
আমি যুক্ত করব একটি জিনিস হ'ল যদি --interactive
বা -p
মোড ব্যবহার করা হয় তবে git add
এমন আচরণ করবে যে আপডেট ( -u
) পতাকা ব্যবহার হয়েছে এবং নতুন ফাইল যুক্ত না করা।
git add *
?