গিটের বিভিন্ন আউটপুটটিতে "@@ -1 +1 @@" অর্থ কী?


106

আমি ফিরে আসা তথ্য থেকে ডেটা সংগ্রহ করছি

git diff <commitId>..<commitId>

আমি দৌড়ে গেলাম @@ -1 +1 @@

আমি কী বলছি তা আমি বুঝতে পারি না। আমি গুগলে কিছুটা অনুসন্ধান করেছি কিন্তু ফল লাভ হয়নি।


এই জাতীয় শিরোনামে কোন ফাইলের ফলাফলের বর্ণনা দিতে পারেন?
কেভর

@ কেওয়রআর যে একধরণের নিরীহ প্রশ্ন, ইউনিফাইড বিন্যাসে যে কোনও ভিন্নতার পরিসীমা শিরোনাম রয়েছে।
যুবাল আদম

@ ইউভালআডাম: প্রকৃত ভিন্ন ইউনিফাইড বিন্যাসে আরও ক্ষেত্র রয়েছে যা [- +] <অবস্থান>, <lines> এর মতো পূরণ করা উচিত এবং এখানে আমাদের কোনও পরিবর্তন প্রদর্শিত হয়নি তবে এই পরিবর্তনগুলি ফাইলের প্রথম লাইনে স্পর্শ করে।
কেভর

উত্তর:


69

এটি একটি ইউনিফাইড ডিফ হঙ্ক শনাক্তকারী। এটি GNU ডিফুটিলেটস দ্বারা নথিভুক্ত করা হয়েছে।

ইউনিফাইড আউটপুট ফর্ম্যাটটি একটি দুই-লাইনের শিরোনাম দিয়ে শুরু হয়, যা দেখতে এরকম দেখাচ্ছে:

--- থেকে ফাইল-ফাইল-পরিবর্তন-সময় 
+++ থেকে-ফাইল-ফাইল-পরিবর্তন-সময়

সময় স্ট্যাম্পটি 2002-02-21 23:30:39.942229878 -0800তারিখ, ভগ্নাংশের সেকেন্ডের সাথে সময় এবং সময় অঞ্চলটি নির্দেশ করে বলে মনে হচ্ছে । ভগ্নাংশের সেকেন্ডগুলি হোস্টগুলিতে বাদ দেওয়া হয় যা ভগ্নাংশের টাইম স্ট্যাম্পগুলি সমর্থন করে না।

--label=labelবিকল্পের সাহায্যে আপনি শিরোনামের সামগ্রী পরিবর্তন করতে পারেন ; বিকল্প নাম দেখুন ।

এরপরে আসে এক বা একাধিক পার্থক্যের; প্রতিটি হুঙ্ক এমন একটি অঞ্চল দেখায় যেখানে ফাইলগুলি পৃথক হয়। ইউনিফাইড বিন্যাস কৃপণ দেখতে দেখতে:

@@ -ফাইল-লাইন-সংখ্যা থেকে ফাইল-লাইন-সংখ্যাগুলিতে @@
  লাইন-থেকে-ফাইল 
 -লাইন-থেকে-ফাইল-ফাইলই ...

যদি একটি কুঁচকিতে কেবল একটি লাইন থাকে তবে কেবল তার প্রারম্ভিক নম্বরটি প্রদর্শিত হয়। অন্যথায় এর লাইন নম্বরগুলি দেখতে দেখতে ভাল লাগে । একটি খালি কুঁচকে কূটকী অনুসরণকারী লাইনে শুরু বলে মনে করা হয়।start,count

যদি একটি কুঁচক এবং এর প্রসঙ্গে দুটি বা ততোধিক লাইন থাকে তবে এর লাইন নম্বরগুলি দেখতে দেখতে ভাল লাগে । অন্যথায় কেবল তার শেষ লাইনের নম্বর প্রদর্শিত হবে। একটি খালি কুঁচকে ডুবুর পূর্ববর্তী লাইনে শেষ বলে মনে করা হয়।start,count

উভয় ফাইলে সাধারণ লাইনগুলি একটি স্থানের অক্ষর দিয়ে শুরু হয়। লাইনগুলি যে দুটি ফাইলের মধ্যে প্রকৃতপক্ষে পৃথক হয় বাম মুদ্রণ কলামে নীচের একটি সূচক অক্ষর থাকে:

  • + +
    একটি লাইন প্রথম ফাইলটি করার জন্য এখানে যোগ করা হয়েছিল।
  • -
    এখানে প্রথম ফাইল থেকে একটি লাইন সরানো হয়েছে।

73

সাধারণ উদাহরণ বিশ্লেষণ

