মার্চুরিয়াল এবং গিটের মধ্যে পার্থক্য কী?


727

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

গিট এবং এইচজির মধ্যে কেউ কি পাশাপাশি পাশাপাশি তুলনা করেছে? কোনও ফ্যানবয় আলোচনায় না গিয়েই এইচজি ও গিটের মধ্যে কী আলাদা তা জানতে আগ্রহী

উত্তর:


345

এই নিবন্ধগুলি সাহায্য করতে পারে:

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


1
"গিট বনাম মার্কুরিয়াল প্লিজ রিলাক্স" মারাত্মকভাবে পুরানো, যদিও এটি এই প্রশ্নের মতোই পুরানো। সম্ভবত এই প্রশ্নটি মুছে ফেলা উচিত এবং এখনই পুনরায় খোলা উচিত যে উভয় সরঞ্জামগুলিতে 3+ বছরের বৈশিষ্ট্য যুক্ত করা হয়েছে।
gman

238

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

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

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

আমি লিনাক্স ব্যবহার করি তবে স্পষ্টতই টার্টোইজএইচজি উইন্ডোজের গিট সমতুল্য (উইন্ডোজ ফাইল সিস্টেমের দুর্বল ব্যবহারের কারণে) এর চেয়ে দ্রুত এবং ভাল। Http://github.com এবং http://bitbucket.org উভয়ই অনলাইন হোস্টিং সরবরাহ করে, বিটবকেটে পরিষেবাটি দুর্দান্ত এবং প্রতিক্রিয়াশীল (আমি গিথুব চেষ্টা করি নি)।

আমি মার্চুরিয়ালকে বেছে নিয়েছি কারণ এটি পরিষ্কার এবং মার্জিত মনে হয় - আমি গিটের সাথে শেল / পার্ল / রুবি স্ক্রিপ্টগুলি পেয়েছিলাম। আমার অর্থ কী তা আপনি যদি জানতে চান তবে git-instaweb.shফাইলটিতে উঁকি দেওয়ার চেষ্টা করুন : এটি একটি শেল স্ক্রিপ্ট যা একটি রুবি স্ক্রিপ্ট উত্পন্ন করে , যা আমার মনে হয় একটি ওয়েবসভার চালায়। শেল স্ক্রিপ্ট প্রথম রুবি স্ক্রিপ্ট আরম্ভ করার জন্য আরেকটি শেল স্ক্রিপ্ট উত্পন্ন করে। ভাল পরিমাপের জন্য কিছুটা পার্লও রয়েছে

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

git fetch <project-to-union-merge>
GIT_INDEX_FILE=.git/tmp-index git-read-tree FETCH_HEAD
GIT_INDEX_FILE=.git/tmp-index git-checkout-cache -a -u
git-update-cache --add -- (GIT_INDEX_FILE=.git/tmp-index git-ls-files)
cp .git/FETCH_HEAD .git/MERGE_HEAD
git commit

এই কমান্ডগুলি আমার চোখে বেশ তীক্ষ্ণ দেখায়। মার্চুরিয়ালে আমরা করি:

hg pull --force <project-to-union-merge>
hg merge
hg commit

মার্চুরিয়াল কমান্ডগুলি কীভাবে সরল এবং আদৌ বিশেষ নয় তা লক্ষ্য করুন - একমাত্র অস্বাভাবিক জিনিসটি --forceপতাকাটির জন্য hg pullপ্রয়োজন, যেহেতু আপনি কোনও সম্পর্কযুক্ত ভাণ্ডার থেকে টানলে মার্চুরিয়াল অন্যথায় বাতিল করতে হবে। এটি এর মত পার্থক্য যা আমার কাছে মার্চুরিয়ালকে আরও মার্জিত বলে মনে হয়।


21
নোট করুন যে টর্টোইজএইচজি লিনাক্সের জিনোম ফাইল ম্যানেজার নটিলাসের সাথে একসাথে কাজ করে।
oenli

