'গিট দোষ' কী করে?


314

ব্যবহারের পদ্ধতিগুলি সম্পর্কে আমি প্রচুর প্রশ্ন দেখেছি git blame, তবে আমি সেগুলি সত্যই বুঝতে পারি না।

আমি Blameগিটহাব ইন্টারফেসে ফাইলগুলির শীর্ষে একটি বোতাম দেখতে পাচ্ছি । এটি ক্লিক করার পরে, এটি বাম বারের ব্যবহারকারীর নামগুলির সাথে কিছু আলাদা দেখায়। কী ইঙ্গিত দেয়?

git blameগিটহাব বাদে কেন আসলে ব্যবহার করা হয়?


66
যদি "দোষারোপ" খুব শোনায় তবে ভাল, আপনার জন্য দোষারোপ করুন, আপনি এই স্ক্রিপ্টটি ইনস্টল করতে পারেন এবং git praiseপরিবর্তে ব্যবহার করতে পারেন :) github.com/ansman/git-praise
জন কিপারস্কি

7
এটি দোষ বা প্রশংসা করা উচিত নয়; এটি সহজাতভাবে অনুমানযোগ্য এবং উদ্দেশ্যমূলক হওয়া উচিত।
pdvries

40
git objectively-determine-contributerশুধু এটির মতো রিং নেই।
বোস

27
@ Itত্বিকবোস বা নিছকgit who
aktivb

উত্তর:


238

থেকে Git-দোষ :

প্রদত্ত ফাইলে প্রতিটি লাইনটিকে সংশোধন থেকে তথ্য দিয়ে এনটেট করে যা সর্বশেষে লাইনটি সংশোধন করেছে। Allyচ্ছিকভাবে, প্রদত্ত পুনর্বিবেচনা থেকে টীকাগুলি শুরু করুন।

যখন এক বা একাধিকবার নির্দিষ্ট করা হয়, -L অনুরোধ করা লাইনে টীকাটি সীমাবদ্ধ করে।

উদাহরণ:

johndoe@server.com:~# git blame .htaccess
...
^e1fb2d7 (John Doe 2015-07-03 06:30:25 -0300  4) allow from all
^72fgsdl (Arthur King 2015-07-03 06:34:12 -0300  5)
^e1fb2d7 (John Doe 2015-07-03 06:30:25 -0300  6) <IfModule mod_rewrite.c>
^72fgsdl (Arthur King 2015-07-03 06:34:12 -0300  7)     RewriteEngine On
...

দয়া করে নোট করুন যে git blameকালানুক্রমিক অর্থে প্রতি-লাইন পরিবর্তনের ইতিহাস প্রদর্শন করে না। এটি কেবলমাত্র শেষ ব্যক্তি হিসাবে ডকুমেন্টে একটি লাইন পরিবর্তন করেছে এমন শেষ ব্যক্তি কে দেখায় HEAD

এর অর্থ এটি হ'ল ডকুমেন্ট লাইনের সম্পূর্ণ ইতিহাস / লগটি দেখতে git blame path/to/fileআপনার নিজের প্রতিটি প্রতিশ্রুতিবদ্ধতার জন্য একটি চালনা করতে হবে git log


1
সুতরাং এটি কেবল শেষ ব্যক্তিকে দেখার জন্য?
রাফাত এরদেডম সাহিন

2
হ্যাঁ, এটি আপনাকে সর্বশেষ ব্যক্তিটি দেখার সুযোগ দেয় যিনি লাইনটি পরিবর্তন করেছেন।
চিহ্নিত করুন

@ মার্ক তাই যখন আমরা কোনও আইডিইতে টিকা দেই, এটি অভ্যন্তরীণভাবে গিট দোষের আদেশ দেয়?
নাগারাজন শানমুগাথন

2
@ নাগারাজনশানমুগাথন হ্যাঁ, আপনি যদি গিট ব্যবহার করেন তবে পর্দার আড়ালে এটিই ঘটছে।
চিহ্নিত করুন

150

কমান্ড নিজেকে বেশ ভাল ব্যাখ্যা করে। কোন সহকর্মী নির্দিষ্ট লাইনটি লিখেছেন বা প্রকল্পটি নষ্ট করেছে তা নির্ধারণ করার জন্য, যাতে আপনি তাদের দোষ দিতে পারেন :)


105
কমান্ডটি আসলে মনে হচ্ছে আপনি এটি চালিয়ে কাউকে দোষ দিচ্ছেন । এই পোস্টে এটি কী করেছিল আমি তা জানার আগে কমপক্ষে এটি আমার কাছে কেমন শোনাচ্ছে।
ফ্রান্সিসকো সি।

12
@FranciscoC। আপনি এটি সন্ধান করছেন: github.com/jayphelps/git-blame-someone-else
ডাস্টওয়াল্ফ

2
@FranciscoC। অপেক্ষা করুন কি, দয়া করে ঠিক এমনটি করে না তাই আপনাকে অন্য কাউকে দোষ দিতে দেয় ?
ইয়ানডেস

16
@ আইয়ানডেস সম্ভবত এটি কেবল শব্দার্থক, তবে git blameমনে হচ্ছে এটির কিছুটা অব্যাহত প্রভাব থাকবে, এর মতোই git commit, যেখানে বাস্তবে এটি আপনাকে জানায় যে কে কী পরিবর্তন করেছে। এটি এবং "দোষ" শব্দটি নেতিবাচক অভিব্যক্তিটি বহন করে, আদেশটি এমন কিছুর মতো করে তোলে যা আপনার থেকে দূরে থাকা উচিত এবং স্পষ্টতা চেয়ে এই জাতীয় প্রশ্নের দিকে নিয়ে যায়।
ফ্রান্সিসকো সি

