git - জিট একটি নতুন শাখায় বিদ্যমান, uncommitted কাজ সরানো




git-branch git-stash (4)

নিম্নলিখিত ব্যবহার:

git checkout -b <new-branch>

এটি আপনার বর্তমান শাখাকে যেমন ছেড়ে দেয়, একটি নতুন শাখা তৈরি করে এবং চেকআউট করে এবং আপনার সমস্ত পরিবর্তন রাখে। আপনি তারপর সঙ্গে একটি কমিট করতে পারেন:

git add <files>

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

git commit -m "<Brief description of this commit>"

সূচী মঞ্চে পরিবর্তনশীল ডিরেক্টরি এবং পরিবর্তনগুলি এখনো কোন শাখার অন্তর্গত নয়। এই পরিবর্তন যেখানে শেষ হবে এই পরিবর্তন।

আপনি আপনার মূল শাখা রিসেট করবেন না, এটি হিসাবে এটি থাকে। <old-branch> সর্বশেষ কমিটি এখনও একই হবে। অতএব আপনি checkout -b এবং তারপর কমিট।

আমি একটি নতুন বৈশিষ্ট্যতে কিছু কাজ শুরু করেছিলাম এবং কিছুটা কোডিং করার পরে, আমি এই বৈশিষ্ট্যটির নিজস্ব শাখায় থাকা উচিত।

আমি কিভাবে একটি নতুন শাখায় বিদ্যমান অসংরক্ষিত পরিবর্তন সরানো এবং আমার বর্তমান এক রিসেট করতে পারি?

নতুন বৈশিষ্ট্যতে বিদ্যমান কাজ সংরক্ষণ করার সময় আমি আমার বর্তমান শাখাটি পুনরায় সেট করতে চাই।


বিকল্পভাবে:

  1. বর্তমান পরিবর্তনগুলি একটি টেম্প স্ট্যাশে সংরক্ষণ করুন:

    $ git stash

  2. এই স্ট্যাশের উপর ভিত্তি করে একটি নতুন শাখা তৈরি করুন এবং নতুন শাখাটিতে স্যুইচ করুন:

    $ git stash branch <new-branch> [email protected]{0}

টিপ: স্ট্যাশ নাম টাইপ কমানোর জন্য ট্যাব কী ব্যবহার করুন।


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

git stash 
git checkout master
git checkout -b "New_branch"
git stash apply

যদি আপনি কোডড করার সময় আপনার প্রধান শাখায় কাজ করতে থাকেন তবে আপনি এখন সেগুলি অন্য কোন শাখাতে স্থানান্তর করতে চান:

  1. আপনার বর্তমান ইতিহাসকে একটি নতুন শাখায় অনুলিপি করুন, যেকোনো অসংযত পরিবর্তনগুলিও আনয়ন করুন:

    git checkout -b <new-feature-branch>
    
  2. এখন আসল "নোংরা" শাখাটি ফিরতে বাধ্য করুন: (এতে স্যুইচ না করে)

    git branch -f <previous-branch> <earlier-commit-id>
    

    উদাহরণ স্বরূপ:

    git branch -f master origin/master
    

    অথবা যদি আপনি 4 টি তৈরি করেছেন:

    git branch -f master HEAD~4
    

সতর্কতা: এটি প্রদর্শিত হয় যে git branch -f master origin/master সেই শাখাটির জন্য ট্র্যাকিং তথ্য পুনরায় সেট করবে। সুতরাং যদি আপনি origin/master ছাড়া অন্য কোথাও ধাক্কা দেওয়ার জন্য আপনার master শাখা কনফিগার করেন তবে সেই কনফিগারেশনটি হারিয়ে যাবে।

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





git-reset