عرض سجل التغيير لملف باستخدام إصدار Git

StackOverflow https://stackoverflow.com/questions/278192

  •  07-07-2019
  •  | 
  •  

سؤال

كيف يمكنني عرض سجل التغيير لملف فردي في Git، مع التفاصيل الكاملة مع ما تغير؟

لقد وصلت إلى ما يلي:

git log -- [filename]

والذي يوضح لي سجل الالتزام الخاص بالملف، ولكن كيف يمكنني الحصول على محتوى كل تغيير في الملف؟

أحاول إجراء الانتقال من MS SourceSafe وكان ذلك أمرًا بسيطًا right-clickshow history.

هل كانت مفيدة؟

المحلول

لهذا فما استقاموا لكم فاستقيموا استخدام:

gitk [filename]

وأو لمتابعة اسم الملف إعادة تسمية الماضي

gitk --follow [filename]

نصائح أخرى

ويمكنك استخدام

git log -p filename

والسماح بوابة توليد بقع لكل إدخال السجل.

وانظر

git help log

لمزيد من الخيارات - يمكن أن تفعله في الواقع الكثير من أشياء لطيفة :) لمجرد الحصول على فرق لارتكاب المحددة التي يمكن

git show HEAD 

وأو أي تنقيح الآخرين من خلال معرف. أو استخدام

gitk

لتصفح التغييرات بصريا.

وgit log --follow -p -- path-to-file

وهذا سوف تظهر على كامل سجل الملف (بما في ذلك التاريخ وراء إعادة تسمية ومع بيانات الاختلاف عن كل تغيير).

وبعبارة أخرى، إذا كان bar ملف اسمه كان اسمه مرة واحدة foo، ثم git log -p bar (بدون خيار --follow) سوف تظهر فقط تاريخ الملف لتصل إلى النقطة التي تم تغيير اسمها - أنها لن تظهر محفوظات الملف عندما كانت تعرف باسم foo. وسوف تستخدم git log --follow -p bar إظهار محفوظات الملف بأكمله، بما في ذلك أي تغييرات على الملف عندما كانت تعرف باسم foo. يضمن الخيار -p التي تم تضمينها بيانات الاختلاف عن كل تغيير.

إذا كنت تفضل الاستمرار في الاعتماد على النصوص، فقد ترغب في استخدامها تيج.

تثبيت سريع:

  • شقة-الحصول على: # apt-get install tig
  • البيرة (OS X): $ brew install tig

استخدمه لعرض السجل في ملف واحد: tig [filename]
أو تصفح سجل الريبو التفصيلي: tig

مشابه ل gitk ولكن على أساس النص.يدعم الألوان في المحطة!

git whatchanged -p filename هو أيضا ما يعادل < وأ href = "http://git-scm.com/docs/git-log" يختلط = "noreferrer"> git log -p filename في هذه القضية.

ويمكنك أيضا معرفة متى تم تغيير خط معين من التعليمات البرمجية داخل ملف مع <لأ href = "http://www.kernel.org/pub/software/scm/git/docs/git-blame.html" يختلط = "noreferrer"> git blame filename . هذا وسوف تطبع على ارتكاب باختصار الهوية، والمؤلف، والوقت، ومتكاملة من رمز لكل سطر في الملف. وهذا مفيد جدا بعد أن كنت قد وجدت علة وكنت تريد أن تعرف عند عرضه (أو من هو على خطأ كان).

مستخدمي شجرة المصدر

إذا كنت تستخدم SourceTree لتصور المستودع الخاص بك (فهو مجاني وجيد جدًا)، فيمكنك النقر بزر الماوس الأيمن فوق الملف وتحديده سجل المحدد

enter image description here

تعد الشاشة (أدناه) أكثر ودية من gitk ومعظم الخيارات الأخرى المدرجة.لسوء الحظ (في الوقت الحالي) لا توجد طريقة سهلة لبدء هذا العرض من سطر الأوامر - يقوم سطر الأوامر الخاص بـ SourceTree حاليًا بفتح عمليات إعادة الشراء فقط.

enter image description here

لإظهار ما المراجعة ومؤلف آخر تعديل كل سطر من ملف:

git blame filename

وأو إذا كنت ترغب في استخدام قوي اللوم واجهة المستخدم الرسومية:

git gui blame filename

وملخص إجابات أخرى بعد قراءة من خلالها واللعب قليلا:

وسيكون الأمر سطر الأوامر المعتاد أن يكون

git log --follow --all -p dir/file.c

ولكن يمكنك أيضا استخدام إما gitk (واجهة المستخدم الرسومية) أو القصبات (النص واجهة المستخدم) لإعطاء طرق أكثر من ذلك بكثير الإنسان قابل للقراءة للنظر في ذلك.

