গর্তের তুলনায় গিট আলাদা


1355

বর্তমান কর্মক্ষম গাছটিতে আন-স্ট্যাশিং করা পরিবর্তনগুলি কীভাবে দেখতে পাব? সেগুলি প্রয়োগের আগে কী কী পরিবর্তন করা হবে তা আমি জানতে চাই!



1
সম্পর্কিত পোস্ট এখানে
আরবিটি

উত্তর:


1868

অতি সাম্প্রতিক স্ট্যাশ দেখুন:

git stash show -p

একটি নির্বিচার স্ট্যাশ দেখুন:

git stash show -p stash@{1}

git stashম্যানাপেজগুলি থেকে :

ডিফল্টরূপে, কমান্ডটি ডিফস্টেটটি দেখায়, তবে এটি গিট ডিফের জন্য পরিচিত যে কোনও বিন্যাস গ্রহণ করবে (উদাহরণস্বরূপ, প্যাচ ফর্মের দ্বিতীয় সাম্প্রতিক স্ট্যাশ দেখতে গিট স্ট্যাশ শো -p স্ট্যাশ @ {1))।


72
stash@{0}ডিফল্ট; আপনি যদি পূর্ববর্তী স্ট্যাশগুলি দেখতে চান তবে আপনার কেবলমাত্র একটি যুক্তির প্রয়োজন।
ক্যাসাবেল

52
ঠিক। আমি কেবল এটি সরবরাহ করেছিলাম যাতে এটি ছাড়াও অন্যান্য স্ট্যাশগুলির দিকে কীভাবে নজর দেওয়া যায় তা পরিষ্কার {0}
অ্যাম্বার

74
এটি স্ট্যাশ এবং বর্তমান কর্মরত ডিয়ারের মধ্যে পার্থক্য দেখাবে না তবে স্ট্যাশ এবং এটির মূল পিতামাতার মধ্যে। রাইট? ম্যানপেজ থেকে: "স্ট্যাশ করা রাজ্য এবং এর মূল পিতামাতার মধ্যে পার্থক্য হিসাবে স্ট্যাশ-এ রেকর্ডকৃত পরিবর্তনগুলি দেখান" "
ম্যাগনে

14
@ অ্যাম্বার - সত্য, যদিও আপনার বর্তমান কার্যকারী গাছটি নোংরা থাকলে এটি গুরুত্বপূর্ণ এবং এটি আরও জটিল করে তুলেছে। আমি সেই কোণ থেকে এসেছি, এবং নীচে আমার উত্তরে আমি ভাগ করে নেওয়ার একটি পদ্ধতি পেয়েছি।
ম্যাগনে

6
কী -pদাঁড়ায়?
জেরাল্ড

308

অতি সাম্প্রতিক স্ট্যাশ দেখতে:

git stash show -p

একটি নির্বিচার স্ট্যাশ দেখতে:

git stash show -p stash@{1}

এছাড়াও, আমি কোনও শাখার সাথে স্ট্যাশ তুলনা করতে গিট ডিফ ব্যবহার করি।

তুমি ব্যবহার করতে পার:

git diff stash@{0} master

শাখা মাস্টারের তুলনায় সমস্ত পরিবর্তন দেখতে see


অথবা আপনি ব্যবহার করতে পারেন:

git diff --name-only stash@{0} master

কেবলমাত্র পরিবর্তিত ফাইলের নামগুলি সহজেই সন্ধান করতে।


10
এটি নির্দিষ্ট প্রশ্নের উত্তর দেয় না। যদি আপনি মাস্টার থেকে স্ট্যাশ তৈরি করে থাকেন (পরে কাজ সংরক্ষণের জন্য), তবে মাস্টারের বিষয়ে অন্য কাজের জন্য কিছু প্রতিশ্রুতিবদ্ধ করুন, তাহলে git diff stash@{0} masterআপনি বর্তমান মাস্টারের বিরুদ্ধে আপনার স্ট্যাশগুলির ভিন্নতা পাবেন (যার মধ্যে স্ট্যাশ পরে মাস্টারের কাজ করা অন্তর্ভুক্ত রয়েছে) তৈরি করা হয়েছিল), স্ট্যাশ পরিবর্তিত হবে এমন ফাইল / লাইন নয়, যা প্রশ্নটি।
টম ডি লিউ

