গিট সংস্করণ ব্যবহার করে কোনও ফাইলের পরিবর্তনের ইতিহাস দেখুন


3087

গিটের পৃথক ফাইলের পরিবর্তনের ইতিহাস, কী পরিবর্তিত হয়েছে তার সম্পূর্ণ বিবরণ আমি কীভাবে দেখতে পারি?

আমি যতদূর পেলাম:

git log -- [filename]

যা আমাকে ফাইলটির প্রতিশ্রুতিবদ্ধ ইতিহাস দেখায়, তবে আমি কীভাবে ফাইলের প্রতিটি পরিবর্তনের বিষয়বস্তুতে পাব?

আমি মাইক্রোসফট SourceSafe থেকে রূপান্তরটি করতে চেষ্টা ফেলছি এবং একটি সহজ ব্যবহার করা হয় right-clickshow history


41
উপরের লিঙ্কটি আর বৈধ নয়। এই লিঙ্কটি আজ কাজ করছে: গিট কমিউনিটি বই
ক্রিস

1
উপরের লিঙ্কটি (ক্রিস পোস্ট করেছেন) আর বৈধ নয়। এই লিঙ্কটি আজ কাজ করছে: git-scm.com/book/en/v2
কগ

উত্তর:


2370

এর জন্য আমি ব্যবহার করব:

gitk [filename]

বা ফাইলের নাম পূর্বের নামগুলি অনুসরণ করতে

gitk --follow [filename]

28
তবে আমার কাছে এমন একটি সরঞ্জামও রয়েছে যা উপরের সাথে 'গিট দোষের' সাথে মিলিয়ে একটি ফাইলের উত্স ব্রাউজ করতে দেয় যা সময়ের সাথে সাথে পরিবর্তিত হয় ...
এগন উইলিগাগেন

26
দুর্ভাগ্যক্রমে, এটি ফাইলের অতীত নামগুলির ইতিহাস অনুসরণ করে না।
ড্যান মোল্ডিং

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

115
লেখক একটি কমান্ড লাইন সরঞ্জামের সন্ধান করছিলেন। গিটক জিআইটি-র সাথে আসে, এটি কমান্ড লাইন অ্যাপ্লিকেশন বা বিশেষত ভাল জিইউআইও নয়।
মাইকম্যাকানা

72
তিনি একটি কমান্ড লাইন সরঞ্জাম খুঁজছিলেন? "ডান ক্লিক -> ইতিহাস দেখান" অবশ্যই এটি বোঝায় না।
hdgarrood

2233

তুমি ব্যবহার করতে পার

git log -p filename

গিট প্রতিটি লগ এন্ট্রি জন্য প্যাচ উত্পাদন করতে।

দেখা

git help log

আরও বিকল্পের জন্য - এটি আসলে অনেক সুন্দর জিনিস করতে পারে :) একটি নির্দিষ্ট কমিটের জন্য কেবলমাত্র ভিন্নতা পেতে আপনি পারেন

git show HEAD 

বা সনাক্তকারী দ্বারা অন্য কোনও সংশোধন। বা ব্যবহার

gitk

পরিবর্তনগুলি দৃশ্যত ব্রাউজ করতে।


8
গিট শো হেড সমস্ত ফাইল দেখায়, আপনি কীভাবে কোনও পৃথক ফাইল ট্র্যাক করতে জানেন (যেমন রিচার্ড জিজ্ঞাসা করেছিলেন)?
জোনাস বাইস্টর্ম

5
আপনি ব্যবহার করুন: গিট শো <রিভিশন> - ফাইলের নাম, যা সেই সংশোধনের জন্য বিভিন্নগুলি প্রদর্শন করবে, যদি বিদ্যমান থাকে তবে one
মার্কোস অলিভিরা

4
--stat এছাড়াও সহায়ক। আপনি এটি -p এর সাথে একসাথে ব্যবহার করতে পারেন।
রাফি খ্যাচাডৌড়িয়ান

