git - গিট-push.default "মেলা" এবং "সহজ" এর মধ্যে পার্থক্য কী




git-push git-pull (2)

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

আমি সহজভাবে git push ব্যবহার করলে এটি আমাকে নির্দেশ করতে একটি ডিফল্ট শাখা (?) দেখতে চাইতে পারে? এই দুটি বিকল্পের মধ্যে আমার সাথে পার্থক্য কি?

git config --global push.default matching
git config --global push.default simple

ম্যাচিং আমার স্থানীয় রেপোতে যে কোনও শাখাগুলিকে ঠেলে দেয়, এবং যদি তারা মেলে না তবে আমার নিজের যে কোনও স্থানীয় শাখাগুলিকে ধাক্কা দেওয়ার জন্য ম্যানুয়ালি ম্যানুয়ালি বলতে হবে? এই সর্বোত্তম অনুশীলন ব্যবহার করা বা সহজ সর্বোত্তম?


গিট v2.0 রিলিজ নোট

পিছনে সামঞ্জস্য নোট

যখন git push [$there] কি ধাক্কা দেয় তা বলে না, আমরা এখন পর্যন্ত ঐতিহ্যগত "মিলিং" শব্দটি ব্যবহার করেছি (আপনার সমস্ত শাখার দূরবর্তী সময়ে একই নামের শাখার ততক্ষণ পর্যন্ত দূরবর্তী স্থানে পাঠানো হয়েছিল)। গিট 2.0 এ, ডিফল্ট এখন "সহজ" শব্দকোষ, যা ধাক্কা দেয়:

  • শুধুমাত্র বর্তমান শাখাটির শাখার বর্তমান শাখায়, এবং শুধুমাত্র বর্তমান শাখাটি সেই দূরবর্তী শাখার সাথে সংহত করার জন্য সেট করা হলে, আপনি যদি একই দূরবর্তী স্থানে পৌঁছাতে চান তবে সেটি থেকে আপনি আনতে পারেন; অথবা

  • শুধুমাত্র বর্তমান শাখার শাখার বর্তমান শাখায়, যদি আপনি কোনও দূরবর্তী স্থানে ধাক্কা দিচ্ছেন তবে এটি সাধারণত আপনি যেখানে থেকে আনেন না।

আপনি এই পরিবর্তন করতে কনফিগারেশন পরিবর্তনশীল "push.default" ব্যবহার করতে পারেন। আপনি যদি পুরানো টাইমার হন তবে "মিলিং" শব্দটি ব্যবহার করে রাখতে চান, উদাহরণস্বরূপ, আপনি পরিবর্তনশীলটিকে "মিলিং" করতে পারেন। অন্যান্য সম্ভাবনার জন্য ডকুমেন্টেশন পড়ুন।

যখন git add -u এবং git add -A একটি সাবডিরেক্টরির ভিতরে সঞ্চালিত হয়, কমান্ড লাইন যোগ করার কোন পথ নির্দিষ্ট না করে, তারা git commit -a এবং অন্যান্য কমান্ডগুলির সাথে সামঞ্জস্যের জন্য সমগ্র গাছের উপর পরিচালনা করে (এই কমান্ডগুলি কেবলমাত্র পরিচালনা করতে ব্যবহৃত হয় বর্তমান সাবডিরেক্টরি)। git add -u . বলুন git add -u . বা git add -A . আপনি যদি বর্তমান ডিরেক্টরি অপারেশন সীমাবদ্ধ করতে চান।

git add <path> এখন git add -A <path> হিসাবে একই, তাই git add dir/ আপনি ডিরেক্টরি থেকে সরানো পাথ লক্ষ্য করবে এবং অপসারণ রেকর্ড। গিটের পুরানো সংস্করণগুলিতে, git add <path> অপসারণগুলি উপেক্ষা করতে ব্যবহৃত। আপনি যদি সত্যিই চান তবে git add --ignore-removal <path> তে কেবল যোগ বা সংশোধিত পাথ যুক্ত করতে git add --ignore-removal <path> যোগ করতে পারেন।


জিআইটি ডকুমেন্টেশন থেকে: গিট ডক্স

নীচে সম্পূর্ণ তথ্য দেয়। সংক্ষেপে, simple current working branch শুধুমাত্র ধাক্কা দিবে এবং তারপরেও যদি এটি দূরবর্তীতে একই নাম থাকে। এটি নতুনদের জন্য খুব ভাল সেটিং এবং GIT 2.0 এ ডিফল্ট হয়ে যাবে

যখন matching দূরবর্তী স্থানে একই নামের স্থানীয়ভাবে সমস্ত শাখাকে ধাক্কা দেবে । (আপনার বর্তমান কাজ শাখার সাথে সম্পর্কিত)। এর অর্থ হল আপনি ভাগ করতে চান না এমন সম্ভাব্য অনেকগুলি শাখা ধাক্কা দেওয়া হবে।

আমার ব্যক্তিগত ব্যবহারে, আমি সাধারণত একটি ভিন্ন বিকল্প ব্যবহার করি: current বর্তমান শাখাটি চালায় যা বর্তমান (যেহেতু আমি সর্বদা কোন পরিবর্তন করার জন্য শাখা)। কিন্তু একটি শিক্ষানবিশ জন্য আমি simple পরামর্শ চাই

push.default
কোন রেফস্পেক স্পষ্টভাবে দেওয়া হয় না যদি অ্যাকশন গিট ধাক্কা গ্রহণ করা উচিত। বিভিন্ন মান নির্দিষ্ট ওয়ার্কফ্লো জন্য উপযুক্ত হয়; উদাহরণস্বরূপ, সম্পূর্ণরূপে কেন্দ্রীয় কার্যপ্রবাহে (অর্থাত্ fetch উৎস ধাক্কা গন্তব্যের সমান), আপস্ট্রিম সম্ভবত আপনি যা চান তা। সম্ভাব্য মান:

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

বর্তমান - প্রাপ্ত শাখায় একই নামের সাথে একটি শাখা আপডেট করতে বর্তমান শাখাটিকে ধাক্কা দিন। কেন্দ্রীয় এবং অ কেন্দ্রীয় কার্যপ্রবাহ উভয় কাজ করে।

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

সহজ - কেন্দ্রীভূত কর্মপ্রবাহে, আপস্ট্রিম শাখার নামটি স্থানীয় এক থেকে পৃথক থাকলে ধাক্কা দিতে অস্বীকার করার জন্য অতিরিক্ত সুরক্ষা সহ আপস্ট্রিমের মত কাজ করে।

রিমোট থেকে ভিন্ন যে দূরবর্তী থেকে ধাক্কা দিলে আপনি সাধারণত টানেন, বর্তমান হিসাবে কাজ করুন। এটি নিরাপদ বিকল্প এবং নতুনদের জন্য উপযুক্ত।

এই মোড Git 2.0 এ ডিফল্ট হয়ে যাবে।

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

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

এটি বর্তমানে ডিফল্ট, তবে জিটি 2.0 ডিফল্টে ডিফল্ট পরিবর্তন করবে।





git-remote