গিটে "চীনামাটির বাসন" শব্দটির অর্থ কী?


433

গিটার ডকুমেন্টেশনে "চীনামাটির বাসন" শব্দটি মাঝে মধ্যে উপস্থিত হয়। এর মানে কী?

উত্তর:


515

"চীনামাটির বাসন" এমন উপাদান যা থেকে সাধারণত টয়লেট তৈরি করা হয় (এবং কখনও কখনও অন্যান্য ফিক্সচার যেমন ওয়াশবাসিন) ins এটি "নদীর গভীরতানির্ণয়" (প্রকৃত পাইপ এবং ড্রেন) থেকে পৃথক, যেখানে চীনামাটির বাসন নদীর গভীরতানির্ণয়কে আরও বেশি ব্যবহারকারী-বান্ধব ইন্টারফেস সরবরাহ করে।

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


45
আমি মনে করি উত্তরটি আমার কাছে বোধগম্য হয়েছে তবে আমি আবারও ধরে নিচ্ছি যে লিনাস এই শব্দটি তৈরি করেছিলেন, তাই আমি যখন তার পৃথিবীটি বিশ্লেষণ করছিলাম তখন আমার মস্তিষ্ককে আরও কিছুটা সরাসরি এবং কৃপণ হতে সামঞ্জস্য করি। :)
নিক ক্লাউয়ার

58
আপনি যদি অবাক হন যে লিনাস তার নদীর গভীরতানির্ণয় পরিবহণের জন্য ব্যবহৃত হবে এমন সম্ভাব্য ধারাগুলি কল্পনা করছিল কিনা। ওপেন সোর্স কোডের জন্য নদীর গভীরতানির্ণা করা একটি নোংরা কাজ তবে কারও কাছে এটি করা উচিত।
ইভান প্লেস

36
এবং আমাদের মধ্যে কয়েকজন মনে করেন যে প্রকৃত গিট চীনামাটির বাসন নদীর গভীরতানির্ণয় রঙের চেয়ে বেশি রঙের একটি স্তর।
হেমফ্লিট

14
নীচে অন্য উত্তরগুলি আরও সত্য এবং আরও দরকারী
চারনি কায়ে

14
অন্য কেউ কি এই হাস্যকর খুঁজে পায়?
বেন উইল্ড

446

আরও গুরুত্বপূর্ণ বিষয়, "চীনামাটির বাসন" শব্দটি আউটপুট সহ উচ্চ-স্তরের কমান্ডগুলিতে প্রযোজ্য :

  • মানুষের দ্বারা পঠনযোগ্য হতে বোঝায়
  • পার্স করা উচিত নয়
  • পরিবর্তন / বিবর্তনে সংবেদনশীল

এটি কী: যদি আপনি স্ক্রিপ্ট করেন তবে স্থিতিশীল আউটপুট সহ আপনার যদি সম্ভব প্লাম্বিং কমান্ড ব্যবহার করা উচিত । চীনামাটির বাসন কমান্ড নয়।

তবে, আপনি কোনও পোরস্লেইন কমান্ডের আউটপুট ব্যবহার করতে পারেন যা --porcelainস্ক্রিপ্টে একটি বিকল্প রয়েছে (নীচে দেখুন), যেমন:

git status --porcelain
git push --porcelain
git blame --porcelain

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

দেখুন " আমি প্রোগ্রামেটিক্যালি কিভাবে নির্ধারণ না হলে স্বাধীন পরিবর্তন হল? " চীনামাটির বাসন বেশী পরিবর্তে নদীর গভীরতানির্ণয় কমান্ড ব্যবহার করে একটি উদাহরণ হিসাবে।


দ্রষ্টব্য: একটি চীনামাটির কমান্ডের একটি --porcelainবিকল্প থাকতে পারে।
উদাহরণস্বরূপ:, git status --porcelainযা পার্স হওয়ার অর্থ একটি আউটপুট নির্ধারণ করে ।

--porcelain

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

উপরে উল্লিখিত থ্রেড:

এটা আমার কিছুটা দোষ।
"স্বল্প অবস্থা" ফর্ম হয় মানুষের চক্ষুগোলক জন্য বোঝানো, এবং junio দ্বারা পরিকল্পনা করা হয়েছিল।
কিছু লোক স্ক্রিপ্টযোগ্য স্থিতির আউটপুটও চেয়েছিল, তাই আমি --porcelainএকই ফর্ম্যাটে একটি " " চড় মারলাম যা সম্পর্কিত প্যাথনাম এবং রঙিনকরণের মতো কনফিগারযোগ্য বৈশিষ্ট্যগুলি বন্ধ করে দেয় এবং একটি আবদ্ধ প্রতিশ্রুতি দেয় যে আমরা ফর্ম্যাটটিতে আরও পরিবর্তন করব না।
ধারণাটি ছিল লোকেদের চারদিকে স্ক্রিপ্ট করা থেকে বিরত রাখা --short, কারণ এটি কখনই স্থিতিশীল হওয়ার উদ্দেশ্য ছিল না।
তাই হ্যাঁ, যখন --porcelainনিজে হয় স্থিতিশীল এবং স্ক্রিপ্টেবল, এটা সম্ভবত পারজার সবচেয়ে উপযোগী নয়। " -z --porcelain" ফর্ম্যাটটি আরও অনেক বেশি, এবং আমি "গিট স্ট্যাটাস" এর আশেপাশের স্ক্রিপ্ট করা প্রত্যেককেই এটির পরামর্শ দেব recommend

এটি গিট ব্যবহারকারীদের জন্য তাদের স্ক্রিপ্টগুলিতে পোরসিলাইন কমান্ড ব্যবহার করার প্রয়োজনীয়তার প্রতিফলন করে!
তবে কেবল স্থিতিশীল আউটপুট (সহ --porcelain)


উইলিয়াম-বার্গ দ্বারা মন্তব্য করা হিসাবে , একই জন্য যায় !git push

--porcelain

মেশিন-পঠনযোগ্য আউটপুট উত্পাদন করুন।
প্রতিটি রেফের জন্য আউটপুট স্থিতি লাইনটি ট্যাব দ্বারা পৃথক করে stdoutপরিবর্তে প্রেরণ করা হবে stderr
রেফগুলির সম্পূর্ণ প্রতীকী নাম দেওয়া হবে।


জন গ্লাসমিয়ার মন্তব্যগুলিতে যেমন প্রস্তাব করেছেন :

সম্ভবত এখানে অর্থ --porcelain"পোরস্লেইন স্ক্রিপ্টগুলির দ্বারা খাওয়ার উপযোগী আউটপুট উত্পাদন করা"

এবং এটি " --porcelainবিকল্প" প্রবর্তনের একেবারে প্রথম কেস দ্বারা সমর্থিত হতে পারে
(এর আগে git status --porcelain6f15787, সেপ্টেম্বর ২০০৯ কমিট, গিট ১.7.০ , এর
আগে git push --porcelain১৯6565 এফ 7, জুন ২০০৯, গিট ১.6.৪ ):

git blame --porcelain:

-p
--porcelain

মেশিন ব্যবহারের জন্য ডিজাইন করা একটি ফর্ম্যাটে দেখান।

কমিটমেন্ট বি 5 সি 698 ডি, অক্টোবর 2006, গিট 1.4.4

নতুন বিকল্পটি কমান্ডের আউটপুট নির্গমন করার জন্য দেশীয় আউটপুট ফর্ম্যাটকে সহজতর করে তোলে যা পোরসেইলাইন দ্বারা পরিচালনা করা সহজ


2
আমি লক্ষ্য করেছি git pushযে একই রকম অসাধারণ মেশিন-পঠনযোগ্য --porcelain
উইলিয়াম.বার্গ

13
সম্ভবত এখানে অর্থ --porcelain"পোরস্লেইন স্ক্রিপ্টগুলির সাহায্যে আউটপুট উত্পাদন উপযুক্ত"।
জন গ্লাসমিয়ার

@ জনগ্লাসমিয়ার এটি সম্ভবত একটি খুব সম্ভবত ব্যাখ্যা। আমার সম্পাদিত উত্তরটি দেখুন (শেষে)
ভোনসি

1
এছাড়াওgit diff-tree --word-diff=porcelain
নিকোলাস শ্যাঙ্কস

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

57

গিটে "চীনামাটির বাসন" শব্দের মুদ্রা এবং ব্যবহারটি আসলে মাইক তাহট দ্বারা তৈরি হয়েছিল, অন্যথায় লিনাস টোরভাল্ডসের সাথে উত্তপ্ত তর্ক হারিয়েছিলেন।

http://www.gelato.unsw.edu.au/archives/git/0504/0881.html

