git - জিট:স্থানীয় repo এবং মূল মধ্যে ফাইলের মধ্যে পার্থক্য




git-diff (5)

আমি আমার স্থানীয় রেপো বনাম একটি ফাইলের মধ্যে পার্থক্য সন্ধান করতে চাই যা origin master বনাম।

আমি git diff আছে জানি, তবে আমি শুধু এই একটি নির্দিষ্ট ফাইল থেকে এটি আলাদা করতে চান।

সাদৃশ্যের জন্য ফাইলটিকে file1.txt নামে file1.txt এবং এটি একটি স্থানীয় ফাইল পথ = [local_path] এবং মূল্যে এটি [local_path] = [remote-path]

আমি কি টাইপ করতে হবে গিট কমান্ড হবে?

সম্পাদনা করুন: আপনার ইনপুটের জন্য আপনাকে ধন্যবাদ, এটি খুব অন্তর্দৃষ্টিপূর্ণ হয়েছে। Eclipse (যা আমি এবং আমি যা আগে বলেছি) ব্যবহার করতেছি তাদের জন্য আমি ঠিক করেছি যে আপনি ডান ক্লিক করতে পারেন -> শাখা, ট্যাগ বা রেফারেন্স -> তুলনা করুন যথাযথ সংস্করণ নির্বাচন করুন এবং সেখানে যান।


Answers

যদি [remote-path] এবং [local-path] একই হয় তবে আপনি করতে পারেন

$ git fetch origin master
$ git diff origin/master -- [local-path]

দ্রষ্টব্য 1: উপরে দ্বিতীয় কমান্ড স্থানীয়ভাবে সংরক্ষিত রিমোট ট্র্যাকিং শাখার সাথে তুলনা করবে। রিমোট সার্ভারের সামগ্রীগুলির সাথে সিঙ্ক করার জন্য রিমোট ট্র্যাকিং শাখা আপডেট করার জন্য fetch কমান্ডটি প্রয়োজন। অন্যথায়, আপনি শুধু করতে পারেন

$ git diff master:<path-or-file-name>

নোট 2: master উপরের কোনও শাখার নাম দিয়ে প্রতিস্থাপিত করা যেতে পারে


তার জন্য আমি একটি ব্যাস লিপি লিখেছি:

#set -x 
branchname=`git branch | grep -F '*' |  awk '{print $2}'`
echo $branchname
git fetch origin ${branchname}
for file in `git status | awk '{if ($1 == "modified:") print $2;}'`
do
echo "PLEASE CHECK OUT GIT DIFF FOR "$file 
git difftool  FETCH_HEAD $file ;
done

উপরের স্ক্রিপ্টে, আমি রিমোট মুখ্য শাখাটি (তার মাস্টার শাখার কোনও শাখা প্রয়োজন নেই) FETCH_HEAD নিয়েছি এবং কেবলমাত্র আমার পরিবর্তিত ফাইলের তালিকা তৈরি করব এবং সংশোধিত ফাইলগুলির সাথে git difftool করতে তুলনা git difftool

difftool দ্বারা সমর্থিত অনেক difftool আছে, আমি ভাল GUI তুলনা জন্য Meld Diff Viewer কনফিগার করেছি।
উপরের স্ক্রিপ্ট থেকে, আমি পূর্বেই জানি যে অন্যান্য দলগুলি একই ফাইলের মধ্যে কী পরিবর্তন করেছে, আমি গিট পর্যায়ে untrack-->staged-->commit যা অযথা সমাধান থেকে বাঁচতে সাহায্য করে, দূরবর্তী দলের সাথে দ্বন্দ্ব মীমাংসা করতে বা নতুন স্থানীয় শাখা তৈরি করতে সহায়তা করে। তুলনা এবং প্রধান শাখা একত্রিত।


দূরবর্তী একের সাথে স্থানীয় সংগ্রহস্থল তুলনা করার জন্য নিচের বাক্যটি ব্যবহার করুন:

গিট diff @ {আপস্ট্রিম}


রিমোট ফাইল থেকে স্থানীয় ফাইলে যাওয়ার পার্থক্যগুলি দেখতে:

git diff remotename/branchname:remote/path/file1.txt local/path/file1.txt

অন্য দিকের পার্থক্য দেখতে:

git diff HEAD:local/path/file1.txt remotename/branchname:remote/path/file1.txt

মূলত আপনি এই নোট ব্যবহার করে যে কোনও দুটি ফাইল ছড়িয়ে দিতে পারেন:

git diff ref1:path/to/file1 ref2:path/to/file2

স্বাভাবিকভাবেই, ref1 এবং ref2 শাখার নাম, রিমোটনাম / ব্রানচেনম, এসএএইচএস ইত্যাদি হতে পারে।


গিট টান == (জিট fetch + গিট মার্জ)

জিট fetch স্থানীয় শাখা পরিবর্তন করে না।

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





git git-diff