4
রুবি স্ক্রিপ্টটি কেবল তখনই তৈরি করা হয় যখন এটি HTD ওয়েবিক, রুবি ওয়েবসারভার।
বিকল্প

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

63
একত্রীকরণ (বৈঠাচালনা) Git সঙ্গে একটি সম্পর্কহীন প্রকল্পের জন্য, আপনাকে কেবল করতে পারেন: git pull <url-of-project>। আপনার উদ্ধৃত মেলটি
গিটের

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

73

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

এটাই পার্থক্যের সারমর্ম।

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

আরও কিছু প্রযুক্তি-ভিত্তিক তুলনা করার জন্য, আমি ব্যক্তিগতভাবে সবচেয়ে ভাল নিবন্ধগুলি দেখেছি হ'ল ডাস্টিন সেলিংস ':

তিনি আসলে দুটি ডিভিসিএসই ব্যাপকভাবে ব্যবহার করেছেন এবং সেগুলি উভয়কেই ভালভাবে বুঝতে পেরেছেন - এবং গিটকে প্রাধান্য দিয়ে শেষ করেছেন।


78
আমি প্রায়শই লোকেরা গিটকে একটি "প্লাটফর্ম" বলে উল্লেখ করেছি, তবে এটি তত্ত্ব বা সাধারণ কল্পকাহিনী হিসাবে বেশি কারণ এটির রান গিট ব্যতীত অন্য কিছু করার প্ল্যাটফর্ম হিসাবে এর কোনও বড় উদাহরণ নেই।
ইয়ান কেলিং

@ আইয়ান - যদি আমার ভুল না হয় তবে অপ্টানা স্টুডিও 3 এর অভ্যন্তরীণ আপডেট সিস্টেমের জন্য এটি ব্যবহার করে।
ম্যাক

22
সুতরাং, সংক্ষেপে: মারকুরিয়াল একটি মুক্ত উত্স বিতরণ সংশোধন নিয়ন্ত্রণ ব্যবস্থা, এবং গিট একটি জীবনধারা পছন্দ।
টিম কেটিং

51

বড় পার্থক্যটি উইন্ডোজে। মার্চুরিয়াল স্থানীয়ভাবে সমর্থিত, গিট নেই। তোমার অনুরূপ হোস্টিং পেতে পারেন github.com সঙ্গে bitbucket.org (আসলে আরও ভাল হিসাবে আপনি একটি বিনামূল্যে ব্যক্তিগত সংগ্রহস্থলের পাবেন)। আমি কিছুক্ষণের জন্য এমএসজিগিট ব্যবহার করছিলাম তবে মার্চুরিয়ালে চলে এসেছি এবং এতে খুশি হয়েছি।


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

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

@ ক্রেইগ: প্ল্যাটফর্মের ঘাটতি এটি অনেক বেশি। একটি উপযুক্ত প্ল্যাটফর্ম আপনাকে উপযুক্ত লোকালে স্যুইচ করতে দেয়। যদি আপনি utf-8 এ আটকে থাকেন তবে আপনি বেশিরভাগই ঠিক থাকবেন ব্যতীত ম্যাক ওএস এক্স এর
ইউএফএফ

23
উইন্ডোজ ইউনিকোড সমর্থন করে, যদিও এমএসটি ইউটিএফ -8 এর পরিবর্তে ইউটিএফ -16 এর জন্য তার এপিআইতে যেতে বেছে নিয়েছে। তবুও, গিটের পক্ষে ইউনিকোড ক্রস-প্ল্যাটফর্ম সমর্থন করা বেশ সম্ভব হবে। এসভিএন সেই সমস্যাটি বেশ ভালভাবে সমাধান করেছে। তবে এই মুহুর্তে এমএসজিজিট বিকাশের জন্য এটি কেবল উচ্চ অগ্রাধিকার নয়। কোড.google.com/p/msysgit/issues/detail?id=80
ক্রেগ ম্যাককুইন

