প্রতিশ্রুতি বার্তা পরিবর্তন না করে কোন প্রতিশ্রুতি সংশোধন করবেন (আগেরটি পুনরায় ব্যবহার করুন)?


656

vi(বা আপনার $EDITOR) আপনার প্রতিশ্রুতি বার্তাটি সংশোধন করার বিকল্পটি না ফেলে, তবে কেবল পূর্ববর্তী বার্তাটি পুনরায় ব্যবহার করেই কোনও প্রতিশ্রুতি সংশোধন করার কোনও উপায় আছে ?


5
সংশোধন করার অসুবিধাগুলি কঠোরভাবে শেখার পরে আমি আমার নিজের প্রশ্নকে হ্রাস করব।
শ্রীধর সারনোবাত

28
যতক্ষণ আপনি নির্দিষ্ট বিধি মেনে চলেন (যেমন ইতিমধ্যে ধাক্কা দেওয়া কিছু সংশোধন না করা) এমন কোনও কারণ নেই যা সংশোধন করা খারাপ জিনিস হতে পারে।
paullb

3
একক যৌক্তিক পরিবর্তনের সময় সংশোধন করে কমিটস সাময়িকভাবে কাজের প্রতিশ্রুতিবদ্ধ হওয়া উচিত নয়। তার জন্য আপনার স্থানীয়ভাবে যথাযথ প্রতিশ্রুতিবদ্ধ হওয়া উচিত এবং তারপরে কমিটের ইতিহাসটি একবারে স্কোয়াশ করা উচিত (@ শ্রীধর-সার্নোব্যাট)
ডিবিসিরিগো ২

3
আমি @ ডিবিসিরিগো পুরোপুরি একমত একমাত্র পরিস্থিতিটি আমি সংশোধনকারীকে দরকারী বলে মনে করি যখন আমি পূর্বের প্রতিশ্রুতিতে কোনও ফাইল মঞ্চস্থ করতে ভুলে গিয়েছি (উদাঃ কারণ এটি নতুন এবং তাই গিট কমিট-এ চলাকালীন স্বয়ংক্রিয়ভাবে মঞ্চস্থ হয় না) এবং পূর্ববর্তীভাবে এটি প্রতিশ্রুতিবদ্ধ করতে চাই।
শ্রীধর সারনোবাত

1
আপনি যদি ইতিহাসের পরিবর্তনের ঝুঁকিগুলি স্বীকৃতি দেন তখনও অন্য সময় সংশোধন করা কার্যকর হয় যদি আপনি আপনার সাম্প্রতিক প্রতিশ্রুতিবদ্ধ বার্তাটি থেকে অসন্তুষ্ট হন এবং পুনরায় শোধ না করেই এর পুনরায় শব্দটি ব্যবহার করতে চান।
শ্রীধর সারনোবাত

উত্তর:


1009

গিট 1.7.9 সংস্করণ যেহেতু আপনিও ব্যবহার করতে পারেন git commit --amend --no-edit আপনার ফলাফল পেতে করতে পারেন।

মনে রাখবেন যে এতে অন্য প্রতিশ্রুতি যেমন মেটাডেটা অন্তর্ভুক্ত থাকবে না যেমন টাইমস্ট্যাম্প যা আপনার পক্ষে গুরুত্বপূর্ণ বা নাও হতে পারে।


42
আপনি একটি উপনাম যোগ করে - না-সম্পাদনা পত্রে ডিফল্ট করাও সহজ করতে পারেন: "সংশোধন = কমিট - একটি --amend --no- সম্পাদনা"
ঝেরিকো

1
@ ঝেরিকো - আমি একটি অপসারণের পরামর্শ দেব। অনুগ্রহ করে পারমাণবিক কমিটি করুন, পর্যালোচনা করা বা
পুনর্বাসনা করা

120

git commit -C HEAD --amendআপনি যা চান তা করবে -Cবিকল্প আরেকটি কমিট থেকে মেটাডাটা লাগে।