প্রকৃতপক্ষে, আমার একটি আশা ছিল অন্যান্য এসসিএম কেবল গিট নদীর গভীরতানির্ণয় ব্যবহার করতে পারে।
তবে তারপরে আমি সত্যিই পরামর্শ দেব যে আপনি "গিট" নিজেই ব্যবহার করুন, কোনও " libgit" নয়। অর্থাৎ আপনি সমস্ত প্লাম্বিংকে আসল প্রোগ্রাম হিসাবে গ্রহণ করেন এবং পৃথক রুটিনগুলির সাথে লিঙ্ক করার চেষ্টা করার পরিবর্তে আপনি এটি স্ক্রিপ্ট করতেন।

যদি আপনি এটি না চান, আমি এটি করব না।
তবুও চীনামাটির বাসন থেকে নদীর গভীরতানির্ণয় পৃথক করার জন্য বোধগম্য


7
মজাদার. +1 টি। উপরের আমার নিজের উত্তরটি পণ্যটি ব্যবহার করা থেকে তবে আপনার লিঙ্কটি সেই শব্দটির উত্স বলে মনে হচ্ছে।
ভোনসি

21

কোর গিটের উপর নির্ভর করে প্রোগ্রামগুলি এবং প্রোগ্রাম স্যুটগুলির জন্য পোরসিলাইন একটি সুন্দর নাম, কোর গিটটিতে একটি উচ্চ স্তরের অ্যাক্সেস উপস্থাপন করে। চীনামাটির বাসনগুলি "নদীর গভীরতানির্ণয়" এর চেয়ে বেশি একটি এসসিএম ইন্টারফেস প্রকাশ করে।

- চীনামাটির বাসন , গিট উইকি


7

পোরস্লেইন কমান্ডগুলি মানুষের ব্যবহারের জন্য ডিজাইন করা হয়েছে, যেমন আউটপুট কম্পিউটারগুলি বিশ্লেষণ করা সহজতর সেই আদেশগুলির বিপরীতে। git statusএকটি উদাহরণ হতে হবে।