38

আপনি যদি উইন্ডোজ বিকাশকারী হন তবে বেসিক সংযোগ বিচ্ছিন্ন সংশোধন নিয়ন্ত্রণের সন্ধান করছেন, Hg এর সাথে যান। আমি গিটকে বোধগম্য হতে দেখলাম যখন এইচজি সহজ এবং উইন্ডোজ শেলের সাথে ভালভাবে সংহত ছিল। আমি এইচজি ডাউনলোড করেছি এবং এই টিউটোরিয়ালটি অনুসরণ করেছি (hginit.com) - দশ মিনিট পরে আমার একটি স্থানীয় রেপো ছিল এবং আমার প্রকল্পে কাজ করতে ফিরে এসেছি।


1
আমি একই টিউটোরিয়াল অনুসরণ করেছি। এটা নিশ্চিত।
নাথান

22

আমি মনে করি "মারকুরিয়াল বনাম গিট" সম্পর্কে সেরা বর্ণনাটি হ'ল:

"গিট হলেন ওয়েসলি স্নিপস। মার্চুরিয়াল হলেন ডেনজেল ​​ওয়াশিংটন"


14
কীভাবে সাহায্য করার কথা? এর অর্থ কি গিটটি মার্শাল আর্টের ধরণ বেশি?
fmuecke

20

তারা প্রায় অভিন্ন। সবচেয়ে গুরুত্বপূর্ণ পার্থক্য, আমার দৃষ্টিকোণ থেকে (আমি বলতে চাইছি যে কারণটি আমাকে অন্যের চেয়ে একটি ডিভিসিএস বেছে নিতে পেরেছিল) তা হল যে দুটি প্রোগ্রাম শাখা পরিচালনা করে।

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

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

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

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

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

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

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


6
এটি কোনও পার্থক্য নয়; এইচজি শাখার নামও দিয়েছে। আমরা এগুলি ক্লোন-শাখার পরিবর্তে স্বাভাবিক বিকাশের সময় সর্বদা ব্যবহার করি।
ডিস্টান

2
আফগ, এইচজি নামে পরিচিত শাখা প্রতিটি প্রতিশ্রুতিতে মেটাডেটা সংরক্ষণ করে প্রাপ্ত হয়; আমি ভুল হতে পারি, তবে আমি পড়েছি যে আপনি একবার একটি শাখা তৈরি করলে, এর মেটাডেটা প্রতিটি পরিবর্তনের মধ্যে এম্বেড হবে এবং ইতিহাসের অংশ হয়ে যাবে। গিটের সাথে এটি একটি বিশাল পার্থক্য। "ক্লোনগুলি দ্রুত পরীক্ষার জন্য দুর্দান্ত যেখানে আপনি কোনও শাখার নাম রেকর্ড করতে চান না, এবং নামযুক্ত শাখা দীর্ঘমেয়াদী শাখাগুলির জন্য ভাল" tinyurl.com/2wz39qx আমি আমার পোস্টের সাথে যা বলতে চাইছিলাম তা হ'ল গিটের মানক ওয়ার্কফ্লো আপনাকে আমন্ত্রণ জানায় একটি একক কাজের অনুলিপি ব্যবহার করতে; এইচজি স্ট্যান্ডার্ড ওয়ার্কফ্লোতে ক্লোনস অন্তর্ভুক্ত রয়েছে যা আমার ব্যক্তিগত প্রয়োজনের সাথে স্যুট করে না।
আরিয়ালদো মার্টিনি

মিল একটি ভাল ব্যাখ্যার জন্য / পার্থক্য Re: গীত ও Hg, ইন শাখাবিন্যাস দেখুন: mercurial.selenic.com/wiki/GitConcepts#Branch_model
sampablokuper

