আমার সমস্ত পরিবর্তনগুলি বর্তমান শাখায় নিয়ে যান এবং এগুলিকে গিতে একটি নতুন শাখায় সরিয়ে দিন


105

আমি আমার মাস্টার শাখায় একটি ছোট্ট বাগ ফিক্স হবে বলে ভেবে কাজ শুরু করেছি। যাইহোক, এটি নিয়ন্ত্রণের বাইরে চলে গেছে এমন জায়গায় যেখানে আমার ইচ্ছা আমি প্রথম দিকে উন্নয়নের জন্য একটি পৃথক শাখা তৈরি করেছিলাম।

এখনই আমি যা করতে চাই তা হ'ল:

  1. "প্রান্ত" নামে একটি নতুন শাখা তৈরি করুন
  2. সমস্ত পরিবর্তিত / চিহ্নবিহীন ফাইলগুলিকে মাস্টারে প্রান্তে সরান (যেমন আমি যখন বাগ ফিক্স শুরু করেছি তখন থেকে মাস্টার অপরিবর্তিত থাকে)
  3. আমার কাজটি প্রান্তে শেষ করুন, আবার মাস্টারে মার্জ করুন

কিভাবে আমি এটি করতে পারব?

উত্তর:


103

আপনি যদি এখনও কিছু না করে থাকেন তবে আপনি ইতিমধ্যে সঠিক অবস্থানে রয়েছেন।

  1. একটি নতুন শাখা তৈরি করুন: git checkout -b edge
  2. আপনার ফাইলগুলি পরিবর্তন হয়নি। শুধু git addকি প্রয়োজন যথারীতি কমিট।
  3. যখন আপনি প্রতিশ্রুতিবদ্ধ কাজটি সম্পন্ন করবেন তখন এবং এর সাথে edgeফিরে যান ।mastergit checkoutgit merge edge

এখনও কিছু প্রতিশ্রুতিবদ্ধ হয়নি, যাতে প্রথম লাইনটি একটি স্বাগত দর্শন ছিল ... ভাই, এটি আসলে বেশ
বেদনাবিহীন

87

জেবির উত্তরে যুক্ত করতে, আপনি যদি ইতিমধ্যে "প্রান্ত" প্রচেষ্টা হিসাবে শেষ হয়ে যায় তার জন্য যদি আপনি মাস্টারকে কিছুটা কমিট করতে শুরু করে থাকেন তবে আপনি করতে পারেন:

git stash
git checkout -b edge master
git branch -f master SHA1_before_your_commits
git stash apply

স্ট্যাশ র্যাপার কঠোরভাবে প্রয়োজনীয় নয়, তবে কেবল অনির্দিষ্ট কাজের পরিবর্তনের জন্য?

4
নিখুঁত "আমার সমস্ত পরিবর্তনগুলি গ্রহণ করুন" দ্বারা, আমি বর্তমান-এখনও-যোগ না হওয়া পরিবর্তনগুলিও অন্তর্ভুক্ত করেছি। অতএব stash।
ভোনসি

দ্বিতীয় এবং তৃতীয় লাইনটি "গিট চেকআউট-বি এজ মাস্টার" তে ভেঙে দেওয়া যায় না?
পল লিঞ্চ

(যারা করে বিবেচনা করা @PaulLynch master) যে থাকা উচিত edge হয় উপর master, হ্যাঁ। আমি উত্তর সম্পাদনা করেছি।
ভনসি

আমি git stashএখানে কীভাবে কার্যকর তা দেখছি না , কারণ ব্যবহারের git checkout -bফলে গাছের গাছটি মোটেও সংশোধন হয় না ...
ব্যবহারকারীর 6868

13

আপনি যদি মাস্টার থেকে কাজটি ইতিমধ্যে বিদ্যমান একটি শাখায় স্থানান্তরিত করার চেষ্টা করছেন তবে মাস্টারের পিছনে থাকলে গিট আপনাকে অন্য শাখায় স্যুইচ করতে দেয় না। এই ক্ষেত্রে, এটি করুন:

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