5
এটা অসাধারণ. অস্তিত্ব নেই এমন পাথ উল্লেখ করার সময় গিটক ভাল আচরণ করে না। আমি গিট লগ-পি - পথ ব্যবহার করেছি।
পাওলো ক্যাসারেটো

6
প্লাস গিটক দেখে মনে হচ্ছে এটি বুগি দৈত্য দ্বারা নির্মিত হয়েছিল। এটি একটি দুর্দান্ত উত্তর এবং মূল প্রশ্নের সাথে সেরা উপযোগী।
গাইস

1493

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

এটি ফাইলের পুরো ইতিহাস (নাম পরিবর্তনের ইতিহাস এবং প্রতিটি পরিবর্তনের জন্য পৃথক পৃথক ইতিহাস সহ) প্রদর্শন করবে।

অন্য কথায়, যদি নামের ফাইলটি barএকবার নামকরণ করা হয় foo, তবে git log -p bar( --followবিকল্প ব্যতীত) কেবল ফাইলটির ইতিহাস কেবল সেই বিন্দু পর্যন্ত প্রদর্শিত হবে যেখানে এটি নামকরণ করা হয়েছিল - এটি ফাইলটির ইতিহাস প্রদর্শিত হবে না যখন এটি পরিচিত ছিল foo। ব্যবহারটি git log --follow -p barফাইলের সমস্ত ইতিহাস দেখাবে, ফাইল হিসাবে যখন এটি পরিচিত ছিল তখন কোনও পরিবর্তন সহ foo-pবিকল্প নিশ্চিত করে যে diffs প্রতিটি পরিবর্তনের জন্য অন্তর্ভুক্ত করা হয়।


18
--stat এছাড়াও সহায়ক। আপনি এটি -p এর সাথে একসাথে ব্যবহার করতে পারেন।
রাফি খ্যাচাডৌড়িয়ান

23
আমি সম্মতি জানাই এটি সত্যই উত্তর। (১.) --followনিশ্চিত করে যে আপনি ফাইলের নাম দেখতে পেয়েছেন (২.) -pনিশ্চিত করে যে ফাইলটি কীভাবে পরিবর্তন হয় (৩.) এটি কেবল কমান্ড লাইন।
ট্রেভর বয়েড স্মিথ

3
@ এনএইচডালি আমি লক্ষ্য করেছি যে এটি --যুক্ত হয়েছে, তবে কেন জানি এটি সর্বোত্তম করে তোলে? এটা কি যে এটি করে?
বেনজাহান

40
@ বেঞ্জহান --বিকল্পটি গীতকে বলেছে যে এটি বিকল্পগুলির শেষের দিকে পৌঁছেছে এবং এরপরে যে কোনও কিছু অনুসরণ করে --তাকে যুক্তি হিসাবে বিবেচনা করা উচিত। এটির জন্য git logকেবল কোনও পার্থক্য আসে যদি আপনার কোনও পাথের নাম থাকে যা ড্যাশ দিয়ে শুরু হয় । বলুন যে আপনি এমন কোনও ফাইলের ইতিহাস জানতে চেয়েছিলেন যার দুর্ভাগ্যজনক নাম "git log --follow -p -- --follow
ড্যান মোল্ডিং

10
@ বেঞ্জোহান: সাধারণত, এটি --কার্যকর কারণ এটি revisionআপনার প্রবেশ করা ফাইলের সাথে যে কোনও নামের সাথে মেলে এমন কোনও নাম থেকেও রক্ষা করতে পারে যা আসলে ভীতিজনক হতে পারে। উদাহরণস্বরূপ: যদি আপনি উভয় একটি শাখা ও নামের একটি ফাইল ছিল foo, git log -p fooGit লগ ইতিহাস পর্যন্ত দেখাতে হবে foo, জন্য ইতিহাস নয় ফাইল foo । তবে @ ড্যানমোল্ডিং সঠিক যেহেতু --followকমান্ডটি কেবল একটি যুক্তিযুক্ত ফাইলটিকে তার যুক্তি হিসাবে গ্রহণ করে তাই এটি কম হওয়া প্রয়োজন কারণ এটি একটি হতে পারে না revision। আমি এটা শিখেছি। তখন আপনি নিজের উত্তরটি ছেড়ে দেওয়ার পক্ষে ঠিক ছিলেন; আমি নিশ্চিত নই.
এনএইচডালি