2
এইচজি নামক শাখাগুলি গিটের শাখার মতো কিছুই নয় এইচজি-তে, একটি সত্য পথ রয়েছে। সমস্ত শাখাগুলি সেই পথের শাখাগুলি। গিটের মধ্যে সত্যিকারের পথ নেই। রেপোর ঠিক আলাদা রাজ্য রয়েছে এবং সেই রাজ্যে পয়েন্টার রয়েছে। প্রতিটি শাখা একটি পৃথক পয়েন্টার হয়। কোন পয়েন্টারটি প্রধান এটি ব্যবহার করা। শাখাগুলি সব সমবয়সী হয়।
gman

17

গিট এবং পার্কের মধ্যে একটি বিশাল পার্থক্য রয়েছে ; যেভাবে প্রতিটি প্রতিশ্রুতিবদ্ধ প্রতিনিধিত্ব। গিট স্ন্যাপশট হিসাবে কমিটিকে প্রতিনিধিত্ব করে, যখন ম্যুর্যুরিয়াল তাদেরকে আলাদা হিসাবে উপস্থাপন করে।

অনুশীলনে এর অর্থ কী? ভাল, অনেকগুলি অপারেশন গিটের চেয়ে দ্রুত হয়, যেমন অন্য প্রতিশ্রুতিতে স্যুইচ করা, কমিটগুলি তুলনা করা ইত্যাদি ecially বিশেষত যদি এই কমিটগুলি দূরে থাকে।

আফাইকের পার্শ্ববর্তী পদ্ধতির কোনও সুবিধা নেই।


29
চেঞ্জসেটস (ডিফ্স) সুবিধা কম জায়গা গ্রহণে। গিট কম্প্রেশন ব্যবহার করে কমিটের জন্য ব্যবহৃত স্থান পুনরুদ্ধার করে তবে এর জন্য মাঝে মাঝে স্পষ্ট পুনরুদ্ধার পদক্ষেপ ("গিট প্যাক") প্রয়োজন।
কোয়ার্ক

8
এটি এখন 'গিট জিসি' নামে পরিচিত, তবে বিভিন্ন স্তরের আবর্জনা সংগ্রহের ব্যবস্থা রয়েছে এবং গিটের সাম্প্রতিক সংস্করণগুলিতে কিছু স্তর স্বয়ংক্রিয়ভাবে কার্যকর করা হয়।
ফিলিপিসি

6
প্রকৃতপক্ষে পার্শ্বযুক্ত স্ন্যাপশটগুলিও ব্যবহার করে
রনি ২

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

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

11

কিছুই নেই। তারা উভয় একই কাজ করে, উভয়ই সমানভাবে সম্পাদন করে। যদি আপনি ইতিমধ্যে একটি ব্যবহার করে এমন কোনও প্রকল্পের জন্য সহায়তা করেন তবে আপনার অপরটির একজনকে বেছে নেওয়ার একমাত্র কারণ ..

এক চয়নের জন্য অন্যান্য সম্ভাব্য কারণ একটি অ্যাপ্লিকেশন বা পরিষেবা যা শুধুমাত্র সিস্টেম এক সমর্থন .. উদাহরণস্বরূপ, আমি প্রায় কাছাকাছি কারণ Git শিখতে বেছে নিয়েছি GitHub ..


6
দেখে মনে হচ্ছে আপনার উত্তরটি অনেকটা বাস্তববাদী ছিল। :)
আরাফাঙ্গিয়ন


11

যদি আমি সেগুলি সঠিকভাবে বুঝতে পারি (এবং আমি প্রত্যেকের বিশেষজ্ঞের থেকে অনেক দূরে) তবে তাদের মুলত প্রত্যেকটির আলাদা আলাদা দর্শন থাকে। আমি প্রথম 9 মাস ধরে ম্যুর্যুয়ালাল ব্যবহার করেছি। এখন আমি 6 জন্য গিট ব্যবহার করেছি।

এইচজি হ'ল সংস্করণ নিয়ন্ত্রণ সফ্টওয়্যার। এটির মূল লক্ষ্যটি হ'ল এক টুকরো সফ্টওয়্যার সংস্করণ ট্র্যাক করা।

