আপনি আলাদা ব্যবহারকারী হিসাবে কোডটি কীভাবে প্রতিশ্রুতিবদ্ধ করবেন?


112

আমি কোনও স্ক্রিপ্টের জন্য এটি করতে সক্ষম হতে চাই। আমি গিট-এ কিছু কোডের পুরো সংস্করণ ইতিহাসটি পুনরায় তৈরি করছি - এটি বর্তমানে একটি ভিন্ন সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করে। কমিটের মূল লেখক (এবং তারিখ) সংরক্ষণের সময় গিটে করা কমিটগুলিতে যোগ করতে আমার স্ক্রিপ্ট দরকার need

ধরে নিচ্ছি যে আমি প্রতিশ্রুতিবদ্ধ লেখক এবং তারিখ / সময়টি পরিবর্তনটি করেছি তা কি কোনও গিট কমান্ড আমাকে এই কাজটি করার অনুমতি দেয়? আমি ধরে নিচ্ছি সেখানে আছে, কারণ গিট-পি 4 এ জাতীয় কিছু করে। আমি এটি করার সর্বোত্তম উপায় জিজ্ঞাসা করছি।


1
আপনি কি দ্রুত-আমদানি ব্যবহারের চেষ্টা করেছেন?
বিকল্প

আমি সম্মত হই, দ্রুত-আমদানি সম্ভবত সেরাতম উপায় হতে পারে। আপনি গিট কমিট (বা আরও সঠিকভাবে অন্তর্নিহিত নদীর গভীরতানির্ণয়: হ্যাশ-অবজেক্ট , আপডেট-ইনডেক্স , লিখন-বৃক্ষ , কমিট-ট্রি , আপডেট-রেফ , ইত্যাদি) ব্যবহার করতে পারেন তবে দ্রুত-আমদানিটি ভাল, দ্রুত হবে।
ক্রিস জনসেন

আমি দ্রুত-আমদানির কথা ভেবেছিলাম, তবে আমি নিজেই বেশ গম্ভীর প্রাথমিক, তাই আমি প্রাথমিক আদেশগুলি ব্যবহার করার সিদ্ধান্ত নিয়েছিলাম। পুরোপুরি সত্য বলতে আমি দ্রুত-আমদানি কীভাবে কাজ করে তা পুরোপুরি বুঝতে পারি না এবং অতএব যতক্ষণ না আমি এটি আরও ভাল বুঝতে পারি ততক্ষণ এটি ব্যবহার করতে কিছুটা দ্বিধা বোধ করছি। হ্যাঁ, প্রতিশ্রুতি ব্যবহার করে এটি অনেক ধীর হবে তবে কমপক্ষে আমি কী আশা করব তা জানতে হবে - বিশেষত ডিবাগ করার সময়।
কার্ল

1
git কমিট --author = "নাম <name@example.com>" -a -m "কমিট" "
মসিহ

উত্তর:


148

এর --authorজন্য বিকল্পটি দেখুন git commit:

থেকে man পৃষ্ঠা :

--author=<author>

কমিট লেখককে ওভাররাইড করুন। মানক A U Thor <author@example.com>ফর্ম্যাটটি ব্যবহার করে একটি স্পষ্ট লেখক নির্দিষ্ট করুন । অন্যথায় <author>এটি একটি নিদর্শন হিসাবে ধরে নেওয়া হয় এবং সেই লেখক (যেমন rev-list --all -i --author=<author>) দ্বারা বিদ্যমান প্রতিশ্রুতি সন্ধান করতে ব্যবহৃত হয় ; প্রতিশ্রুতিবদ্ধ লেখক এর পরে পাওয়া যেমন প্রথম প্রতিশ্রুতি থেকে অনুলিপি করা হয়।


18
এছাড়াও, --dateতারিখটি ওভাররাইড করার বিকল্প।
ক্রিস জনসেন

আপনি কি একটি নির্দিষ্ট উদাহরণ দিতে পারেন, যা আমি চেষ্টা করি
স্টাডিজিক

@Tim Henigan: দেখে মনে হচ্ছে ডকুমেন্টেশন এখন হোস্ট করা হয় গিটহাব তাই man পৃষ্ঠা লিঙ্কে আপনি পোস্ট মৃত। আপনি কি নতুন পৃষ্ঠাটি একই জিনিস (লিঙ্কগুলি আপডেট করার প্রয়োজন আছে এমন উত্তরগুলির ক্ষেত্রে আছে) তা নিশ্চিত করতে পারেন?
R0MANARMY

@ আর0MANARMY: আমি ইউআরএল আপডেট করেছি। গিটহাব পৃষ্ঠাগুলি সঠিক। ম্যান পেজগুলি আর কার্নেল.আরোগুলিতে হোস্ট না হওয়ায় আমি আমার লিঙ্কটি আপডেট করেছি। পরিবর্তন সম্পর্কে আমাকে জানানোর জন্য ধন্যবাদ।
টিম হেনিগান

1
এখানে আমি যা ব্যবহার করে শেষ করেছি:git commit -a --author="$user_details" --date="submit_date $submit_time" --file=/tmp/commit_msg
কার্ল

113

কেবল এটি যুক্ত করতে: --authorগৃহীত উত্তরে উল্লিখিত বিকল্পটি কেবল লেখককে ওভাররাইড করবে , প্রতিশ্রুতিবদ্ধ প্রতিবেদকের তথ্য নয় ।

এটি বেশিরভাগ ক্ষেত্রে সঠিক আচরণ, তবে যদি কোনও কারণে আপনাকে দায়বদ্ধতার তথ্যটিকে ম্যানুয়ালিও ওভাররাইড করতে হয়, GIT_COMMITTER_NAMEএবং GIT_COMMITTER_EMAILপরিবেশের ভেরিয়েবলগুলি ব্যবহার করুন ( GIT_COMMITTER_DATEপাশাপাশি রয়েছে)। দেখুন গীত-internals-পরিবেশ-ভেরিয়েবল

$ GIT_COMMITTER_NAME="New Name" GIT_COMMITTER_EMAIL="name@email.com" git commit --author="New Name <name@email.com>"

এটি কমিটিকে এমন চেহারা হিসাবে দেখাবে যা নির্দিষ্ট ব্যবহারকারী দ্বারা এটি রচনা এবং প্রতিশ্রুতিবদ্ধ ছিল ।


16
... এবং পার্থক্যটি দেখতে:git log --pretty=fuller
bluenote10

2
পারফেক্ট। এটিই আমি চেয়েছিলাম এবং আমি গিট ইন্টার্নাল ম্যান পেজটি কখনও খুঁজে পেতে পারি না।
কেএসপিতে

3

আপনার ~ / .gitconfig ফাইলটি সম্পাদনা করুন এবং একটি নতুন উপন্যাস যুক্ত করুন যেখানে আপনি একটি অ-ডিফল্ট ব্যবহারকারী এবং ইমেল কাস্টমাইজ করতে পারেন।

[user]
  name = My Name
  email = default@email.com

[alias]
  commit-x = -c user.name='My X Name' -c user.email='mr_x@email.com' commit
  commit-y = -c user.name='My Y Name' -c user.email='mr_y@email.com' commit
  commit-z = -c user.name='My Z Name' -c user.email='mr_z@email.com' commit

এটা পরীক্ষা করো

git commit -m "Custom message with committer and author My Name <default@email.com>"
git commit-x -m "Custom message with committer and author My X Name <mr_x@email.com>"
git commit-y -m "Custom message with committer and author My Y Name <mr_y@email.com>"
git commit-z -m "Custom message with committer and author My Z Name <mr_z@email.com>"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.