172

আপনি যদি পাঠ্য-ভিত্তিক থাকতে চান, আপনি টিগ ব্যবহার করতে পারেন ।

দ্রুত স্থাপন করা:

  • প্রস্তুত :# apt-get install tig
  • হোমব্রিউ (ওএস এক্স) :$ brew install tig

একক ফাইলে ইতিহাস দেখতে এটি ব্যবহার করুন: tig [filename]
বা বিস্তারিত রেপো ইতিহাস ব্রাউজ করুন:tig

gitkপাঠ্য ভিত্তিক কিন্তু অনুরূপ । টার্মিনাল রঙ সমর্থন!


23
দুর্দান্ত পাঠ্য-ভিত্তিক সরঞ্জাম, দুর্দান্ত উত্তর। আমি যখন আমার হেডলেস সার্ভারে গিটক ইনস্টল করার জন্য নির্ভরতাগুলি দেখেছি তখন আমি ফ্রি আউট হয়েছি। আবার এ +++ উত্সাহিত করবে
টম ম্যাকেনজি

আপনি tig -- path/to/specific/file
টাইগের

109

git whatchanged -p filenamegit log -p filenameএই ক্ষেত্রে সমতুল্য ।

আপনি যখন ফাইলের অভ্যন্তরে নির্দিষ্ট কোডের রেখাটি পরিবর্তন করেছিলেন তখনও দেখতে পাবেন git blame filename। এটি ফাইলের প্রতিটি লাইনের জন্য একটি শর্ট কমিট আইডি, লেখক, টাইমস্ট্যাম্প এবং কোডের সম্পূর্ণ লাইনটি প্রিন্ট করবে। আপনি একটি ত্রুটি খুঁজে পাওয়ার পরে এবং এটি কখন চালু হয়েছিল (বা এটি দোষটি কে ছিল) আপনি জানতে চান এটি খুব দরকারী।


4
+1, তবে filenameআদেশে alচ্ছিক নয় git blame filename
রকএক্স্রক

7
"পরিবর্তে নতুন ব্যবহারকারীদের গিট-লগ ব্যবহার করতে উত্সাহ দেওয়া হচ্ছে। (...) কমান্ডটি মূলত historicalতিহাসিক কারণে রাখা হয়;"
সিয়াসটেক

104

সোর্সট্রি ব্যবহারকারীরা

যদি আপনি আপনার সংগ্রহস্থলটি কল্পনা করতে সোর্স ট্রি ব্যবহার করেন (এটি নিখরচায় এবং বেশ ভাল) আপনি কোনও ফাইলটিতে ডান ক্লিক করতে পারেন এবং লগ নির্বাচিত নির্বাচন করতে পারেন

এখানে চিত্র বর্ণনা লিখুন

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

এখানে চিত্র বর্ণনা লিখুন


1
আমি বিশেষত "নাম পরিবর্তন করা ফাইলগুলি অনুসরণ করুন" বিকল্পটি পছন্দ করি যা আপনাকে কোনও ফাইলের নাম পরিবর্তন করা হয়েছে বা সরানো হয়েছে তা দেখার অনুমতি দেয়।
ক্রিস