গিট একটি সময় ভিত্তিক ফাইল সিস্টেম। এটির লক্ষ্যটি একটি ফাইল সিস্টেমে অন্য মাত্রা যুক্ত করা। বেশিরভাগের কাছে ফাইল এবং ফোল্ডার থাকে, গিট সময় যোগ করে। ভিসিএস এর নকশার একটি উপ-উত্পাদন হওয়ায় এটি দুর্দান্ত কাজ করার ঘটনা ঘটে।

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

গিটের মধ্যে কেবলমাত্র পুকুরের অবজেক্ট এবং এই ট্র্যাকিং ফাইলগুলি (শাখা / মাথা) রয়েছে যা নির্ধারণ করে যে কোন বস্তুর কোন সেট কোনও নির্দিষ্ট অবস্থায় ফাইলের গাছকে উপস্থাপন করে। গিট ঠেলা বা টানানোর সময় আপনি যে নির্দিষ্ট শাখাগুলি ধাক্কা বা টানছেন তার জন্য প্রয়োজনীয় বস্তুগুলি কেবল প্রেরণ করে যা সমস্ত বস্তুর একটি ছোট উপসেট।

যতদূর গিট সম্পর্কিত, কোনও "1 প্রকল্প" নেই। আপনার কাছে একই রেপোতে 50 টি প্রকল্প থাকতে পারে এবং গিটের যত্ন নেই। প্রত্যেকে একই রেপোতে আলাদাভাবে পরিচালনা করতে এবং সূক্ষ্মভাবে জীবনযাপন করতে পারে।

শাখাগুলির এইচজি ধারণাটি মূল প্রকল্পের শাখা বা শাখাগুলি থেকে শাখা ইত্যাদি G গিটের এমন ধারণা নেই। গিটের একটি শাখা গাছের একটি রাজ্য, সবকিছু গিটের একটি শাখা। কোন শাখাটি অফিসিয়াল, কারেন্ট বা সর্বাধিক নবীনতার গিটের কোনও অর্থ নেই।

আমি জানি না যে এটি কোনও ধারণা তৈরি করেছে কিনা। আমি ছবি আঁকতে পারলে এইচজি হ'ল এটির মতো দেখতে যেখানে প্রতিশ্রুতিবদ্ধ কo

             o---o---o
            /        
o---o---o---o---o---o---o---o
         \         /
          o---o---o

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

o---o---o---o---o

o---o---o---o
         \
          o---o

o---o---o---o

আসলে কিছু উপায়ে এটি গিটে শাখা প্রদর্শন করাও বোধগম্য নয়।

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

$ time git checkout -b some-new-branch
Switched to new branch 'some-new-branch'

real   0m1.759s
user   0m1.596s
sys    0m0.144s

এবং এখন এইচজি ক্লোন ব্যবহার করে

$ time hg clone project/ some-clone/

updating to branch default
29387 files updated, 0 files merged, 0 files removed, 0 files unresolved.
real   0m58.196s
user   0m19.901s
sys    0m8.957

দুজনেই হট রান। অর্থাৎ আমি তাদের দু'বার দৌড়েছি এবং এটি দ্বিতীয় রান। এইচজি ক্লোন আসলে গিট-নতুন-ওয়ার্কডিরের মতো। এঁরা দু'জনই পুরোপুরি নতুন একটি কার্যকারী দিরকে প্রায় এমনভাবে তৈরি করেন যেন আপনি টাইপ করেছেন cp -r project project-clone। গিটে নতুন শাখা তৈরির মতো নয়। এটি অনেক বেশি ভারী ওজন। এইচজি-তে গিটের ব্রাঞ্চিংয়ের সত্যিকারের সমতুল্য হলে আমি জানি না এটি কী।

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

git checkout master
git checkout -b add-2nd-joypad-support
git checkout master
git checkout -b fix-game-save-bug
git checkout master
git checkout -b add-a-star-support