15
শুধু অ্যান্ডির উত্তর যুক্ত করতে। এটি যদি আপনি ঘন ঘন কিছু করেন তবে আপনি এটির ব্যবহার করে একটি উপনাম সেট করতে পারেন git config --global alias.amend 'commit --amend -C HEAD'। তারপরে আপনি git amendশর্টকাট হিসাবে ব্যবহার করতে পারেন ।
মাইকেজ

9
ছেলেরা, অলস হয়ে উঠবেন না, গিটটি আপগ্রেড করুন এবং শাগল প্রস্তাবিত বিল্ট-ইন কমান্ডটি ব্যবহার করুন! প্লাস ওয়ান জন্য-সি বিকল্প যদিও।
দিমিত্রিস বাল্টাস

4
শুধু টাইমস্ট্যাম্পই নয়, লেখকের তথ্যও রয়েছে!
ব্যবহারকারী 1338062

3
@ রায়ানকাস্টনার সত্যই, আপনি যে মন্তব্যটি উল্লেখ করছেন তা ছিল ২০১৩ সালের --amend। এই হিসাবে, আমি আমার পুরানো মন্তব্য মুছে ফেলেছি।
রুবেন ভেরবার্গ

2
আসলে এই উত্তরটি গ্রহণযোগ্য উত্তর না হলেও আলাদাভাবে মূল্যবান। অন্যান্য উত্তরের মতো, আপনাকে ব্যবহার করতে হবে না —amend। আপনি একটি নতুন প্রতিশ্রুতি তৈরি করতে পারেন তবে আগের প্রতিশ্রুতি হিসাবে একই বার্তাটি ব্যবহার করতে পারেন। এটি কার্যকর নাও লাগতে পারে তবে আমার প্রতিশ্রুতিবদ্ধ বার্তাটি ডিফল্টরূপে যখন আমি কেবল একটি ভাল প্রতিশ্রুত বার্তা না ভেবে নিজের কাজটি সংরক্ষণ করি, আমি বার্তাটি পুনরায় ব্যবহার করে —message=“Work in progress (untested)”
চলেছি

67

আর একটি (নির্বোধ) সম্ভাবনা হ'ল আপনি যেমন git commit --amend <<< :wqvi (মি) পেয়ে গেছেন $EDITOR


39
এমনকি যদি এই ব্যবহারের ক্ষেত্রে এটি অপরিহার্য না হয় তবে আমি জানতাম না যে আপনি ভিপ করতে পারেন। এটি কিছু উদ্ভট সম্ভাবনা খুলে দেয়। দুর্দান্ত টিপ।
শ্রীধর সারনোবাত

6
... <<< ZZ
টাইপিংও

6
... <<< :x
..আরও

3
আমি এটি নির্বোধ মনে হয় না। Vi কমান্ডের যে কোনও কমান্ডের জন্য কর্মপ্রবাহকে উন্নত করার একটি দুর্দান্ত উপায়।
বি সাত

12
ট্রিপল এঙ্গেল বন্ধনী এটা নতুন
অলিগোফ্রেন

16

গৃহীত উত্তরটি প্রসারিত করতে, আপনি এটি করতে পারেন:

git commit --amend --no-edit -a

বর্তমানে পরিবর্তিত ফাইল যুক্ত করতে।


11

একটি উপনাম তৈরির জন্য গৃহীত উত্তর ব্যবহার করে

 oops = "!f(){ \
    git add -A; \
    if [ \"$1\" == '' ]; then \
        git commit --amend --no-edit; \
    else \
        git commit --amend \"$@\"; \
    fi;\
}; f"

তাহলে আপনি করতে পারেন

git oops

এবং এটি সমস্ত কিছু যুক্ত করবে এবং একই বার্তাটি ব্যবহার করে সংশোধন করবে

অথবা

git oops -m "new message"

বার্তা প্রতিস্থাপন সংশোধন করতে

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