20
স্পষ্টতই, এটি বলা উচিত git praise
pfnuesel

75

গিটহাব থেকে :

দোষ কমান্ডটি একটি গিট বৈশিষ্ট্য, কোনও ফাইলে কে পরিবর্তন করেছে তা নির্ধারণ করতে আপনাকে সহায়তা করার জন্য ডিজাইন করা হয়েছে।

এর নেতিবাচক-শব্দযুক্ত নাম সত্ত্বেও গিট দোষ আসলে বেশ নিরীহ; এর প্রাথমিক কাজটি হ'ল কোনও ফাইলের মধ্যে কোন লাইনগুলি পরিবর্তন হয়েছে এবং কেন তা নির্দেশ করা। আপনার কোডে পরিবর্তনগুলি সনাক্ত করতে এটি একটি দরকারী সরঞ্জাম হতে পারে।

মূলত, git-blameকোন ফাইলের প্রতিটি লাইনে সংশোধন এবং লেখক সর্বশেষ পরিবর্তন করেছেন তা দেখাতে ব্যবহৃত হয়। এটি কোনও ফাইলের বিকাশের ইতিহাস যাচাই করার মতো।


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

8
আমার ধারণা, কমান্ডটির নাম লিনাসের হাস্যরসের নির্দিষ্ট বোধের ফলাফল ছিল :) এটি কাউকে হেয় করার উদ্দেশ্যে ব্যবহার করা হয়নি এটি :) এটি একটি কার্যকর কমান্ডের নাম হিসাবে একটি মজার (বা না) পছন্দ ছিল :)
ম্লাদেন বি।

2
@ ব্যবহারকারী 1431356 - মূল কথাটি হ'ল আপনি প্রথম লগ লাইনটি চান যা একটি নির্দিষ্ট লাইনকে প্রভাবিত করে । অন্যথায় আপনাকে কোনও নির্দিষ্ট স্ট্রিংয়ের জন্য লগগুলি সন্ধান করতে হবে। (যা প্রকৃতপক্ষে একটি কার্যকর উপায় - "গিট লগ-এস" এর জন্য ম্যান পেজগুলিতে দেখুন))
আজার্নিক

1
"দোষ" শিরোনাম এমন একটি বিষয় যা গিটের আগে বহু বছর ধরে বিদ্যমান ছিল। শুধু এসএনএন এর বাস্তবায়ন দেখুন । এটি লিনাস টরভাল্ডস প্রদত্ত একটি নাম ছিল না।
জ্যাকএস

"আমার ধারণা, কমান্ডের নামটি লিনাসের হাস্যরসের নির্দিষ্ট বোধের ফলাফল ছিল :) এটি কাউকে হেয় করার উদ্দেশ্যে ব্যবহার করা হয়নি :)" হ্যাঁ ... লিনাসের ব্যক্তিত্বের মতোই এবং এটি বোঝাতে চেয়েছিল কাউকে হেয় করা
সিনায়েস্টিক

34

এই git blameফাইলটি সর্বশেষ পরিবর্তনের জন্য কে / কোন প্রতিশ্রুতিবদ্ধ তা জেনে কমান্ডটি ব্যবহার করা হয়। প্রতিটি লাইনের লেখক / প্রতিশ্রুতিও দেখা যায়।

git blame filename (কোডের সমস্ত লাইনের পরিবর্তনের জন্য দায়বদ্ধ)

git blame filename -L 0,10 ("0" থেকে "10" রেখায় পরিবর্তনের জন্য দায়ী প্রতিশ্রুতিবদ্ধ)

দোষারোপ করার জন্য আরও অনেক অপশন রয়েছে তবে সাধারণত এগুলি সাহায্য করতে পারে।


2

git blameকমান্ড সংস্করণ যা সর্বশেষ সংশোধিত লাইন থেকে তথ্য দিয়ে লাইন টীকা যোগ করে, এবং ... গীত 2.22 সঙ্গে (Q2 এর 2019), তাই করতে হবে দ্রুত , একটি কার্যকারিতা ফিক্স কারণ প্রায় " git blameবিশেষ করে একটি রৈখিক ইতিহাসে", (যা আদর্শ আমাদের জন্য অনুকূলিত করা উচিত)।

দেখুন কমিট f892014 (02 এপ্রিল 2019) দ্বারা ডেভিড কাস্টরুপ ( fedelibre)(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 4d8c4da , 25 এপ্রিল 2019)

blame.c: উত্সাহিত উত্স হিসাবে উত্সাহিত না

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

স্মৃতিতে এই ধরনের পিতামহুল ব্লবগুলি রাখা একটি যুক্তিসঙ্গত অপ্টিমাইজেশনের মতো মনে হয় যা বেশিরভাগ পুরানো শাখাগুলি থেকে মার্জগুলি প্রক্রিয়া করার সময় অতিরিক্ত মেমরি চাপ চাপানো উচিত।


1

git blameকমান্ড যখন প্রতিটি লাইনে সর্বশেষ সংশোধিত হয় এবং যারা পরিবর্তন লেখক ছিলেন লাইন দ্বারা একটি ফাইল লাইন বিষয়বস্তু পরীক্ষা কর এবং দেখ করতে ব্যবহৃত হয়।

কোডে কোনও ত্রুটি থাকলে, কে কে কে কেস করেছে তা সনাক্ত করতে এটি ব্যবহার করুন, তবে আপনি তাকে দোষ দিতে পারেন। গিট দোষ হয় দোষ পেতে।

যদি আপনার এক লাইনের কোড, git log -S"code here"গিট দোষের চেয়ে সহজ , ব্যবহারের ইতিহাস জানা দরকার ।

গিট লগ বনাম গিট দোষ

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