এটি স্রেফ 3 টি শাখা তৈরি করেছে, প্রতিটি মাস্টার নামে একটি শাখা বন্ধ করে দিয়েছে। (আমি নিশ্চিত যে এই 2 টির পরিবর্তে 1 টি লাইন তৈরি করার কিছুটা উপায় আছে)

এখন আমি একটি কাজ করতে

git checkout fix-game-save-bug

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

অন্য একটি বড় পার্থক্য। গিটের মঞ্চ।

গিটের একটি মঞ্চ সম্পর্কে এই ধারণা রয়েছে। আপনি এটি একটি লুকানো ফোল্ডার হিসাবে ভাবতে পারেন। আপনি যখন প্রতিশ্রুতিবদ্ধ হন কেবল তখনই আপনি প্রতিশ্রুতিবদ্ধ হন যা মঞ্চে রয়েছে, আপনার কার্যক্ষম গাছের পরিবর্তন নয়। এটা অদ্ভুত লাগতে পারে। আপনি যদি আপনার কার্যকারী বৃক্ষের সমস্ত পরিবর্তন করতে চান তবে আপনি যা করতে চান git commit -aযা সমস্ত পরিবর্তিত ফাইলগুলি মঞ্চে যুক্ত করে এবং তারপরে তাদের প্রতিশ্রুতি দেয়।

তখন মঞ্চের বিন্দু কী? আপনি নিজের কমিটগুলি সহজেই আলাদা করতে পারবেন। কল্পনা করুন যে আপনি joypad.cpp এবং গেমসএভ.সি.পি সম্পাদনা করেছেন এবং আপনি সেগুলি আলাদাভাবে প্রতিশ্রুতিবদ্ধ করতে চান

git add joypad.cpp  // copies to stage
git commit -m "added 2nd joypad support"
git add gamesave.cpp  // copies to stage
git commit -m "fixed game save bug"

মঞ্চে একই ফাইলের কোন নির্দিষ্ট লাইনগুলি অনুলিপি করতে চান তা নির্ধারণের জন্য গিটের এমনকি কমান্ড রয়েছে যাতে আপনি সেই প্রতিশ্রুতিগুলি পৃথকভাবে পৃথক করেও নিতে পারেন। আপনি এটি কেন করতে চান? কারণ পৃথক প্রতিশ্রুতিবদ্ধ হিসাবে অন্যরা কেবল তাদের পছন্দসই টানতে পারে বা যদি কোনও সমস্যা হয় তবে তারা সমস্যাটি কেবল প্রতিশ্রুতি ফিরিয়ে দিতে পারে।


"একই ফাইলের কোন নির্দিষ্ট লাইনগুলি আপনি মঞ্চে অনুলিপি করতে চান তা সিদ্ধান্ত নিতে গিটের এমনকি কমান্ড রয়েছে যাতে আপনি সেই প্রতিশ্রুতিগুলি পৃথকভাবে পৃথক করেও নিতে পারেন" " এই আদেশগুলি কি?
জেমস ম্যাকমাহন

1
@James: git add --patchদেখুন linux.die.net/man/1/git-add বা ব্যবহারের git add -i, মত stackoverflow.com/questions/2372583/...
tanascius

@gman: মাস্টারটি পরীক্ষা করে দেখার পরিবর্তে এবং checkout -b <name>আপনার সাথে git branch <name>শাখা না করেই নতুন শাখাটি না
সরিয়েই

8

সংস্করণকন্ট্রলব্লগে একটি গতিশীল তুলনা চার্ট রয়েছে যেখানে আপনি বেশ কয়েকটি বিভিন্ন সংস্করণ নিয়ন্ত্রণ সিস্টেমের তুলনা করতে পারেন।

এখানে গিট, এইচজি এবং বিজেআর এর মধ্যে একটি তুলনা টেবিল রয়েছে।


