সংশোধন করার সময় গিট কমিট লেখকের তারিখ আপডেট করুন


305

আমি নিজেকে প্রায়শই আমার প্রতিশ্রুতিগুলি সংশোধন করতে দেখেছি। আমি stashএতটা করি না কারণ আমি ভুলে যাওয়ার প্রবণতা রাখি কারণ আমি তা করেছি, বিশেষত যখন আমি যাবার আগে বা সপ্তাহান্তের আগে যা করেছি তা সংরক্ষণ করতে চাই, তাই আমি একটি "খসড়া" কমিট করি। কেবলমাত্র আমি যখন প্রতিশ্রুতি সংশোধন করি তখন এটি মূল লেখকের তারিখে সেট করা থাকে। সংশোধন করার সময় এটি আপডেট করার কোনও (সহজ) উপায় আছে?


5
এটি বিশেষত কার্যকর যখন আপনি ইন্টারেক্টিভ রিবেস সম্পাদন করেন এবং গিটহাবটি তারিখের আদেশের পরিবর্তে গাছ ক্রমে অনুরোধগুলি সম্পাদন করার প্রত্যাশা করেন।
সুকিমা

উত্তর:


368

আপনি --dateপ্যারামিটার দিয়ে লেখকের তারিখ পরিবর্তন করতে পারেন git commit। সুতরাং, আপনি যদি সর্বশেষ প্রতিশ্রুতি সংশোধন করতে চান এবং তার লেখকের তারিখটিকে বর্তমান তারিখ এবং সময় আপডেট করতে চান তবে আপনি এটি করতে পারেন:

git commit --amend --date="$(date -R)"

( -Rপ্যারামিটারটি dateএটিকে আরএফসি ২৮২২ ফর্ম্যাটে তারিখের আউটপুট বলতে বলে। এটি তারিখের ফর্ম্যাটগুলির মধ্যে একটি যা বোঝাgit commit


27
ওএস এক্সের মতো দেখতে এফটিআর, dateজানা নেই -Rdateবিকল্প ছাড়াই ব্যবহার করে যাইহোক কাজটি হয়েছে
ksol

7
নোট করুন যে আপনি যদি এটির একটি উপন্যাস হিসাবে চান তবে আপনার একটি যোগ করতে হবে !এবং উদ্ধৃতি চিহ্নগুলি এড়াতে হবে, উদাহরণস্বরূপcan = !git commit --amend --date=\"$(date -R)\"
ফ্যাবিয়ান স্টেগ

9
date -Rউপর ওএসএক্স কাজ করে না, ব্যবহার date +%sপরিবর্তে
লুকোবার জায়গা

4
git commit --amend --date="$(date +%s)"
আইডিএম

120
git commit --amend --date=nowকাজ করে। তারিখ (1) কমান্ডের সাথে সাব-শেল নেওয়ার দরকার নেই । আপনি এটি তারিখের গিটের সোর্স কোড (1) এ দেখতে পারেন .c 'এখন' একটি বিশেষ মান যা ডেট_নো () ফাংশন ব্যবহার করে রূপান্তরিত হয়। কাঠামোর অ্যারে বিশেষে তালিকাভুক্ত 'দুপুর', 'গতকাল', 'মধ্যরাত', 'চা' এবং অন্যান্যদের জন্য একই []।
sbz

267

এটি করার আরেকটি উপায়

git commit --amend --reset-author

এটি কমিট লেখকের পাশাপাশি তারিখের পরিবর্তন করে - তবে এটি যদি মূলত আপনার চাপযুক্ত প্রতিশ্রুতিবদ্ধ হয় তবে এটি কোনও অপশন নেই।

আপনি --no-editএকাধিক কমিটের তারিখ আপডেট করতে চাইলে আপনি যুক্ত করতে পারেন তবে প্রতিশ্রুতি বার্তাগুলি অদৃশ্য থাকতে চান। এইভাবে আপনাকে প্রতিটি প্রতিশ্রুতির জন্য বার্তা সম্পাদনা করার অনুরোধ জানানো হবে না।


4
আমি ভাবছি কেন এই আচরণটি ডিফল্ট নয় এবং স্পষ্টভাবে নির্দিষ্ট করা উচিত। এটি অত্যন্ত আশ্চর্যজনক এবং সম্ভাব্য খারাপ পরিণতির দিকে পরিচালিত করে। আমার বোধগতিতে git commit --amend পরিবর্তনগুলি কেবলমাত্র টুইট বা সেই জাতীয় কিছু না করে প্রতিশ্রুতি দেয়, অর্থাত্ এটি কোনও সংগ্রহস্থল নিয়ন্ত্রণ ব্যবস্থা অত্যন্ত কঠোর যেখানে সংগ্রহস্থল সামগ্রীর পরিবর্তনের বিভিন্ন ইতিহাসে আসে। এবং যেমন আমি স্বজ্ঞাতভাবে আশা করি যে লেখক এবং তারিখ উভয়ই প্রকৃত প্রতিশ্রুতি ডেটার সাথে মেলে matching বিশেষ করে লেখকত্ব গুরুত্বপূর্ণ, এমনকি তারিখও নয়। আপনি যদি এই জাতীয় ডিফল্টর জন্য দায়বদ্ধ গিট বিকাশকারীদের বীট করতে চান তবে এই মন্তব্যটি ভোট দিন। :)
আর্টেম পিসারেঙ্কো

258

গিট ভি ২.১.৪ হিসাবে (দেবিয়ান ৮ (জেসি) এ পরীক্ষিত)

git commit --amend --date=now

8
এবং আপনি যদি প্রতিশ্রুতি বার্তাটি আবার দেখতে চান না, যোগ করুন --no-edit
হেনরিক এন

12

আমি মার্কের উত্তরটি পছন্দ করি এবং এটি নিজে নিজে বেশ কয়েকবার ব্যবহার করেছি তবে এখন আমি ওএস এক্সে আছি এবং date -Rসমর্থিত নয়। তবে আসল উত্তরের চেয়ে সবকিছুই সহজ, আমাদের খালি স্ট্রিং ব্যবহার করুন !

git commit --date= --amend

6
যে কাজ করে না। গিট ত্রুটিটি সহ বন্ধ করে দেয়fatal: invalid date format:
নিকোস সি

আমার জন্য কাজ করেছেন (উইন্ডোজ, গিট 1.9.4 এ)
সিএসকিউ

1
--date="$(date)"ওএস এক্সে ব্যবহার করা আরও ভাল The বিকল্পটি -Rহ'ল জিএনইউজম।
রুদে মৌরা

0

যদি কেউ এখনও একাধিক কমিটের তারিখ পরিবর্তন করার জন্য সহজ উপায় খুঁজছেন তবে আমি এই এনপিএম প্যাকেজটি তৈরি করেছি।

https://github.com/bitriddler/git-change-date

ব্যবহার:

npm install -g git-change-date
cd [your-directory]
git-change-date

17
একজনের কি আসলেই অন্য npmপ্যাকেজ দরকার ? না, কীভাবে gitকমান্ডটি ব্যবহার করতে হয় তা শিখুন ।
উর্দা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.