সংক্ষিপ্ত উত্তর
যতক্ষণ আপনি দ্রুত-ফরোয়ার্ড মার্জ করছেন , ততক্ষণ আপনি কেবল ব্যবহার করতে পারবেন
git fetch <remote> <sourceBranch>:<destinationBranch>
উদাহরণ:
# Merge local branch foo into local branch master,
# without having to checkout master first.
# Here `.` means to use the local repository as the "remote":
git fetch . foo:master
# Merge remote branch origin/foo into local branch foo,
# without having to checkout foo first:
git fetch origin foo:foo
যদিও অ্যাম্বারের উত্তর দ্রুত-ফরওয়ার্ড ক্ষেত্রেও কাজ করবে, git fetch
পরিবর্তে এইভাবে ব্যবহার করা কেবল শাখার রেফারেন্সকে জোর করে চালানোর চেয়ে কিছুটা নিরাপদ, যেহেতু git fetch
আপনি যতক্ষণ না ব্যবহার +
করেন ততক্ষণ স্বয়ংক্রিয়ভাবে দুর্ঘটনাজনিত অ-ফাস্ট-ফরওয়ার্ডগুলি রোধ করবে refspec।
দীর্ঘ উত্তর
আপনি প্রথমে একটি পরীক্ষা না করেই একটি শাখা বি একটি শাখায় মার্জ করতে পারবেন না যদি এটির ফলে-দ্রুত-ফরওয়ার্ড একীকরণের ফলাফল হয়। এটি কারণ যে কোনও সম্ভাব্য বিবাদগুলি সমাধান করার জন্য একটি ওয়ার্কিং কপি প্রয়োজন।
তবে দ্রুত-ফরোয়ার্ড মার্জগুলির ক্ষেত্রে এটি সম্ভব , কারণ এই জাতীয় সংশ্লেষ কখনই সংঘাত সৃষ্টি করতে পারে না, সংজ্ঞা অনুসারে। প্রথমে কোনও শাখা পরীক্ষা না করে এটি করার জন্য, আপনি git fetch
একটি রেফস্পেক দিয়ে ব্যবহার করতে পারেন ।
master
আপনার যদি আরও একটি শাখা feature
চেক আউট করে থাকে তবে আপডেট করার (দ্রুত-অগ্রসর হওয়া পরিবর্তনগুলি অস্বীকার করে) উদাহরণের উদাহরণ এখানে দেওয়া হয়েছে:
git fetch upstream master:master
এই ব্যবহারের কেসটি এত সাধারণ, আপনি সম্ভবত এটির মতো আপনার গিট কনফিগারেশন ফাইলে এর জন্য একটি উপাত্ত তৈরি করতে চান:
[alias]
sync = !sh -c 'git checkout --quiet HEAD; git fetch upstream master:master; git checkout --quiet -'
এই ওরফে যা করে তা নিম্নলিখিত:
git checkout HEAD
: এটি আপনার কার্যকরী অনুলিপিটিকে বিচ্ছিন্ন অবস্থায় রাখে into এটি দরকারী যদি আপনি আপডেট করতে চান master
যখন এটি চেক-আউট হওয়ার সময় ঘটে। আমি মনে করি এটি করা দরকার ছিল কারণ অন্যথায় শাখার উল্লেখটি master
সরবে না, তবে আমার মাথার উপরের অংশটি সত্যই ঠিক আছে কিনা তা আমার মনে নেই।
git fetch upstream master:master
: এটি আপনার স্থানীয়কে master
একই জায়গায় দ্রুত ফরোয়ার্ড করে upstream/master
।
git checkout -
আপনার পূর্ববর্তী চেক-আউট শাখাটি পরীক্ষা করে দেখুন (এটি -
এই ক্ষেত্রে কী করে)।
git fetch
(অ-) দ্রুত-ফরোয়ার্ড মার্জগুলির সিনট্যাক্স
আপনি fetch
যদি আপডেটটি দ্রুত-ফরওয়ার্ড না করে কমান্ডটি ব্যর্থ করতে চান তবে আপনি কেবলমাত্র ফর্মটির একটি রেসপেক ব্যবহার করুন
git fetch <remote> <remoteBranch>:<localBranch>
আপনি যদি নন-ফাস্ট-ফরওয়ার্ড আপডেটগুলি অনুমতি দিতে চান তবে আপনি +
রেফস্পেকের সামনের অংশে একটি যুক্ত করুন:
git fetch <remote> +<remoteBranch>:<localBranch>
মনে রাখবেন যে আপনি আপনার স্থানীয় রেপো ব্যবহার করে "রিমোট" পরামিতি হিসাবে পাস করতে পারেন .
:
git fetch . <sourceBranch>:<destinationBranch>
ডকুমেন্টেশন
git fetch
এই সিনট্যাক্সটি (জোর দিয়ে খনি) ব্যাখ্যা করে এমন ডকুমেন্টেশন থেকে :
<refspec>
<refspec>
প্যারামিটারের বিন্যাস হ'ল optionচ্ছিক প্লাস +
, উত্স রেফের পরে <src>
, পরে একটি কোলন :
, গন্তব্য রেফের পরে <dst>
।
দূরবর্তী রেফ যে ম্যাচগুলি <src>
আনা হয় এবং যদি <dst>
খালি স্ট্রিং না হয় তবে স্থানীয় রেফ এটি মিলিয়ে দ্রুত ব্যবহার করে<src>
। Alচ্ছিক প্লাস+
ব্যবহার করা হলে, স্থানীয় রেফ আপডেট করা হয় এমনকি যদি এটি দ্রুত-ফরওয়ার্ড আপডেট না করে।
আরো দেখুন
কাজের গাছের ছোঁয়া ছাড়াই গিট চেকআউট এবং মার্জ করুন
কার্যকরী ডিরেক্টরি পরিবর্তন না করে মার্জ করা