1
মার্কুরিয়াল সম্পর্কিত তথ্য সম্পূর্ণ সঠিক নয়: মার্চুরিয়ালের "চাল বা পুনর্নামকরণের পরে বুদ্ধিমান সংহতকরণ" রয়েছে। কংক্রিটলি, এর অর্থ এই যে আমি যদি নতুন নামকরণ dir-a/foo.cকরি dir-b/foo.cএবং কাজ চালিয়ে যাই dir-b/foo.cতবে আপনার কাজটি dir-a/foo.cএকটি টানার পরে আমার কাজের সাথে সঠিকভাবে মার্জ হয়ে যাবে।
মার্টিন গিজার

গিট সম্পর্কিত তথ্য (এটি বেটার এসসিএম ইনিশিয়েটিভ তুলনা, আইআইআরসি থেকে এসেছে ) কয়েকটি জায়গায় সঠিক বা এমনকি ইনভ্লাইডও।
জাকুব নরবস্কি

7

শাখাগুলির সাথে কাজ করার ক্ষেত্রে (বিশেষত স্বল্প-মেয়াদী) উল্লেখযোগ্য পার্থক্য রয়েছে।

এটি এই নিবন্ধে ব্যাখ্যা করা হয়েছে (ব্রাঞ্চিংএক্সপ্লাইনেড) যা গিটের সাথে মার্চুরিয়ালকে তুলনা করে।


7

আপনার প্রকল্পে কোন উইন্ডোজ ভিত্তিক সহযোগী আছে?

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

বিপরীতে মেকুরিয়াল-অন-উইন্ডোজ হ'ল নো-ব্রেইনার।


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

কমপক্ষে একটি খুব ভাল উইন্ডোজ (এবং ওএস এক্স + লিনাক্স) গিট জিইআই উপলব্ধ।
মোট

7

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


5

গত বছরের একসময় আমি নিজের ব্যবহারের জন্য গিট এবং এইচজি উভয়ই মূল্যায়ন করেছি এবং এইচ.জি. দিয়ে যাওয়ার সিদ্ধান্ত নিয়েছি। আমি এটি একটি ক্লিনার সমাধান মত দেখাচ্ছে বলে মনে হয়েছিল, এবং আরও প্ল্যাটফর্মের সময়ে আরও ভাল কাজ করেছে। যদিও এটি বেশিরভাগ ক্ষেত্রে টস-আপ ছিল।

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


4
Hgsubversion কটাক্ষপাত: bitbucket.org/durin42/hgsubversion । এটির জন্য বর্তমানে মার্চুরিয়ালের একটি বিকাশ সংস্করণ প্রয়োজন, তবে তারা মার্চুরিয়াল ১.৩ এর জন্য একটি রিলিজ করবে, যা ১ লা জুলাইয়ের কারণে is
মার্টিন গিজার

4

আমি বর্তমানে এসভিএন থেকে ডিভিসিএসে স্থানান্তরিত হওয়ার প্রক্রিয়াধীন (আমার অনুসন্ধানগুলি সম্পর্কে ব্লগ করার সময়, আমার প্রথম আসল ব্লগিং প্রচেষ্টা ...), এবং আমি কিছুটা গবেষণা (= গুগলিং) করেছি done আমি যতদূর দেখতে পাচ্ছি আপনি উভয় প্যাকেজ দিয়ে বেশিরভাগ জিনিস করতে পারেন। দেখে মনে হচ্ছে গিটের আরও কয়েকটি বা আরও উন্নততর উন্নত বৈশিষ্ট্য রয়েছে, আমি মনে করি যে উইন্ডোগুলির সাথে ইন্টিগ্রেশনটি পার্টোরাইজএইচজি'র সাথে পার্কের জন্য কিছুটা ভাল। আমি জানি গীতা চিতাও আছে (আমি উভয়ই চেষ্টা করেছি), তবে পার্থক্যযুক্ত সমাধানটি আরও দৃ more় বলে মনে হয়।

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

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