8
"চীনামাটির বাসন" ... "মানুষের ব্যবহারের জন্য" ... আমি গ্লাস খেতে পারি । (যে কেউ সহজেই বিভ্রান্ত হতে পারে তার জন্য কেবল মিশ্র
রূপককে কৌতুক করা

5
চীনামাটির বাসন কমান্ডগুলি মানুষের ব্যবহারের জন্য, তবে আপনি যখন --porcelainবিকল্পটি ব্যবহার করেন , এটি মেশিন ব্যবহারের জন্য।
টমাসডাব্লু

git status --porcelain: স্ক্রিপ্টগুলির জন্য সহজে পার্সে ফর্ম্যাটে আউটপুটটি দিন। (...) তবে গিট সংস্করণ জুড়ে এবং ব্যবহারকারী কনফিগারেশন নির্বিশেষে স্থিতিশীল থাকবে।
tymtam

ডাউনভোটের জন্য ধন্যবাদ 🙄 হ্যাঁ, git status --porcelainএকটি স্থিতিশীল ফর্ম্যাট রয়েছে যা পার্স করা যায়, তবে statusকমান্ডটি নিজেই ব্যবহারকারী-হিসাবে ডিজাইন করা হয়েছে (উদাহরণস্বরূপ, এর বিপরীতে git ls-files)।
dahlbyk

7

সংক্ষিপ্ত এবং সাধারণ ব্যাখ্যা

  • দুটি ধরণের কমান্ড রয়েছে: "পোরক্লেইন" এবং "নদীর গভীরতানির্ণয়"।
  • প্রোগ্রামিং / স্ক্রিপ্টিং করার সময় " চীনামাটির " কমান্ডগুলির উপর নির্ভর করা উচিত নয় : কারণ এগুলি সম্ভবত পরিবর্তিত হতে পারে এবং এটি মেশিন নয় মানুষের জন্য humans
  • " নদীর গভীরতানির্ণয় " কমান্ডগুলি স্ক্রিপ্টিংয়ের জন্য ব্যবহার করা উচিত, কারণ এগুলি আরও স্থিতিশীল এবং পরিবর্তনের সম্ভাবনা কম।

তবে বিভ্রান্তিকর --porcelainবিকল্পটি কী !?

  • আপনি যদি চান: (i) কোনও পোরসিলেন কমান্ড ব্যবহার করতে পারেন এবং (ii) আপনি নিশ্চিত করতে চান যে আউটপুটটি নির্ভরযোগ্যভাবে পার্স করা যায় (মনে রাখবেন, চীনামাটির কমান্ডগুলি কেবল মানুষের জন্য বোঝানো হয় এবং পার্সিং নয়) তবে আপনি বিকল্পটি যুক্ত করতে পারেন--porcelain এবং তারপরে স্ক্রিপ্টিং এর জন্য আউটপুট ব্যবহার করুন। মূলত গিটের লেখকরা স্পষ্টতই প্রতিশ্রুতি দিচ্ছেন যে খুব শীঘ্রই যে কোনও জায়গায় সেখানে কোনও পরিবর্তন করা হবে না। উদাহরণ: আমি git status --porcelainস্ক্রিপ্টিংয়ের জন্য আউটপুটটি ব্যবহার করতে এবং ব্যবহার করতে পারি এবং এটি পুরোপুরি ঠিক আছে।

চীনামাটির বাসন / নদীর গভীরতানির্ণয় পরিভাষা কোথা থেকে আসে?

  • ইংরাজী যদি আপনার প্রথম ভাষা না হয় তবে গ্রেগ হিউগিল এটিকে পুরোপুরি ব্যাখ্যা করে।
  • আরও বিশদের জন্য, ভনকের উত্তর চেকআউট করুন ।

1
বিভ্রান্তিকর - পোরস্লেইন বিকল্প সম্পর্কে কী? আমি মোকাবেলার যে আমার উত্তর: stackoverflow.com/a/6978402/6309
VonC

রাজি! আমি আপনার উপরের উত্তরের একটি লিঙ্ক যুক্ত করেছি:For more detail, checkout VonC's answer.
বিকেএসপুরজিয়ন

ঠিক আছে, নামে একটি বিকল্প ব্যবহার করে অন্তত --porcelainইতিমধ্যে "চীনামাটির বাসন" কমান্ড এ "সিউডো-নদীর গভীরতানির্ণয়" কার্যকারিতা মিলে গীত সাধারণ UI 'তে নকশা সঙ্গে খুব সুন্দরভাবে অর্জন করা ...;)
SZ।

1
এই বিকল্পটি কেন "চীনামাটির বাসন" বলা হয় তা আমি পাই না। পুরো কমান্ডটি ইতিমধ্যে "চীনামাটির বাসন"। বিকল্পটি কল করা উচিত --plumbing(যেহেতু আপনি এই মুহুর্তে একজন প্লাম্বার, কোনও নিয়মিত "চীনামাটির বাসন" ব্যবহারকারী নন)।
সন্ধানকারী_আফ_ব্যাকন

3

গ্রেগ হিউগিলের উত্তরটি ঠিক সঠিক। নোট করুন যে গিটের জন্য ইজি গিট, ইয়াপ, পাইরেট এবং ভিএনজি সহ বিকল্প চীনামাটির বাসন রয়েছে। প্রতিটি সম্প্রদায়টির কিছু অংশের জন্য গিট শিখতে / ব্যবহার করা সহজ করার উদ্দেশ্যে is এই সমস্ত প্রকল্পের লিঙ্কগুলি সহজ গিট পৃষ্ঠায় রয়েছে: http://people.gnome.org/~newren/eg/


2

কোর গিটের উপর নির্ভর করে প্রোগ্রামগুলি এবং প্রোগ্রাম স্যুটগুলির জন্য পোরসিলাইন একটি সুন্দর নাম, কোর গিটটিতে একটি উচ্চ স্তরের অ্যাক্সেস উপস্থাপন করে।

https://git.wiki.kernel.org/index.php/Porcelain


1

গিটে চীনামাটির বাসনের দুটি স্বতন্ত্র অর্থ রয়েছে।

এই দুটি অর্থ, যদিও এটি যুক্তিযুক্ত হতে পারে তা কঠোরভাবে পরস্পরবিরোধী নয়, বিপরীতে উপস্থিত হতে পারে।

উ: ধারণাগত (প্লাম্বিং বনাম চীনামাটির বাসন)

অফিসিয়াল প্রো গিট বই :

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

বি --porcelain/ =porcelainবিকল্পসমূহ

অনেক Git কমান্ড একটি সঙ্গে আসা --porcelainবিকল্প যা হয় স্ক্রিপ্টিং জন্য বোঝানো।

git status' ডকুমেন্টেশন :

--porcelain[=<version>]

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

git diffএর ডকুমেন্টেশন :

--word-diff[=<mode>]

চীনামাটির বাসন

      স্ক্রিপ্ট ব্যবহারের উদ্দেশ্যে একটি বিশেষ লাইন-ভিত্তিক ফর্ম্যাট ব্যবহার করুন।

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