52
আমি আনন্দিত আপনি যদি প্রশ্নের উত্তরটি সঠিক প্রশ্নের উত্তর নাও দিয়েছিলেন তবে আপনি উত্তর দিয়েছেন। এটি আরও তথ্য দিয়েছে এবং আমি মনে করি যে কোনও শাখার মধ্যে কীভাবে আলাদা হওয়া যায় এবং অন্য যে কোনও শাখার সাথে আপনি এটির তুলনা করতে চান তা কীভাবে জেনে রাখা ভাল। আমি কেবলমাত্র নামটির পতাকাটি শিখতে পছন্দ করেছি :)
রেবিকাঃ ওয়াটারবারি

6
এটি একটি কাস্টম ডিফ ভিউয়ার ব্যবহার করে পার্থক্যগুলিও দেখতে দেয়, যেমনgit difftool --tool=... stash@{0} HEAD
আন্দ্রে হল্জনার

9
@ টমডেলিউ ভাল পর্যবেক্ষণ এবং একটি গুরুত্বপূর্ণ বিষয়। কোনও স্ট্যাশ আইটেমটিকে তার পিতামাতার সাথে তুলনা করতে, এটি কাজ করে বলে মনে হচ্ছে:git diff stash@{0}^ stash@{0}
এরিকপ্রাইস

1
পাশাপাশি, আপনি git diff stash@{0} master -- filenameএকটি নির্দিষ্ট ফাইলের পরিবর্তনগুলি পেতে ফাইলের নাম যুক্ত করতে পারেন ।
ডেভিড

104

যদি আপনার স্ট্যাশেড পরিবর্তিত শাখার উপর ভিত্তি করে পরিবর্তন করা হয় তবে এই আদেশটি কার্যকর হতে পারে:

git diff stash@{0}^!

এটি প্রতিশ্রুতিবদ্ধ যে এর উপর ভিত্তি করে বিরুদ্ধে স্ট্যাশ তুলনা করে।


তাই ভাল আমি উপনাম যোগ ~/.gitconfig:laststash = diff stash@{0}^!
sbeam

5
নিখুঁত জুটি: git difftool stash^!প্রতিশ্রুতির বিরুদ্ধে সর্বশেষ git difftool stash HEAD
স্ট্যাশগুলির ভিন্নতার


"গিট ডিফ স্ট্যাশ @ {0} ^!" "গিট ডিফ ডিফ স্ট্যাশ @ {0} ^ স্ট্যাশ @ {0} ~ 1 ash স্ট্যাশ @ {0} ~ 2 ......." এ সিদ্ধ হয় তবে গিট ডিফ কেবল মাত্র 2 টি কমিট নেয় তাই এটি স্ট্যাশের মধ্যে পার্থক্য দেখায় @ {0} এবং ^ স্ট্যাশ @ {0} ~ 1 এবং দেখায় 2nd 2 commit কমিটের শুরুতে কোনও আলাদা হয় না এবং গিট এটিকে উপেক্ষা করে।
নাগা কিরণ

আমি আমার পছন্দসই ডিফ সরঞ্জামটি ব্যবহার করতে সক্ষম হয়ে এই সংস্করণটিকে পছন্দ করি (অবশ্যই তুলনার বাইরে!)। উপরোক্ত মন্তব্যে উল্লিখিত বিকল্প "গিট ডিফ স্ট্যাশ @ {এক্স} ^ স্ট্যাশ @ {এক্স}" এর বিপরীতে এটি এই স্ট্যাশের পরিবর্তনটিও দেখায় যা মূলত প্রশ্ন, যা কেবল স্ট্যাশড ডিফের চেয়ে বেশি দেখায়।
ব্যবহারকারী 107172

44

যদি আপনার কার্যকরী গাছটি নোংরা হয় তবে আপনি প্রথমে নোংরা কাজকারী গাছটি প্রতিশ্রুতিবদ্ধ করে স্ট্যাশের সাথে তুলনা করতে পারেন এবং তারপরে এটি স্ট্যাশের সাথে তুলনা করতে পারেন। এরপরে, আপনি নোংরা কাজের গাছের সাথে প্রতিশ্রুতিটি পূর্বাবস্থায় ফেরাতে পারেন (যেহেতু আপনি আপনার কমিট লগে এই নোংরা প্রতিশ্রুতি রাখতে চান না)।