gitk --follow --all -p dir/file.c

tig --follow --all -p dir/file.c

وتحت ديبيان / أوبونتو، الأمر تثبيت لهذه الأدوات الجميلة وكما هو متوقع:

sudo apt-get install gitk tig

وأنا أستخدم حاليا:

alias gdf='gitk --follow --all -p'

وحتى أستطيع أن اكتب فقط gdf dir للحصول على التاريخ تركيزا من كل شيء في dir الدليل الفرعي.

إضافة هذا الاسم المستعار ل.gitconfig الخاص بك:

[alias]
    lg = log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\n--abbrev-commit --date=relative

واستخدام الأمر على هذا النحو:

> git lg
> git lg -- filename

والناتج سوف تبدو بالضبط تقريبا نفس الناتج gitk. التمتع بها.

ومؤخرا اكتشفت tig وجدت أنه من المفيد جدا. هناك بعض الحالات كنت أتمنى أن يكون يفعل A أو B ولكن معظم الوقت انها نظيفة إلى حد ما.

لحالتك، قد يكون tig <filename> ما كنت تبحث عنه.

http://jonas.nitro.dk/tig/

بوابة-تشغيل لهذا الغرض المحدد

pip install git-playback
git playback [filename]

وهذا له فائدة لكلا عرض النتائج في سطر الأوامر (مثل git log -p) في حين ترك أيضا يمكنك التنقل خلال كل كرست باستخدام مفاتيح الأسهم (مثل gitk).

وأو:

وgitx -- <path/to/filename>

وإذا كنت تستخدم gitx

إذا كنت تريد أن ترى التاريخ كله من ملف، <م> بما في ذلك على <م> سائر فروع استخدام:

gitk --all <filename>

الامتدادات بوابة أو تذهب إلى نقطة في التاريخ، حيث الملف لا يزال قائما (إذا تم حذفه، وإلا اذهبوا إلى الرأس)، والتحول إلى علامة التبويب File tree، انقر بزر الماوس الأيمن على الملف واختيار File history.

وافتراضيا، ويترتب على الملف من خلال إعادة تسمية، وفوق علامة التبويب Blame يسمح لرؤية اسم في المراجعة معينة.

ولديه بعض gotchas طفيفة، مثل عرض fatal: Not a valid object name في علامة التبويب View عند النقر على مراجعة الحذف، ولكن أستطيع العيش مع ذلك. : -)

إذا كنت تستخدم واجهة المستخدم الرسومية بوابة (على Windows) ضمن القائمة مستودع يمكنك استخدام "تصور التاريخ الماجستير". تسليط الضوء على ارتكاب في الجزء العلوي وملف في الجزء الأسفل من اليمين وسترى فرق لهذا الالتزام في أسفل اليسار.

سمارتجيت:

  1. في القائمة تمكين لعرض الملفات التي لم تتغير:عرض / عرض الملفات التي لم تتغير
  2. انقر بزر الماوس الأيمن على الملف وحدد "تسجيل" أو اضغط على "Ctrl-L"

ويمكنك أيضا محاولة هذا الذي يسرد يرتكب الذي تغير جزء معين من ملف (نفذت في بوابة 1.8.4).

والنتيجة عاد ستكون قائمة يرتكب أن تعديل هذا جزء معين. الأوامر:

git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>

وحيث UPPERLIMIT هو start_line_number وLOWERLIMIT هو ending_line_number من الملف.

ومزيد من التفاصيل في https://www.techpurohit.com/list- بعض-مفيدة-بوابة-الأوامر

وكان الجواب كنت أبحث عنه لا في هذا الموضوع هو أن نرى تغييرات في الملفات التي كنت قد نظمت لارتكاب. أي بمعنى.

git diff --cached

إذا كنت تستخدم TortoiseGit، فيجب أن تكون قادرًا على النقر بزر الماوس الأيمن على الملف والقيام بذلك TortoiseGit --> Show Log.في النافذة التي تظهر لك، تأكد مما يلي:

  • 'Show Whole Projectلم يتم تحديد الخيار.

  • 'All Branchesتم تحديد الخيار.

وgit diff -U <filename> تعطيك فرق موحد.

يجب أن تكون ملونة وعلى الأحمر والأخضر. إذا لم تكن كذلك، تشغيل: git config color.ui auto أولا

إذا كنت تستخدم الكسوف مع البرنامج المساعد بوابة، ولديه عرض مقارنة ممتازة مع التاريخ. انقر بزر الماوس الأيمن على الملف واختر "مقارنة مع" => "التاريخ"

ويمكنك استخدام vscode مع GitLens ، انها أداة قوية جدا. بعد تثبيت GitLens، انتقل إلى علامة التبويب GitLens، حدد FILE HISTORY ويمكنك تصفح ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top