তবে আমি ভুল না হলে (দয়া করে আমাকে জানাবেন!), গি-তে একবারে কেবল দুটি সংস্করণ তুলনা করা যায়? এমন কোনও ক্লায়েন্ট রয়েছে যাঁর এক সাথে বিভিন্ন সংস্করণ আলাদা করার জন্য মার্জিত ইন্টারফেস রয়েছে? জুম-আউট ভিউয়ের সাথে সাব্লাইম টেক্সটের মতো সম্ভবত? এটি আমার মনে হয় সত্যিই দরকারী হবে।
স্যাম লেওয়ালেন

@ সামলেওয়ালেন যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনি তিনটি ভিন্ন কমিটের তুলনা করতে চান? এটি ত্রি-মুখী মার্জ (আমার, আপনার, বেস) এর মতো বলে মনে হয় - সাধারণত এই কৌশলটি তিনটি স্বেচ্ছাসেবীর সাথে কমিট করার তুলনায় অগত্যা সংহত বিবাদগুলি সমাধান করার জন্য ব্যবহৃত হয়। অনেক সরঞ্জামগুলি আমাদের কাছে সমর্থন তিনটি উপায় মার্জ হয় stackoverflow.com/questions/10998728/... কিন্তু কৌতুক এই সরঞ্জামগুলি নির্দিষ্ট পুনর্বিবেচনা খাওয়ানো হয় gitready.com/intermediate/2009/02/27/...
মার্ক ফক্স

ধন্যবাদ মার্ক ফক্স, আমি এটাই বলতে চাইছি। আপনি কি এমন কোনও অ্যাপ্লিকেশন জানেন যা তা করবে?
স্যাম লেওয়ালেন

1
@ মার্নেনলাইবো-কোসার আমি কেন এই সময়ে এসএইচএ দরকার তা আমি মনে করতে পারি না। আহহা।
এচলোলিউ

63

কোন ফাইলের প্রতিটি লাইনটি শেষবার সংশোধন এবং লেখক পরিবর্তন করেছেন তা দেখানোর জন্য:

git blame filename

বা আপনি যদি শক্তিশালী দোষ জিইউআই ব্যবহার করতে চান:

git gui blame filename

48

অন্যান্য উত্তরগুলি সেগুলি পড়ে এবং কিছুটা খেলার পরে সংক্ষিপ্তসার:

সাধারণ কমান্ড লাইন কমান্ড হবে

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

তবে আপনি এটি দেখতে আরও অনেক বেশি মানব-পঠনযোগ্য উপায় দেওয়ার জন্য গিটক (গুই) বা টিগ (পাঠ্য-ইউআই) ব্যবহার করতে পারেন।

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


2
আমি মনে করি এটি একটি দুর্দান্ত উত্তর। সম্ভবত আপনিও ভোট দিচ্ছেন না কারণ আপনি পরিবর্তনগুলি দেখতে গিটার পাশাপাশি গিট এবং টাইগের মাধ্যমে দেখতে অন্যান্য উপায়ের (আইএমএইচও আরও ভাল) উত্তর দিয়েছেন।
পপকর্নকিং

শুধু উত্তর যোগ করতে। পাথটি সনাক্ত করুন (গিট স্পেসে, এখনও পর্যন্ত ভান্ডারে রয়েছে)। তারপরে উপরে উল্লিখিত কমান্ডটি "গিট লগ - ফলো - সমস্ত-পি <ফোল্ডার_পথ / ফাইল_পথ>" ব্যবহার করুন। ক্ষেত্রে থাকতে পারে যে ফিল্ড / ফোল্ডারটি ইতিহাসের উপর থেকে সরিয়ে ফেলা হত, অতএব এখনও উপস্থিত থাকা সর্বাধিক পথটি সনাক্ত করুন এবং এর ইতিহাসটি আনার চেষ্টা করুন। কাজ!
প্যারাসিশ

2
--allসমস্ত শাখার জন্য, বাকিগুলি ড্যানের
উত্তরটিতে

1
ওহ মানুষ, নাম বাদে ফাইল ট্র্যাক করার জন্য এতক্ষণ ভাল সমাধান সন্ধান করার পরে, অবশেষে, আমি এটি এখানে পেয়েছি। মোহন মত কাজ! ধন্যবাদ!
এক্স জিরো 8:39

