গিটের মঞ্চে আপনি কীভাবে প্রতিশ্রুতি স্থানান্তর করবেন?


143

আপনি যদি মঞ্চের অঞ্চলে কোনও প্রতিশ্রুতি স্থানান্তর করতে চান - এটি আপত্তিহীন এবং এতে থাকা সমস্ত পরিবর্তনগুলি মঞ্চ অঞ্চলে স্থানান্তরিত করতে হবে (কার্যকরভাবে শাখাকে রাজ্যে চাপিয়ে দেওয়া যে এটি অঙ্গীকারের পূর্বে ছিল) - তুমি এটা কিভাবে কর? বা এটি এমন কিছু যা আপনি করতে পারবেন না?

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

উত্তর:


267
git reset --soft HEAD^

এটি আপনার সূচকটি HEAD^(পূর্ববর্তী প্রতিশ্রুতি) এ পুনরায় সেট করবে তবে স্টেজিং এরিজে আপনার পরিবর্তনগুলি ছেড়ে যাবে।

দস্তাবেজে কিছু সহজ চিত্র রয়েছেgit-reset

আপনি যদি উইন্ডোতে থাকেন তবে আপনার এই ফর্ম্যাটটি ব্যবহার করতে হতে পারে:

git reset --soft HEAD~1

18
যদি এটি কিছুই না করে git reset --soft HEAD~1তবে উইন্ডোজে কাজ করে যার অর্থ একই জিনিস।
রোমান স্টারকভ

9
গিল সংস্করণে স্পষ্ট করে বলতে, টিলড এবং ক্যারোটের অর্থ ভিন্ন জিনিস। হেড ~ 1 সর্বদা কমিটের প্রথম পিতামাতাকে অনুসরণ করে, যা একাধিক পিতা-মাতার একীকরণের প্রতিশ্রুতিবদ্ধ হয়ে যদি আপনি চান তা নাও হতে পারে। উইন্ডোজ সেন্টিমিডি শেল সম্পর্কে, আপনাকে "গ্যাড রিসেট - সোফট হেড ^^" "হেড ^" এ ফিরে যেতে কেবল অন্য ক্যারোটের সাহায্যে ক্যারোট থেকে পালাতে হবে। এটি উইন্ডোজ সেন্টিমিডি শেলের বিশুদ্ধরূপে একটি নিদর্শন, সুতরাং আপনি যদি উইন্ডোজে একটি গিট জিইআই ব্যবহার করেন তবে এটি করার দরকার নেই। টিলডে এবং ক্যারোটটির ব্যাখ্যা দেওয়া হয়েছে schacon.github.io/git/git-rev-parse#_specif__varvisions
দেখানো হয়েছে

আমি "হ্যান্ডি ডায়াগ্রাম" এর জন্য একটি লিঙ্ক যুক্ত করেছি। আপনি যে বিভাগটি বোঝাতে চেয়েছেন তা যদি আপনি তাড়াতাড়ি পরীক্ষা করতে পারেন? ধন্যবাদ
নিউইরন

5

একটি সহজ উপায়

  1. স্টেজিং এরিয়াতে প্রতিশ্রুতিবদ্ধ ফাইলগুলি

    git reset --soft HEAD^1

  2. আনসটেজে স্টেজিং : ( আনসাবস্থার জন্য "গিট রিসেট হেড ..." ব্যবহার করুন)

    git reset HEAD git commands.txt or git reset HEAD *ds.txt

এখানে, * -> সমস্ত ফাইল আনসেজ করার জন্য ds.txt দিয়ে শেষ হয়।

স্পষ্টতার জন্য নীচের ছবিটি দেখুন:

এখানে চিত্র বর্ণনা লিখুন

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