একে অপরের সাথে দুটি স্ট্যাশের তুলনা করতে আপনি নিম্নলিখিত পদ্ধতিটিও ব্যবহার করতে পারেন (সেক্ষেত্রে আপনি প্রথমে কেবল একটি স্ট্যাশকে পপ করুন)।

  • আপনার নোংরা কাজ গাছ প্রতিশ্রুতিবদ্ধ:

    git add .
    git commit -m "Dirty commit"
    
  • সেই প্রতিশ্রুতি দিয়ে স্ট্যাশকে আলাদা করুন:

    git diff HEAD stash@{0}
    
  • এরপরে, আপনি এই প্রতিশ্রুতিটি ফিরিয়ে দিতে পারেন এবং এটিকে কার্যক্ষম ডিয়ারে রেখে দিতে পারেন:

    git reset --soft HEAD~1
    git reset .
    

এখন আপনি আপনার স্ট্যাশ দিয়ে নোংরা কাজের গাছটিকে আলাদা করেছেন এবং আপনি যেখানে প্রথম দিকে ছিলেন সেখানে ফিরে এসেছেন।


এটি করার কোনও উপায় কি তবে কেবলমাত্র স্টাইশের মধ্যে থাকা ফাইলগুলির দ্বারা পরিবর্তিত হওয়া ফাইলগুলির একটি ভিন্নতা দেখতে পাওয়া যায়?
লেগওয়েজলে

ইন 2020 এই অনেক সহজ হয়; আমার আপ-টু-ডেট উত্তরটি দেখুন
ডেভিড ডিপ্রস্ট

আকর্ষণীয়, আমি সম্পর্কে জানতাম না git stash show -l । এটি কাজের (নোংরা) অনুলিপিটির বিপরীতে সর্বশেষতম স্ট্যাশকে পৃথক করে? না পেয়ে আপনি কীভাবে এটি ব্যবহার করবেন error: switch l requires a value?
ম্যাগনে

হ্যাঁ, এটি (সম্ভবত নোংরা) কাজের কপির সাথে পৃথক হয়। আপনি কেবল প্রবেশ করে এটি ব্যবহার করুন git stash show -l। কেন এটি আপনার পক্ষে কার্যকর হয় না, আমি কেবল অনুমান করতে পারি যে আপনি গিটের পুরানো সংস্করণে থাকতে পারেন? আমি গিটার v2.20.1 এ আছি এবং এটি ত্রুটিহীনভাবে নির্বিঘ্নে কাজ করে।
ডেভিড ডিপ্রস্ট

25

@ ম্যাগনের উত্তর হ'ল (খুব দেরিতে) তারিখ যা প্রশ্নের সর্বাধিক নমনীয় / দরকারী ব্যাখ্যার উত্তর দেয় তবে এটি প্রয়োজনের তুলনায় মোটামুটি জটিল। প্রতিশ্রুতিবদ্ধ ও পুনরায় সেট করার পরিবর্তে, কেবল আপনার কার্যকরী অনুলিপি স্ট্যাশ করুন, তুলনা করুন, এবং তারপরে স্ট্যাশ করুন।

git stash save "temp"
git diff stash@{0} stash@{1}
git stash pop

এটি আপনাকে অস্থায়ীভাবে আপনার ওয়ার্কিং ফোল্ডারের পরিবর্তনগুলিকে স্ট্যাশ স্ট্যাকের শীর্ষে পরিণত করে স্ট্যাশ স্ট্যাকের শীর্ষ এবং আপনার কার্যকারী ফোল্ডারের মধ্যে পার্থক্য দেখায় (স্ট্যাশ @ {0}), উপরের মূলটিকে নীচে রেখে (স্ট্যাশ @ {1}) ) তারপরে 'নতুন সেট' পজিশনে আসল শীর্ষটি ব্যবহার করে তুলনা করুন যাতে আপনি আপনার বর্তমান কাজের উপরে এটি প্রয়োগ করে যে পরিবর্তনগুলি দেখতে পাবেন।

"তবে আমার যদি কোনও বর্তমান কাজ না হয়?" তাহলে আপনি স্বাভাবিক বিরক্তিকর ক্ষেত্রে রয়েছেন। শুধু অ্যাম্বারের উত্তরটি ব্যবহার করুন