ফর্ম্যাটটি মূলত একই diff -uইউনিফাইড ডিফারেট।

এই ক্ষেত্রে:

diff -u <(seq -w 16) <(seq -w 16 | grep -Ev '^(02|03|14|15)$')

এখানে আমরা 2, 3, 14 এবং 15 লাইনগুলি সরিয়েছি Out আউটপুট:

@@ -1,6 +1,4 @@
 01
-02
-03
 04
 05
 06
@@ -11,6 +9,4 @@
 11
 12
 13
-14
-15
 16

@@ -1,6 +1,4 @@ অর্থ:

  • -1,6এর অর্থ হ'ল প্রথম ফাইলটির এই অংশটি 1 লাইন থেকে শুরু হয় এবং মোট 6 টি লাইন দেখায়। সুতরাং এটি লাইন 1 থেকে 6 দেখায়।

    1
    2
    3
    4
    5
    6
    

    -"পুরানো" অর্থ, আমরা সাধারণত এটি হিসাবে প্রার্থনা করি diff -u old new

  • +1,4এর অর্থ এই যে দ্বিতীয় ফাইলটির এই অংশটি 1 লাইন থেকে শুরু হয় এবং মোট 4 টি লাইন দেখায়। সুতরাং এটি লাইন 1 থেকে 4 দেখায়।

    + "নতুন" এর অর্থ।

    আমাদের 6 টির পরিবর্তে 4 টি লাইন রয়েছে কারণ 2 টি লাইন সরানো হয়েছিল! নতুন হাঙ্কটি ঠিক:

    01
    04
    05
    06
    

@@ -11,6 +9,4 @@ দ্বিতীয় কুনি জন্য অনুরূপ:

  • পুরানো ফাইলে, আমাদের 6 টি লাইন রয়েছে, পুরানো ফাইলের 11 লাইনে শুরু:

    11
    12
    13
    14
    15
    16
    
  • নতুন ফাইলে, আমাদের 4 টি লাইন রয়েছে, নতুন ফাইলের 9 লাইন থেকে শুরু করে:

    11
    12
    13
    16
    

    নোটটি 11নতুন ফাইলের 9 তম লাইন হিসাবে উল্লেখ করুন কারণ আমরা ইতিমধ্যে পূর্ববর্তী হুন: 2 এবং 3 টিতে 2 টি লাইন সরিয়ে ফেলেছি।

হুঙ্ক শিরোনাম

আপনার গিট সংস্করণ এবং কনফিগারেশনের উপর নির্ভর করে আপনি লাইনের পাশের একটি কোড লাইনও পেতে পারেন @@, যেমন func1() {:

@@ -4,7 +4,6 @@ func1() {

এটি -pসমতল পতাকা দিয়েও পাওয়া যায় diff

উদাহরণ: পুরানো ফাইল:

func1() {
    1;
    2;
    3;
    4;
    5;
    6;
    7;
    8;
    9;
}

আমরা যদি লাইনটি সরিয়ে 6ফেলি তবে ভিন্নতা দেখায়:

@@ -4,7 +4,6 @@ func1() {
     3;
     4;
     5;
-    6;
     7;
     8;
     9;

মনে রাখবেন যে func1এটির জন্য সঠিক লাইন নয় : এটি লাইনগুলি এড়িয়ে গেছে 1এবং 2

এই দুর্দান্ত বৈশিষ্টটি প্রায়শই বলে দেয় যে প্রতিটি কুনি কোন ফাংশন বা শ্রেণীর অন্তর্ভুক্ত, যা ভিন্নতার ব্যাখ্যা দেওয়ার জন্য খুব দরকারী।

শিরোনামটি ঠিক কীভাবে বেছে নেবে তা বেছে নেওয়ার জন্য অ্যালগরিদমটি এখানে আলোচনা করা হয়েছে: গিট ডিফ হঙ্ক শিরোলেখার অংশটি কোথা থেকে এসেছে?


আহ, সুতরাং আমি @@ -1,6 +1,4 @@"লাইনের 1 এ শুরু করে, পুরানো লাইনের গণনা 6 ছিল তবে নতুন লাইনের গণনা 4"
মেঘ

4
@ ক্লাউড ইয়ুপ এটি :-)
সিরো সান্তিলি 郝海东 冠状 病 六四 事件 法轮功

6

এই বর্তমান কুণ্ডলী পরিসীমা সম্পর্কিত তথ্য যা এই রেখাগুলি শুরু করে এবং শেষ হয় কোন লাইন সংখ্যার উপর ভিত্তি করে।

গভীরতার সাথে ব্যাখ্যা করার জন্য http://en.wikedia.org/wiki/Diff#Unified_format পড়ুন ।


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