25

আপনার .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

আউটপুট গিটক আউটপুট হিসাবে প্রায় একই দেখতে পাবেন। উপভোগ করুন।


আমি সেই এলজি শর্টকাট চালানোর পরে, আমি বলেছিলাম (এবং আমি উদ্ধৃত) "সুন্দর!" তবে খেয়াল করুন যে "- অনুচ্ছেদে" "পরে" \ n "একটি ত্রুটি।
jmbeck

3
এছাড়াও ব্যবহার করা যেতে পারে git lg -p filename- এটি অনুসন্ধান করা ফাইলের একটি সুন্দর পার্থক্য প্রদান করে।
এগেল

22

ইদানীং আমি এটি আবিষ্কার করেছিলাম tigএবং এটি খুব দরকারী। এমন কিছু কেস রয়েছে যা আমি ইচ্ছা করি এটি A বা B করে তবে বেশিরভাগ সময় এটি পরিষ্কার থাকে।

আপনার ক্ষেত্রে, tig <filename>আপনি যা খুঁজছেন হতে পারে।

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



17

আপনি গিটলেন্সের সাহায্যে ভিসকোড ব্যবহার করতে পারেন এটি একটি খুব শক্তিশালী সরঞ্জাম। গিটলেন্স ইনস্টল করার পরে, গিটলেন্স ট্যাবে যান, নির্বাচন করুন FILE HISTORYএবং আপনি এটি ব্রাউজ করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন


15

আমি এই সঠিক উদ্দেশ্যে গিট-প্লেব্যাক লিখেছি

pip install git-playback
git playback [filename]

কমান্ড লাইনে (যেমন git log -p) ফলাফল প্রদর্শন করার পাশাপাশি উভয়টি তীর কীগুলি (যেমন gitk) ব্যবহার করে আপনাকে প্রতিশ্রুতিবদ্ধ পদক্ষেপের মধ্য দিয়ে যেতে উভয়েরই সুবিধা রয়েছে ।


13

বা:

gitx -- <path/to/filename>

যদি আপনি গিটক্স ব্যবহার করছেন


1
কিছু কারণে আমার গিটক্স ফাঁকা খোলে।
ইগোরগানাপলস্কি

@ ইগোরগানাপলস্কি আপনাকে নিশ্চিত করতে হবে যে আপনি আপনার গিট সংগ্রহস্থলের মূলে রয়েছেন
zdsbs

9

আপনি একটি ফাইল গোটা ইতিহাস দেখার জন্য চান তবে সহ উপর অন্য সব শাখা ব্যবহার করুন:

gitk --all <filename>

9

আপনি এটিও চেষ্টা করতে পারেন যা কোনও ফাইলের একটি নির্দিষ্ট অংশ (গিট 1.8.4 এ প্রয়োগ করা হয়েছে) পরিবর্তিত কমিটগুলি তালিকাভুক্ত করে।

প্রত্যাশিত ফলাফল হ'ল কমিটগুলির তালিকা যা এই বিশেষ অংশটি পরিবর্তন করেছে। আদেশ:

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

যেখানে আপার লিমিট হ'ল শুরু_লাইন_নম্বার এবং লোয়ারলিমিট হ'ল ফাইলের শেষ_লাইন_নম্বার।

Https://www.techpurohit.com/list-some-useful-git-commands এ আরও বিশদ


7

চমৎকার গিট এক্সটেনশনগুলির সাহায্যে আপনি ইতিহাসের একটি পয়েন্টে যেতে পারেন যেখানে ফাইলটি এখনও বিদ্যমান ছিল (যদি এটি মুছে ফেলা হয়, অন্যথায় কেবল হেডে যান), File treeট্যাবে স্যুইচ করুন, ফাইলটিতে ডান ক্লিক করুন এবং চয়ন করুন File history

