ট্র্যাক হচ্ছে এমন ফাইলগুলির একটি তালিকা আমি কীভাবে গিট করতে পারি?


535

কমান্ড লাইন গিট ব্যবহার করে, কীভাবে আমি গিটটি সংগ্রহস্থলটিতে ট্র্যাক করা ফাইলগুলির একটি তালিকা প্রদর্শন করতে পারি?



2
আমি বিশ্বাস করি। তবে এর আরও ভাল উত্তর পেলে এটিকে ডুপ হিসাবে চিহ্নিত করা ঠিক হবে না।
লিন্ডে

5
সমান্তরাল মহাবিশ্বে, এই প্রশ্নটি সমস্ত উত্তরগুলি সহ কীভাবে মিল রয়েছে তা অস্বাভাবিক, তবুও প্রতিটি তার নিজস্ব স্বতন্ত্র স্বাদযুক্ত।
জেফ

উত্তর:


628

আপনি যদি বর্তমানে শাখার অধীনে ট্র্যাক করা সমস্ত ফাইলের তালিকা করতে চান তবে আপনি masterএই আদেশটি ব্যবহার করতে পারেন:

git ls-tree -r master --name-only

আপনি যদি এমন ফাইলগুলির একটি তালিকা চান যা সর্বদা বিদ্যমান (যেমন মুছে ফেলা ফাইলগুলি সহ):

git log --pretty=format: --name-only --diff-filter=A | sort - | sed '/^$/d'

61
গিট এলএস-ট্রি-আর হেড - নাম ব্যবহার করুন কেবলমাত্র আপনি যদি বর্তমান শাখার ফাইল
তালিকাবদ্ধ

3
ডিরেক্টরিগুলি তালিকাভুক্ত করা হয় না কেন?
শুজেং

13
@ নিকোলাসলাইকইভারসেন - gitডিরেক্টরিগুলি সরাসরি সংস্করণে দেয় না। পরিবর্তে এটি ফাইল এবং তাদের পাথ সংরক্ষণ করে। ls-treeসমস্ত সংস্করণযুক্ত ফাইল আউটপুট হবে। এই পার্থক্যটি আরও ভালভাবে বুঝতে, একটি খালি ডিরেক্টরিতে স্টেজ করার চেষ্টা করুন git। খালি ডিরেক্টরিটি কখনই মঞ্চস্থ পরিবর্তনগুলিতে প্রদর্শিত হবে না। যেমন একটি খালি ডিরেক্টরি সংস্করণ করার একমাত্র উপায় হ'ল ডিরেক্টরিটির অধীনে কোনও ফাইলকে সংস্করণ করা। সংস্করণ নিয়ন্ত্রণে আপনার যেমন খালি স্থানধারক ডিরেক্টরি প্রয়োজন সেখানে ব্যবহারের ক্ষেত্রে আপনি ডিরেক্টরিটির অধীনে একটি ডামি ফাইল এবং সংস্করণ তৈরি করতে পারেন। আমি ব্যাখ্যা স্পষ্ট আশা করি।
টাক্সডুড

2
কেবলমাত্র নোট করুন, মঞ্চ অঞ্চলে ট্র্যাক করা ফাইলগুলি ls-tree masterদেখায় না ।
nn0p

এতে অনেকগুলি উপ-ডিরেক্টরি এবং ফাইল অন্তর্ভুক্ত থাকলে কেবলমাত্র শীর্ষ-স্তরের ডিরেক্টরিটি দেখানো সম্ভব?
ব্লেজার্ড

191

গিট দ্বারা পরিচালিত ফাইলগুলি দ্বারা প্রদর্শিত হয় git ls-files। এর ম্যানুয়াল পৃষ্ঠাটি দেখুন।


4
এটি কেবল বর্তমান ডিরেক্টরিতে বা নীচে কেবল ফাইলগুলি দেখায় বলে মনে হচ্ছে।
লাইল জেড

