গিট সংগ্রহস্থলে উপস্থিত সমস্ত ফাইল তালিকাভুক্ত করুন


108

নির্দিষ্ট শাখায় কখনও উপস্থিত থাকা সমস্ত ফাইল তালিকাভুক্ত করার কি আপনার কোনও পরিষ্কার উপায় আছে?

উত্তর:


135

এটি স্ট্রারের সমাধানের সরলীকৃত প্রকরণ :

git log --pretty=format: --name-status | cut -f2- | sort -u

সম্পাদনা: মন্তব্যে আমাকে আরও কিছু শেখানোর জন্য জাকুবকে ধন্যবাদ, এই সংস্করণটির একটি সংক্ষিপ্ত পাইপলাইন রয়েছে এবং জিনিসগুলি ঠিক করার জন্য আরও বেশি সুযোগ দেয়।

git log --pretty=format: --name-only --diff-filter=A | sort -u

8
@ ডাস্টলিন: --ডিফ-ফিল্টার যোগ করুন = একটি বিকল্প (কেবলমাত্র যুক্ত ফাইলগুলির তালিকা করুন)। আপনি যদি পুনরায় নাম সনাক্তকরণ সক্ষম করে থাকেন এবং ইতিহাসে পুনরায় নামকরণ করেন তবে বর্তমান সংস্করণ (কেবলমাত্র যুক্ত ফাইলগুলিকে ফিল্টার না করে) ব্যর্থ হবে would আমি মনে করি আপনি কেবলমাত্র নাম - স্থিতির পরিবর্তে - নাম ব্যবহার করতে পারেন এবং পাইপলাইন থেকে 'কাট -f2-' অপসারণ করতে পারেন।
জাকুব নরবস্কি

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

আপনার যদি ফাইলের নামের চেয়ে কিছুটা বেশি তথ্য প্রয়োজন হয়: it গিট লগ - ব্যাখ্যাটি = ফর্ম্যাট: "% এইচ% আন [% সিডি]:% s" - নাম-কেবল | কাট -f2- | সাজান -u | , grep Filename.ext
Nitay

3
দ্রষ্টব্য: --allআপনার একক অনাথ টিপসের বেশি থাকলে আপনার প্রয়োজন হবে you উদাহরণস্বরূপ, এক রেপোতে একাধিক পৃথক ইতিহাস।
থারস্মমনার

2
--diff-filter=Aইতিমধ্যে বিদ্যমান ফাইলটি অনুলিপি করে তৈরি করা ফাইলগুলিকে উপেক্ষা করে, তাই এটি যুক্ত করা সর্বদা আপনার পছন্দসই নাও হতে পারে।
cmbuckley

13

কেবলমাত্র বর্তমান শাখায় নয় , রেপোতে কোনও ফাইলের নাম উপস্থিত ছিল কিনা তা যাচাই করার জন্য এটি সঠিক কাজ করে ।

git log --all --pretty=format: --name-only --diff-filter=A | sort - | grep fubar

3

আপনি দৌড়াতে পারেন git-log --name-status, যা এরকম কিছু প্রতিধ্বনিত করে:

commit afdbbaf52ab24ef7ce1daaf75f3aaf18c4d2fee0
Author: Your Name <your@email.com>
Date:   Tue Aug 12 13:28:34 2008 -0700

    Added test file.

A       test

তারপরে ফাইলগুলি যুক্ত করুন:

git-log --name-status | sed -ne 's/^A[^u]//p' | sort -u

2

এখানে দুটি দরকারী ওরফে রয়েছে: ফাইন্ডফিল ffএবং ফাইন্ডফিলিথকপিগুলি ffc:

# Find if one file ever had into repository
ff = "!git log --pretty=format: --name-status --all -M -B | sort -u | grep $1   #"
# The same as above but showing copied files
ffc = "!git log --pretty=format: --name-status --all -C -M -B | sort -u | grep $1 #"

আপনি তাদের সাথে ফাইলের নাম এবং ক্রিয়াকলাপ সম্পর্কে তথ্য পাবেন।

নমুনা ব্যবহার:

$ git ff create
A       database/migrations/2014_10_12_000000_create_users_table.php
A       database/migrations/2014_10_12_100000_create_password_resets_table.php
A       database/migrations/2015_05_11_200932_create_boletin_table.php
A       database/migrations/2015_05_15_133500_create_usuarios_table.php
D       database/migrations/2015_05_12_000000_create_users_table.php
M       database/migrations/2015_05_11_200932_create_boletin_table.php
R051    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_12_000000_create_users_table.php

$ git ffc create
A       database/migrations/2014_10_12_000000_create_users_table.php
A       database/migrations/2014_10_12_100000_create_password_resets_table.php
A       database/migrations/2015_05_11_200932_create_boletin_table.php
A       database/migrations/2015_05_15_133500_create_usuarios_table.php
C052    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_11_210246_create_boletin_nosend_table.php
D       database/migrations/2015_05_12_000000_create_users_table.php
M       database/migrations/2015_05_11_200932_create_boletin_table.php
R051    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_12_000000_create_users_table.php
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.