আমি কীভাবে গিটের মধ্যে একটি বিশেষ কুনুটিকে ইন্টারেক্টিভভাবে আনস্টেজ করব?


106

ছদ্মবেশে, যদি আমার সূচি অনুসারে একই ফাইল থেকে দু'দুটি শিকার হয়, তবে আমি কীভাবে ইন্টারেক্টিভভাবে তাদের একটিটিকে আনস্টেজ করতে পারি?

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

উত্তর:


135

চেষ্টা করুন git reset --patch filename; ডকুমেন্টেশনgit add --patch অনুযায়ী এটি এর বিপরীতে করা উচিত । সংক্ষিপ্ত ফর্মটি উভয় কমান্ডের জন্যও কাজ করে।-p


আমি মনে করি না যে আমার সংস্করণটিতে এটি রয়েছে (এটি 1.6.3.3) তবে এটি সঠিক উত্তরটির মতো দেখায়।
অ্যান্ড্রু গ্রিম

2
সেক্ষেত্রে (এবং ধরে নিই যে আপনি কোনও কারণে আপগ্রেড করতে পারবেন না), আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি git stash save --keep-indexআপনার বর্তমান কাজের অনুলিপি পরিবর্তনগুলি সংরক্ষণ এবং পুনরায় সেট করতে ব্যবহার করবেন। তারপরে, আপনি নিজের ফাইলটি পুনরায় সেট করতে পারেন এবং আপনি চান না এমন পরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে আনতে পারেন। আপনি যদি প্রথমে কিছু অস্থায়ী স্থানে ফাইলটি অনুলিপি করেন diffতবে আপনি পূর্বাবস্থায় ফিরে আসা পরিবর্তনগুলি সংরক্ষণ করতে ব্যবহার করতে পারেন । তারপরে, আপনি আবার ফাইলটি যুক্ত করতে পারেন (আপনি আগ্রহী নন এমন অন্যান্য পরিবর্তনগুলি আপনি দূরে সরিয়ে দেওয়ার কারণে কোনও ইন্টারেক্টিভ অ্যাডের প্রয়োজন নেই)। ব্যবহারের git stash popপুরোনো পরিবর্তনগুলি ফিরে পেতে, এবং diffপরিবর্তন ফেরানো হয়েছে প্রযোজ্য হবে। বেশ জটিল ... :-(
আসমুন্ড এলদুয়েট

The short form -p also works for both commands... মানে git reset -p filename?
নওয়াজ

1
@ নাওয়াজ: এটি সঠিক - git add -p filenameনির্বাচন থেকে সেই ফাইলটি থেকে পরিবর্তনগুলি পর্যায়ক্রমে পর্যায়ক্রমে পরিবর্তনগুলি git reset -p filenameআনস্টেজ করে। এছাড়াও রয়েছে git checkout -p -- filename, যা আপনাকে একটি ফাইল থেকে পরিবর্তনগুলি নির্বাচন করে বাতিল করতে দেয়। সতর্কতা: এর প্রতিটি addএবং resetদু'জনের অপরটিকে পূর্বাবস্থায় ফেলার জন্য ব্যবহার করা যেতে পারে, তবে আপনি যদি এই রূপটি checkoutকোনও পরিবর্তন বাতিল করতে ব্যবহার করেন তবে আপনি এটি ফিরে পেতে পারবেন না।
আসমুন্ড এলদুয়েস্ট

2

git guiইন্টারেক্টিভভাবে মুরগি বা লাইনগুলি স্টেজে বা আনস্টেজ করার জন্য একটি শালীন জিইউআই রয়েছে। প্রিটটিয়ার / আরও ভাল জিইউআই ক্লায়েন্ট রয়েছে তবে git guiএটি হালকা ওজনের, অন্তর্নির্মিত এবং ক্রস প্ল্যাটফর্ম (লিন, উইন, ম্যাক)।

https://git-scm.com/docs/git-gui

স্টেজ / স্টেজেস্ট করতে টুপিতে কেবল ডান ক্লিক করুন। লাইনের জন্য, প্রথমে লাইনগুলি হাইলাইট করুন, তারপরে ডান ক্লিক করুন।


-1

গিটএক্সের একটি ফাইলের অংশগুলি আনস্টেজ করার জন্য একটি দুর্দান্ত ইউআই রয়েছে: এখানে চিত্র বর্ণনা লিখুন

অফিসিয়াল ক্লায়েন্টটি কিছুক্ষণের মধ্যে রক্ষণাবেক্ষণ করা হয়নি তবে কিছু বৈশিষ্ট্যযুক্ত গিটহাবের একটি কাঁটাচামচ জনপ্রিয়। ( এটি সম্পর্কে ব্লগ পোস্ট )


1
উইন্ডোজ ব্যবহারকারীদের জন্য গিট এক্সটেনশনের একই রকম দুর্দান্ত ইউআই রয়েছে।
আসমুন্ড এলদুয়েস্ট

4
git gui"
বিলম্ব

1
সোর্স ট্রি (উইন্ডোজ + ম্যাক) এর জন্যও একটি দুর্দান্ত ইউআই রয়েছে।
chrnola

আমার এখনই আরও সাম্প্রতিক গ্রাফিকাল গিট ক্লায়েন্টগুলির উল্লেখ করা উচিত - গিটক্রেন সুন্দর, এবং এটি সমর্থন করে (যদিও এটি এখন বাণিজ্যিক ব্যবহারের জন্য একটি বিশাল ফি নিয়ে আসে)। গিটহাবের গিটহাব ডেস্কটপ বিনামূল্যে, সুন্দর এবং সহজেই মঞ্চকে স্টেজে ও আনস্টেজিং সমর্থন করে। গিটক্রেন এবং গিটহাব ডেস্কটপ দুটি ক্রস প্ল্যাটফর্ম, তবে উভয়ই ওপেন সোর্স নয়।
jdgregson
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.