11
ম্যানুয়াল পৃষ্ঠার প্রাসঙ্গিক বিভাগগুলি অন্তর্ভুক্ত করতে আমি যদি এটি সম্পাদনা করি তবে মনে মনে?
নাথান বাসানিজ

1
@ নাথানবাসানিজ সম্ভবত আপনি সেই তথ্য দিয়ে আরও একটি উত্তর যুক্ত করতে পারেন।
হোসে কাস্ত্রো

@ লাইলজেড সম্ভবত এটি ls... বাls -R
ফ্লো 2 কে

1
@ লাইলজেড এছাড়াও, এই আচরণটি একইরকম git ls-tree- এটি এর সাথে সম্পর্কিত pwd
ফ্লো 2 কে

18

গৃহীত উত্তরগুলি কেবল বর্তমান ডিরেক্টরিতে থাকা ফাইলগুলিতে দেখায়। দেখানো সব (বর্তমান ডালে) যে প্রতিশ্রুতিবদ্ধ হয়েছে ট্র্যাক ফাইল, ব্যবহারের

git ls-tree --full-tree --name-only -r HEAD
  • --full-tree কমান্ডটি এমনভাবে চালিত করে যেন আপনি রেপোর রুট ডিরেক্টরিতে ছিলেন।
  • -rউপ-ডিরেক্টরিতে পুনরাবৃত্তি করে। এর সাথে সম্মিলিত --full-tree, এটি আপনাকে সমস্ত প্রতিশ্রুতিবদ্ধ, ট্র্যাক করা ফাইল দেয়।
  • --name-only আপনি যখন কেবল ফাইলের পাথগুলি চান তখন এর জন্য SHA / অনুমতি সম্পর্কিত তথ্য সরিয়ে দেয়।
  • HEADআপনি কোন শাখার জন্য ট্র্যাকড, প্রতিশ্রুতিবদ্ধ ফাইলগুলির তালিকা চান তা নির্দিষ্ট করে। আপনি এটি masterবা অন্য কোনও শাখার নাম পরিবর্তন HEADকরতে পারেন , তবে আপনি এখনই যা প্রতিশ্রুতিটি পরীক্ষা করেছেন তা।

~ সদৃশ প্রশ্নের https://stackoverflow.com/a/8533413/4880003 এর গৃহীত উত্তর থেকে এই পদ্ধতি ।


ধন্যবাদ! এটি খালি রেপোর জন্যও কাজ করে।
hzpc-joostk

5

আপনি এটি দিয়ে রঙিন আউটপুট চাইবেন।

আমি বর্তমান শাখার বর্তমান ডিরেক্টরিতে ট্র্যাক করা ফাইল এবং ডিরেক্টরি তালিকাভুক্ত করার জন্য এই ওয়ান-লাইনারটি ব্যবহার করি:

ls --group-directories-first --color=auto -d $(git ls-tree $(git branch | grep \* | cut -d " " -f2) --name-only)

আপনি এটি একটি উপন্যাস হিসাবে যুক্ত করতে চাইতে পারেন:

alias gl='ls --group-directories-first --color=auto -d $(git ls-tree $(git branch | grep \* | cut -d " " -f2) --name-only)'

আপনি যদি পুনরাবৃত্তভাবে ফাইলগুলি তালিকা করতে চান:

'ls' --color=auto -d $(git ls-tree -rt $(git branch | grep \* | cut -d " " -f2) --name-only)

এবং একটি উপনাম:

alias glr="'ls' --color=auto -d \$(git ls-tree -rt \$(git branch | grep \\* | cut -d \" \" -f2) --name-only)"

glrওরফে আপনি একটি বিট অদ্ভুত লাগছিল শর্ত তাই আমি একটি সংস্করণ প্রথম ওরফে আপনার দেওয়া বিন্যাস সঙ্গে আরো সামঞ্জস্যপূর্ণ করেছেন: alias glr='ls --color=auto -d $(git ls-tree -rt $(git branch | grep \* | cut -d " " -f2) --name-only)'git version 2.20.1
দেবিয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.