বলা হচ্ছে, এটি সম্পর্কে অন্যান্য ব্যক্তিরা যা বলেন তাতে আমি আগ্রহী, কারণ এটি আমার ব্লগিং প্রচেষ্টার জন্য একটি দুর্দান্ত উত্স তৈরি করবে ;-)


1
হ্যাঁ, এগুলি উভয়ই ওপেন-সোর্স প্রকল্প।
মার্টিন গিজার


3

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

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

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


2
+1, কারণ এই জিনিসগুলির সাথে কাজ করে না এমন লোকদের চেয়ে "বিরামবিহীন" অভিজ্ঞতাটি বেশি গুরুত্বপূর্ণ। আইডিইর জন্য একটি শক্ত প্লাগইন অনেক পার্থক্য করে।
ইকোর্টসো


2

আপনি যদি মার্চারিয়াল এবং গিতের পারফরম্যান্স তুলনা করতে আগ্রহী হন তবে এই নিবন্ধটি একবার দেখুন । উপসংহারটি হ'ল:

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


2

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


2

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



1

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

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

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

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

$ hg rollback

তারপরে আপনি একটি বার্তা পাবেন যে সিস্টেমটি আপনার শেষ লেনদেনটিকে পূর্বাবস্থায় ফিরিয়ে আনবে।

গিটে আপনাকে টাইপ করতে হবে:

$ git reset --soft HEAD^

সুতরাং ঠিক আছে ধরুন কী রিসেট সম্পর্কে আপনার ধারণা আছে। তবে আপনাকে "- সাফ্ট" এবং "--হার্ড" রিসেটগুলি কী (কোনও স্বজ্ঞাত অনুমান?) কী তা জানতে হবে। ওহ এবং অবশ্যই শেষ পর্যন্ত 'character' চরিত্রটি ভুলে যাবেন না! (এখন রিচির নামে যা আছে ...)

কেডিফ 3 এবং মেল্ডের মতো তৃতীয় পক্ষের সরঞ্জামগুলির সাথে মার্চুরিয়ালের একীকরণ আরও ভাল। আপনার প্যাচগুলি খুব ঝগড়া ছাড়াই আপনার শাখাগুলিকে একত্রিত করুন। মার্চুরিয়াল একটি সাধারণ HTTP সার্ভারও অন্তর্ভুক্ত করে যা আপনি টাইপ করে সক্রিয় করেন

hg serve

এবং অন্যদের আপনার সংগ্রহস্থল ব্রাউজ করতে দিন।

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


1
প্রকৃতপক্ষে আপনি গিমে আর্মনস কমান্ডগুলি করতে পারেন , যা সিএলআই ব্যবহার করতে কম জটিল করে তোলে। এই সুপার ইউজার (স্ট্যাকএক্সচেঞ্জ) প্রশ্নে তাদের একটি গুচ্ছ রয়েছে ।
Spoike

1
সত্যই হ্যাঁ, আপনি কিছু সাধারণ কাজের সাথে মোকাবিলা করতে শেল স্ক্রিপ্টগুলিও লিখতে পারেন। অবশেষে আপনি বুঝতে শুরু করেছেন যে আপনি একটি ভিসিএসের সাথে মোকাবিলা করার জন্য একটি মোড়ক সিএলআই তৈরি করছেন যা খারাপভাবে ডিজাইন করা এবং পাল্টা স্বজ্ঞাত সিএলআই রয়েছে। এবং এটি কেবল তাই নয়। গিট সন্দেহজনক ব্যবহারযোগ্যতার সাথে ধারণাগুলির একটি ভয়াবহ গোছা পরিচয় করিয়ে দেয় যা ব্যবহারকারীকে শেষ পর্যন্ত ডকুমেন্টেশন এবং সিএলআই বার্তাগুলিতে স্বাচ্ছন্দ্য বোধ করার জন্য শিখতে এবং বুঝতে বাধ্য করা হয়।
কোস্তাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.