ডিফল্টরূপে এটি পুনরায় নামগুলির মাধ্যমে ফাইলটি অনুসরণ করে এবং Blameট্যাব একটি প্রদত্ত সংশোধনীতে নামটি দেখতে দেয়।

দেখানো মত, কিছু ছোটখাট gotchas হয়েছে fatal: Not a valid object nameViewট্যাব যখন মুছে ফেলার সংস্করণ এ ক্লিক, কিন্তু আমি যে সঙ্গে বসবাস করতে পারেন। :-)


এটি উইন্ডোজ-কেবলমাত্র তা উল্লেখযোগ্য।
ইভান হান

3
@ ইভান সঠিক নয়, মনোর মাধ্যমে কেউ গিটএক্সটেনশন লিনাক্সেও ব্যবহার করতে পারে, আমরা এটি উবুন্টুতে ব্যবহার করি এবং এটি বেশ খুশি w গিট
দ্য ক্যাট

7

আপনি যদি রেপোজিটরি মেনুর অধীনে গিট জিইউআই (উইন্ডোজে) ব্যবহার করেন তবে আপনি "ভিজ্যুয়ালাইজ মাস্টারের ইতিহাস" ব্যবহার করতে পারেন। উপরের ফলকে একটি প্রতিশ্রুতি এবং নীচের ডানদিকে একটি ফাইল হাইলাইট করুন এবং আপনি নীচের বামে সেই প্রতিশ্রুতিটির জন্য পৃথক্ দেখতে পাবেন।


কিভাবে এই প্রশ্নের উত্তর দেয়?
jmbeck

3
ঠিক আছে, ওপি কমান্ড লাইনটি নির্দিষ্ট করে নি, এবং সোর্সসেফের (যা একটি জিইউআই) থেকে সরে গিয়ে এটি উল্লেখ করা প্রাসঙ্গিক বলে মনে হয়েছিল যে আপনি উইন্ডোজের গিট জিইউআইতে ভিএসএসে যে কাজটি করতে পারেন তা করতে পারেন।
Cori

6

স্মার্টজিট :

  1. মেনুতে অপরিবর্তিত ফাইলগুলি প্রদর্শন করতে সক্ষম করুন: অপরিবর্তিত ফাইলগুলি দেখান / দেখান
  2. ফাইলটি ডান ক্লিক করুন এবং 'লগ' নির্বাচন করুন বা 'Ctrl-L' টিপুন

4

যে উত্তরটি আমি এই থ্রেডে ছিল না তা হ'ল ফাইলগুলির পরিবর্তনগুলি দেখা যা আমি প্রতিশ্রুতিবদ্ধ হয়েছি d অর্থাত

git diff --cached

1
আপনি যদি স্থানীয় (অচঞ্চলবিহীন) পরিবর্তনগুলি অন্তর্ভুক্ত করতে চান তবে আমি প্রায়শই git diff origin/masterআপনার স্থানীয় শাখা এবং মাস্টার শাখার (যা দূরবর্তী মাধ্যমে আপডেট করা যেতে পারে git fetch) এর মধ্যে সম্পূর্ণ পার্থক্যগুলি দেখানোর জন্য
ছুটে যাই

4

আপনি যদি টরটোইজিট ব্যবহার করেন তবে আপনার ফাইলটিতে ডান ক্লিক করতে হবে এবং করতে হবে TortoiseGit --> Show Log। পপ আপ উইন্ডোতে, নিশ্চিত করুন:

  • ' Show Whole Project' বিকল্পটি চেক করা হয়নি।

  • ' All Branches' বিকল্পটি চেক করা হয়েছে।


কচ্ছপগ্রহ (এবং পাশাপাশি গ্রিপস গিট) কোনওভাবে নির্বাচিত ফাইলটির পুনর্বিবেচনাগুলি মিস করে, এটিতে বিশ্বাস করবেন না!
নোয়াম মানোস