git stash show

বা @ czerasz এর উত্তর

git diff stash@{0}

বা স্বীকার করুন যে স্ট্যাশিং এবং আনস্ট্যাশ করা যেকোন উপায়ে দ্রুত এবং সহজ, কেবল পরিবর্তনগুলি আনস্টাশ করে সেগুলি পরীক্ষা করুন। আপনি যদি এই মুহুর্তে না চান তবে তাদের (বর্তমান সূচি / কার্যকারী ফোল্ডার পরিবর্তন) দূরে ফেলে দিন। পূর্ণ যে

git stash apply
git diff
git reset
git checkout

3
এই সহজ পদ্ধতির (স্ট্যাশ এবং তারপরে অন্য স্ট্যাশের সাথে তুলনা করা) নিরাপদ এবং সহজেই বোঝা যায়। কিছু ব্যবহারের ক্ষেত্রে আপনি লতিচিহ্নবিহীন ফাইলগুলি স্ট্যাশ করতেও পারেনgit stash save -u
ম্লেওনার্ড

19

এটি আমার জন্য গিট সংস্করণ 1.8.5.2 এ কাজ করে:

git diff stash HEAD

2
বিভ্রান্তিকর! প্রশ্নটি হ'ল: কীভাবে আমি দেখতে পাচ্ছি যে আন-স্ট্যাশিংয়ের ফলে বর্তমান কার্যকারী গাছের পরিবর্তনগুলি হবে? এটি স্ট্যাশ এবং হেডের মধ্যে পার্থক্য দেখায় যা প্রয়োগ করা হবে তার চেয়ে অনেক আলাদা হতে পারে git stash apply
মাইকজানসেন

দয়া করে এই প্রশ্নটি আরও পড়ুন "আমি এগুলি প্রয়োগ করার আগে কী পরিবর্তন করা হবে তা জানতে চাই!"। আমি এটির একটি দ্রুত উত্তর দিচ্ছি।
yerlilbilgin

এছাড়াও আপনি দেখতে পাচ্ছেন যে সমস্ত অন্যান্য উত্তরগুলি কোনওভাবেই স্ট্যাশের বিরুদ্ধে বর্তমান মাথা (বা কার্যকরী সেট) আলাদা করতে হবে about কেন কেবল আমার উত্তর বিভ্রান্তিকর? এটা ন্যায্য নয়।
yerlilbilgin

@yerlilbilgin নীচে আপনার উত্তরে আমার প্রতিক্রিয়া দেখুন।
মাইকজ্যানসেন

আমরা হেডকে বাদ দিতে পারি, এটি ডিফল্টরূপে, তাই না?
আল.জি.

10

সেক্ষেত্রে কার্যক্ষম গাছ এবং স্ট্যাশে কোনও ফাইলের তুলনা করতে নীচের কমান্ডটি ব্যবহার করুন

git diff stash@{0} -- fileName (with path)

9

যদি আপনার কাছে ডিফের জন্য সরঞ্জাম থাকে (তুলনার বাইরেও)

git difftool stash HEAD

1
বিভ্রান্তিকর! প্রশ্নটি হ'ল: কীভাবে আমি দেখতে পাচ্ছি যে আন-স্ট্যাশিংয়ের ফলে বর্তমান কার্যকারী গাছের পরিবর্তনগুলি হবে? এটি স্ট্যাশ এবং হেডের মধ্যে পার্থক্য দেখায় যা প্রয়োগ করা হবে তার চেয়ে অনেক আলাদা হতে পারে git stash apply
মাইকজানসেন

1
আপনি যদি ভাবেন যে এটি বিভ্রান্তিকর, দয়া করে অন্য সমস্ত উত্তর চেক করুন। তা তো ন্যায্য নয়!
ইয়ারলিলবিলগিন

1
আপনি লক্ষ করবেন যে আমি সেই একই মন্তব্যটিকে অন্য উত্তরের অনুলিপি করেছিলাম যা ঠিক বিভ্রান্তিমূলক ছিল (প্রায় একই উত্তর)। ইতিমধ্যে একই উত্তর ছিল এমন অন্যান্য উত্তর আমি একা রেখেছি। আপনি যদি বুঝতে পারেন যে গিট স্ট্যাশ কীভাবে কাজ করে তবে বুঝতে পারবেন যে হেডের বিরুদ্ধে স্ট্যাশকে আলাদা করা যা প্রয়োগ হয় তা নয় (যা ওপি জিজ্ঞাসা করে)। প্রকৃত "স্ট্যাশ" স্ট্যাশ প্রতিশ্রুতি এবং তার আগে যা ছিল তার মধ্যে পার্থক্য। এই প্যাচটি তখন হেডের জন্য প্রয়োগ করা হয়। সুতরাং আপনি যদি ওপি কী জিজ্ঞাসা করতে চান তা জানতে হলে অবশ্যই তার আগে স্ট্যাশ এবং কমিটের মধ্যে পার্থক্য দেখাতে হবে, যা সঠিক উত্তরগুলি করে।
মাইকজ্যানসেন

1
এটি অন্যান্য (অপ্রয়োজনীয়) দীর্ঘ উত্তরগুলির তুলনায় আরও সরাসরি প্রশ্নের উত্তর দেয় এবং অপসারণের সংক্ষিপ্ত বিবরণীতে ওপি যা বলেছিল ঠিক তা করে HEAD। আমি হেড অপসারণ করতে @ ইয়ারলিলবিলগিনের উত্তরটি সংশোধন করতে পারলাম তবে আমি মনে করি যে যে কেউ গিট ব্যবহার করেন তারা সেই অংশটি অনুধাবন করতে পারেন এবং আমার উত্তরটি দীর্ঘায়িত করা এটিকে কম পঠনযোগ্য করে তুলবে। @Yerlibilgin এর জন্য কোনও দোষ নেই।
শ্রীধর সারনোবাত

4

কোনও কিছু না সরানো ছাড়া এটি করার একটি উপায় হ'ল patchগিট ডিফের (মূলত ইউনিফাইড ডিফস) পড়তে পারে সেই সুযোগটি গ্রহণ করা

git stash show -p | patch -p1 --verbose --dry-run

এটি আপনাকে প্যাচ সাধারণভাবে কী করবে তার একটি ধাপে ধাপে পূর্বরূপ দেখায় show এর সাথে যুক্ত হওয়া সুবিধাটি হ'ল প্যাচটি কার্যত গাছে প্যাচটি লেখার হাত থেকে নিজেকে আটকাবে না, যদি কোনও কারণে আপনার যদি সত্যিই কমিটিং-আগে-সংশোধন করা সম্পর্কে গিট বন্ধ করার প্রয়োজন হয়, এগিয়ে যান এবং - ড্রাই - ভার্বোজ নির্দেশাবলী চালান এবং অনুসরণ করুন।


2

আমি এই থ্রেড এবং এই একটিতে যা শিখেছি তার সাথে মিল রেখে , যখন আমি "স্ট্যাশের ভিতরে কী আছে" দেখতে চাই, আমি প্রথমে চালিত:

git stash show stash@{0}

এটি দেখিয়ে দেবে যে কোন ফাইলগুলি সংশোধন করা হয়েছিল। তারপরে, একটি ডিফ্টলটিতে একটি দুর্দান্ত ভিজ্যুয়াল পার্থক্য পেতে, আমি এটি করি:

git difftool --dir-diff stash@{0} stash@{0}^

এটি তার পিতামাতার বিরুদ্ধে প্রদত্ত স্ট্যাশগুলির একবারে সমস্ত পার্থক্য প্রদর্শন করবে।

আপনি এতে ডিফ ডিভাইসগুলি কনফিগার করতে পারেন ~/.gitconfig, যেমন মেল্ড সহ :

...
[diff]
    tool = meld

1

এফডাব্লুআইডাব্লু এটি অন্য সমস্ত উত্তরগুলির জন্য কিছুটা রিডানডান্ট হতে পারে এবং এটি গ্রহণযোগ্য উত্তরের সাথে মিল রয়েছে যা দাগযুক্ত; তবে সম্ভবত এটি কাউকে সাহায্য করবে।

git stash show --helpআপনার যা প্রয়োজন তা আপনাকে দেবেন; স্ট্যাশ শো তথ্য সহ।

[<স্ট্যাশ>] দেখান