@ নোমমনোস, আমি এই সমস্যার মুখোমুখি হই নি, সুতরাং আপনার বক্তব্যটি সঠিক কিনা তা আমি যাচাই করতে পারি না।
ব্যবহারকারী 3885927

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

3

git diff -U <filename> আপনাকে একীভূত ভিন্নতা দিন।

এটি লাল এবং সবুজ রঙের হওয়া উচিত। যদি তা না হয় তবে চালান: git config color.ui autoপ্রথমে।


2

আপনি যদি গিট প্লাগইনটির সাথে গ্রহনটি ব্যবহার করছেন তবে এটি ইতিহাসের সাথে একটি দুর্দান্ত তুলনা দেখুন। ফাইলটি ডান ক্লিক করুন এবং "=>" ইতিহাসের সাথে তুলনা করুন "নির্বাচন করুন


এটি আপনাকে মুছে ফেলা ফাইলটি সন্ধান করতে দেয় না।
avgvstvs

কোনও ফাইলের দুটি সংস্করণ তুলনা করা কোনও ফাইলের পরিবর্তনের ইতিহাস দেখার চেয়ে আলাদা
golimar

0

আমি সম্ভবত সম্পর্কে যেখানে ওপি ছিল যখন এই শুরু, কিছু সহজ যে আমার ব্যবহার করার অনুমতি দেবে খুঁজছি Git difftool সঙ্গে vimdiff একটি নির্দিষ্ট কমিট থেকে শুরু আমার রেপো মধ্যে ফাইলগুলিতে পর্যালোচনা পরিবর্তনের। আমি যে উত্তরগুলি খুঁজে পেয়েছি তাতে আমি খুব খুশি ছিলাম না, তাই আমি এই গিট ইনক রিমেন্টাল রেপ অর্টার (গিটিক্রেপ) স্ক্রিপ্টটি একসাথে ফেলে দিয়েছিলাম এবং এটি আমার পক্ষে দরকারী:

#!/usr/bin/env bash

STARTWITH="${1:-}"
shift 1

DFILES=( "$@" )

RunDiff()
{
        GIT1=$1
        GIT2=$2
        shift 2

        if [ "$(git diff $GIT1 $GIT2 "$@")" ]
        then
                git log ${GIT1}..${GIT2}
                git difftool --tool=vimdiff $GIT1 $GIT2 "$@"
        fi
}

OLDVERS=""
RUNDIFF=""

for NEWVERS in $(git log --format=format:%h  --reverse)
do
        if [ "$RUNDIFF" ]
        then
                RunDiff $OLDVERS $NEWVERS "${DFILES[@]}"
        elif [ "$OLDVERS" ]
        then
                if [ "$NEWVERS" = "${STARTWITH:=${NEWVERS}}" ]
                then
                        RUNDIFF=true
                        RunDiff $OLDVERS $NEWVERS "${DFILES[@]}"
                fi
        fi
        OLDVERS=$NEWVERS
done

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

আচরণটি হ'ল প্রাসঙ্গিক মন্তব্যগুলি আউটপুট করা যখন প্রাসঙ্গিক পরিবর্তনগুলি পাওয়া যায় এবং প্রতিটি পরিবর্তিত ফাইলের জন্য ভিমডিফ রান চালানো শুরু করে (এটি গিট ডিফ্টল আচরণ, তবে এটি এখানে কাজ করে)।

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


0

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

  1. ফাইলটিতে এলোমেলো পরিবর্তন করুন
  2. এটি আপনার সোর্সট্রিতে অনির্ধারিত পরিবর্তন হিসাবে প্রদর্শিত হবে
  3. ফাইলটিতে ডান ক্লিক করুন এবং 'লগ নির্বাচিত' নির্বাচন করুন

এখানে চিত্র বর্ণনা লিখুন

এটি সমস্ত কমিটের ইতিহাস প্রদর্শন করবে।


এই জিইউআই কোথা থেকে আসে?
কলিডিয়ার

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