স্ট্যাশড স্টেট এবং এর মূল পিতামাতার মধ্যে পার্থক্য হিসাবে স্ট্যাশ-এ রেকর্ডকৃত পরিবর্তনগুলি দেখান। যখন কোনও দেওয়া হয় না, সর্বশেষটি প্রদর্শন করে। ডিফল্টরূপে, কমান্ডটি ডিফস্টেটটি দেখায়, তবে এটি গিট ডিফের জন্য পরিচিত যে কোনও বিন্যাস গ্রহণ করবে (উদাহরণস্বরূপ, প্যাচ ফর্মের দ্বিতীয় সাম্প্রতিক স্ট্যাশ দেখতে গিট স্ট্যাশ শো -p স্ট্যাশ @ {1))। আপনি ডিফল্ট আচরণ পরিবর্তন করতে stash.showStat এবং / অথবা stash.showPatch কনফিগার ভেরিয়েবল ব্যবহার করতে পারেন।


1

তিনি স্ট্যাশ তালিকা

git stash list 
stash@{0}: WIP on feature/blabla: 830335224fa Name Commit
stash@{1}: WIP on feature/blabla2: 830335224fa Name Commit 2

সুতরাং স্ট্যাশ নম্বরটি পান এবং করুন:

আপনি করতে পারেন:

 git stash show -p stash@{1}

তবে আপনি যদি কোনও ভিন্নতা চান (স্ট্যাশ দেখানোর জন্য এটি আলাদা, এই কারণেই আমি এই উত্তরটি লিখি your Diffআপনার শাখায় বর্তমান কোডটি বিবেচনা করুন এবং showআপনি কী প্রয়োগ করবেন তা কেবল দেখান )

তুমি ব্যবহার করতে পার:

git diff stash@{0}

অথবা

git diff stash@{0} <branch name>

আর একটি আকর্ষণীয় কাজ হ'ল:

git stash apply
git stash apply stash@{10}

এটি স্ট্যাশটিকে তালিকা থেকে অপসারণ না করে প্রযোজ্য, আপনি git checkout .এই পরিবর্তনগুলি সরাতে পারেন বা আপনি যদি git stash drop stash@{10}তালিকা থেকে কোনও স্ট্যাশ সরিয়ে খুশি হন।

এখান থেকে আমি কখনই git stash popকোনও সংমিশ্রণ ব্যবহার এবং ব্যবহার করার পরামর্শ দিচ্ছি না git stash applyএবং git stash dropযদি আপনি ভুল শাখায় কোনও স্ট্যাশ প্রয়োগ করেন ... তবে কখনও কখনও আপনার কোডটি পুনরুদ্ধার করা কঠিন।


1

স্ট্যাশের সাথে আপনি কী তুলনা করতে চান তার উপর নির্ভর করে (স্থানীয় কার্যনির্বাহী গাছ / পিতামাতার প্রতিশ্রুতি / প্রধান প্রতিশ্রুতি), সেখানে বেশ কয়েকটি কমান্ড পাওয়া যায় যার মধ্যে ভাল পুরাতন git diffএবং আরও নির্দিষ্ট git stash show:

╔══════════════════════╦═══════════════════════════════╦═══════════════════╗
║ Compare stash with ↓ ║ git diff                      ║ git stash show    ║
╠══════════════════════╬═══════════════════════════════╬═══════════════════╣
║ Local working tree   ║ git diff stash@{0}            ║ git stash show -l ║
║----------------------║-------------------------------║-------------------║
║ Parent commit        ║ git diff stash@{0}^ stash@{0} ║ git stash show -p ║
║----------------------║-------------------------------║-------------------║
║ HEAD commit          ║ git diff stash@{0} HEAD       ║   /               ║
╚══════════════════════╩═══════════════════════════════╩═══════════════════╝

যদিও git stash showপ্রথম দর্শনে কেমন লাগে আরো ব্যবহারকারী বন্ধুত্বপূর্ণ, git diffআসলে আরো শক্তিশালী এটা আরো একটি শ্রেনীর পরিবর্তন জন্য ফাইলের নামের উল্লেখ অনুমতি দেয় হয়। আমি ব্যক্তিগতভাবে আমার zsh git প্লাগইনে এই সমস্ত কমান্ডের জন্য উপকরণ স্থাপন করেছি ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.