মাস্টার শাখা এবং 'উত্স / মাস্টার' ডাইভার্জ হয়েছে, কীভাবে 'শাখা বিভাজন'?


964

কোনওভাবেই আমার মাস্টার এবং আমার উত্স / মাস্টার শাখাটি অন্যদিকে চলে গেছে।
আমি আসলে তাদের এড়াতে চাই না।

আমি কীভাবে এই পার্থক্যগুলি দেখতে এবং সেগুলিকে 'মার্জ' করতে পারি?


2
ডাইভারিং দ্বারা আপনি কী বোঝাতে চান? আপনি কি আপনার মাস্টারকে চাপ দেওয়ার পরে তাকে রিবেস করবেন ?
হাসেন

13
আমি একটি বার্তা পেয়েছি যাতে "আপনার শাখা এবং 'উত্স / মাস্টার' সরানো হয়েছে, # এবং যথাক্রমে প্রত্যেকে 1 এবং 1 টি আলাদা কমিট (গুলি) রয়েছে" "
ফ্রাঙ্ক

সেই "ডাইভার্জড" সতর্কতা বার্তাটি প্রতিবিম্বিত করতে আমি আমার উত্তর আপডেট করেছি।
ভোনসি

অন্য প্রশ্নের স্বীকৃত উত্তর কিছু ক্ষেত্রে সমাধান হতেও কার্যকর হতে পারে যেখানে এটি কার্যকর হতে পারে (যেমন আপনি আপনার মাস্টারকে ঘুরিয়ে নেওয়ার চেষ্টা করছেন তবে এটি ইতিমধ্যে ঠেলে দেওয়া হয়েছিল): স্ট্যাকওভারফ্লো
লিন্ডস

8
এই ব্লগের ব্যাখ্যা আমাকে নীচের যে কোনও উত্তরের চেয়ে অসীম সাহায্য করেছে: sebgoo.blogspot.com/2012/02/…

উত্তর:


1013

আপনি এর সাথে পার্থক্যগুলি পর্যালোচনা করতে পারেন :

git log HEAD..origin/master

এটি টান দেওয়ার আগে (আনুন + মার্জ করুন) ( "আপনি কীভাবে সর্বদা একটি নির্দিষ্ট শাখা থেকে টানতে পারেন?" )


যখন আপনার মত বার্তা থাকে:

"আপনার শাখা এবং 'উত্স / মাস্টার' আলাদা হয়েছে, # এবং যথাক্রমে প্রত্যেকে 1 এবং 1 টি আলাদা কমিট (গুলি) রয়েছে।"

, আপনাকে আপডেট করার দরকার আছেorigin কিনা তা পরীক্ষা করে দেখুন । যদি originআপ-টু-ডেট থাকে, তবে originআপনি স্থানীয়ভাবে নিজস্ব কমিট করার সময় কিছু কমিটিকে অন্য রেপো থেকে ঠেলে দেওয়া হয়েছিল।

... o ---- o ---- A ---- B  origin/master (upstream work)
                   \
                    C  master (your work)

আপনি প্রতিশ্রুতি A এর উপর ভিত্তি করে সি প্রতিশ্রুতিবদ্ধ কারণ এটি তখনকার উজান থেকে আপনি সর্বশেষতম কাজ করেছিলেন।

যাইহোক, আপনি উত্সে ফিরে ধাক্কা দেওয়ার চেষ্টা করার আগে, অন্য কেউ বি প্রতিশ্রুতিবদ্ধকে ধাক্কা দিয়েছিল
বিকাশের ইতিহাস পৃথক পথে রূপান্তরিত হয়েছে।

তারপরে আপনি মার্জ বা রিবেস করতে পারেন। প্রো গিট দেখুন : গিট ব্রাঞ্চিং - বিশদের জন্য ছাড়

একত্রিত করা

গিট মার্জ কমান্ডটি ব্যবহার করুন:

$ git merge origin/master

এটি গিটকে origin/masterআপনার কাজের মধ্যে থেকে পরিবর্তনগুলিকে একীভূত করতে এবং মার্জ কমিট তৈরি করতে বলে।
ইতিহাসের গ্রাফটি এখন এমন দেখাচ্ছে:

... o ---- o ---- A ---- B  origin/master (upstream work)
                   \      \
                    C ---- M  master (your work)

নতুন মার্জ, কমিট এম, এর দু'জন পিতা-মাতা রয়েছে, প্রত্যেকটিই সেই উন্নয়নের এক পথকে উপস্থাপন করে যা সেই প্রতিশ্রুতিতে লিখিত সামগ্রীকে সঞ্চারিত করে।

দ্রষ্টব্য যে এম এর পিছনে ইতিহাস এখন অ-রৈখিক।

রি-বেসের ফলে

গিট রিবেস কমান্ডটি ব্যবহার করুন:

$ git rebase origin/master

এটি গিটকে প্রতিশ্রুতিবদ্ধ সি (আপনার কাজ) পুনরায় খেলতে বলেছে যেন আপনি এটি সি এর পরিবর্তে কমিট
বিয়ের উপর ভিত্তি করে তৈরি করেছেন সিভিএস এবং সাবভার্সন ব্যবহারকারীরা কমিটমেন্টের পূর্বে আপডেট হওয়ার সময় নিয়মিতভাবে তাদের স্থানীয় পরিবর্তনগুলি আপস্ট্রিম কাজের শীর্ষে পুনর্বাসিত করে।
গিটটি কমিট এবং রিবেস ধাপগুলির মধ্যে কেবল স্পষ্ট বিচ্ছেদ যুক্ত করে।

ইতিহাসের গ্রাফটি এখন এমন দেখাচ্ছে:

... o ---- o ---- A ---- B  origin/master (upstream work)
                          \
                           C'  master (your work)

কমিট সি 'গিট রিবেস কমান্ড দ্বারা নির্মিত একটি নতুন প্রতিশ্রুতি।
এটি সি থেকে দুটি উপায়ে পৃথক:

  1. এর আলাদা ইতিহাস রয়েছে: এ এর ​​পরিবর্তে বি
  2. এর বিষয়বস্তু বি এবং সি উভয় পরিবর্তনের জন্য অ্যাকাউন্ট করে; এটি মার্জ উদাহরণ থেকে এম এর সমান।

নোট করুন যে সি এর পিছনের ইতিহাস এখনও লিনিয়ার।
কেবলমাত্র রৈখিক ইতিহাসকে অনুমতি দেওয়ার জন্য আমরা (এখনকার জন্য) নির্বাচন করেছি cmake.org/cmake.git
এই পদ্ধতির পূর্বে ব্যবহৃত সিভিএস-ভিত্তিক ওয়ার্কফ্লো সংরক্ষণ করে এবং সংক্রমণটি সহজ করতে পারে।
আমাদের ভান্ডারগুলিতে সি'কে ধাক্কা দেওয়ার একটি প্রচেষ্টা কাজ করবে (ধরে নিবেন যে আপনার অনুমতি আছে এবং আপনি যখন অবমাননার সময় কেউ ঠেলেনি)।

গিট টান কমান্ডটি উত্স থেকে আনতে এবং এতে স্থানীয় কাজ পুনর্বাসনের জন্য একটি ছোট্ট উপায় সরবরাহ করে:

$ git pull --rebase

এটি উপরোক্ত আনয়ন এবং পুনরায় স্থির পদক্ষেপগুলিকে এক কমান্ডের সাথে একত্রিত করে।


5
একই সমস্যাটি দেখার সময় আমি এটি খুঁজে পেয়েছি, আপনি কী ব্যাখ্যা করতে পারেন যে 'গিট রিসেট - হেয়ার হেড' সমস্যাটি কেন স্থির করেনি?
নেথ

12
@ নথ: কারণ এটি পর্যায়ক্রমিক পরিবর্তন (যেমন সূচকে উপস্থিত পরিবর্তনগুলি কিন্তু এখনও প্রতিশ্রুতিবদ্ধ নয়) সম্পর্কে নয়, তবে স্থানীয় কমিটগুলি সম্পর্কে (যা রিমোটে উপস্থিত কমিটগুলি থেকে পৃথক)। git reset --hard HEADশুধুমাত্র স্থানীয় সূচীবদ্ধ অ অঙ্গীকারবদ্ধ পরিমার্জন মুছে ফেলা হবে, এবং স্থানীয় এবং দূরবর্তী মধ্যে পার্থক্য মিটমাট করা কিছু করতে চাই করে । কেবল একত্রীকরণ বা একটি পুনর্বাসনা দুটি কমিটের (স্থানীয় এক এবং দূরবর্তী এক) একত্রিত করবে।
ভোনসি

4
বাহ, এই দুর্দান্ত প্রতিক্রিয়া জন্য ধন্যবাদ। আমরা দুর্ঘটনাক্রমে "--rebase" ছাড়াই একটি "গিট টান" করেছি এবং "গিট রিবেস উত্স / মাস্টার" ঠিক ঠিক হয়েছিল!
মুরুনি

3
কীভাবে - আমি আমার স্থানীয় পরিবর্তনগুলি উপেক্ষা / ডাম্প করতে এবং রিমোটটি যেখানে রয়েছে সেখানে আমার স্থানীয় শাখার সাথে থাকতে চাই? অন্য কথায়, আমি আপনার উদাহরণটি masterউল্লেখ করতে চাই B
CygnusX1

23
@ CygnusX1 করে একটি হবে git reset --hard origin/masterশুধু নিচের উত্তরে হিসাবে উল্লেখ করেছে: stackoverflow.com/a/8476004/6309
VonC

725

উপরের প্রতিক্রিয়াগুলি পড়ার পরেও আমার এটি ছিল এবং এটি কী কারণে ঘটেছে তা সম্পর্কে আমি সন্তুষ্ট। আমার সমাধান করা ছিল

git reset --hard origin/master

তারপরে এটি কেবলমাত্র মাস্টারের (স্থানীয়) অনুলিপিটি (যা আমি ধারণা করি যে এটি আঁকিয়েছে) সঠিক বিন্দুতে (রিমোট) উত্স / মাস্টার দ্বারা উপস্থাপিত হিসাবে পুনরায় সেট করে।

সতর্কতা : আপনি সমস্ত পরিবর্তন হারাবেন যা এখনও ধাক্কা দেয়নি origin/master


21
হ্যাঁ, এটি ডামি বিকল্পগুলির মতো কিছুটা হলেও অনুভব করে তবে যদি এখানে কোন সত্যিকারের বিপদ না ঘটে এবং আপনি দ্রুত সমাধানের জন্য এখানে
এসেছেন

7
এর আগে মাস্টার ব্রাঞ্চে থাকা দরকার ("গিট চেকআউট মাস্টার")।
নীল রঙের

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

96
আপনার সম্ভবত ব্যবহারকারীদের সতর্ক করা উচিত যে এটি তাদের সমস্ত পরিবর্তন হারাতে সক্ষম করবে যা এখনও
উত্সে

6
@ পেড্রোলারিও কমিটগুলি সত্যই নষ্ট হওয়া নোট, আপনি এখনও কমিটগুলি সন্ধান করতে git reflogবা তাদের সাথে দেখতে পেতে পারেন gitk --all। তবে তবুও, হার্ড রিসেট অবশ্যই রিবেস ছাড়া অন্য জিনিস।
sebkraemer

52
git pull --rebase origin/master 

হ'ল একটি একক আদেশ যা আপনাকে বেশিরভাগ সময় সাহায্য করতে পারে।

সম্পাদনা: উত্স / মাস্টার থেকে কমিটস টানুন এবং নতুন পরিবর্তন করা শাখার ইতিহাসের উপর আপনার পরিবর্তনগুলি প্রয়োগ করে।


89
অনুগ্রহ করে কমান্ডটি কী করে তা উল্লেখ করুন, অন্যথায় লোকেরা এটি চালাতে পারে এবং স্ক্রু আপ করতে পারে
Baz1nga

1
যদি কোনও সমস্যা না হয় তবে আপনার মাস্টারটির সাথে সমস্ত পরিবর্তনের উত্স / মাস্টার যুক্ত হওয়া উচিত এবং আপনার সমস্ত স্থানীয় কমিটগুলি এর উপরে পুনরায় খেলানো হবে। আমার কাছে ভাল লাগছে
ফিলিপ ক্লেইন

7
সত্যিকারের পার্থক্য থাকলে এবং এটি আপনাকে একটি বাতিল হওয়া রিবেসে ছেড়ে দেয় cept
ffledgling

এটি একটি ত্রুটি দেয়: ত্রুটি: পরিবর্তনগুলিতে মার্জ করতে ব্যর্থ। প্যাচ 0024 অনুরোধ এবং প্রতিক্রিয়া মডেলগুলিতে ব্যর্থ হয়েছিল
ইগোরগানাপলস্কি

32

যখন আমি করার চেষ্টা এ অবস্থায় আমি নিজেকে খুঁজে পাওয়া যায় রি-বেসের ফলে একটি শাখা যে একটি দূরবর্তী শাখা ট্র্যাকিং করা হয়েছিল, এবং আমি মাস্টার তে এটি রি-বেসের ফলে করার চেষ্টা ছিল। এই দৃশ্যকল্প আপনি রি-বেসের ফলে চেষ্টা, আপনি সম্ভবত আপনার শাখা পাবেন চলেনি এবং এটি একটি জগাখিচুড়ি যে Git nubees জন্য নয় তৈরি করতে পারেন!

ধরা যাক আপনি আমার_মোমোট_ ট্র্যাকিং_ ব্রাঞ্চে রয়েছেন, যা মাস্টারের কাছ থেকে শাখা ছিল

$ git status

# শাখায় আমার_রেমোট_ ট্র্যাকিং_ ব্রাঞ্চ

প্রতিশ্রুতিবদ্ধ কিছুই (পরিশ্রমী ডিরেক্টরি পরিষ্কার)

এবং এখন আপনি মাস্টার থেকে এইভাবে রিবেস করার চেষ্টা করছেন:

গিট রিবেস মাস্টার

এখনই থামুন এবং নিজেকে কিছুটা ঝামেলা বাঁচান! পরিবর্তে, মার্জ হিসাবে এটি ব্যবহার করুন:

গিট মার্জ মাস্টার

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

অন্যদিকে, যদি আপনার শাখাটি কেবল একটি স্থানীয় শাখা হয় (যেমন এখনও কোনও প্রত্যন্তে ধাক্কা দেওয়া হয়নি) আপনার অবশ্যই একটি রিবেস করা উচিত (এবং আপনার শাখাটি এই ক্ষেত্রে বিচ্ছিন্ন হবে না )।

এখন যদি আপনি এই পড়া হয় কারণ আপনি ইতিমধ্যে হয় একটি "চলেনি" এই ধরনের রি-বেসের ফলে কারণে দৃশ্যকল্প, আপনি শেষ ফিরে পেতে পারেন ব্যবহার করে উৎপত্তি (অর্থাত একটি অ-চলেনি রাজ্যের) থেকে সমর্পণ

গিট রিসেট - মূল উত্স / আমার_মোট_ট্র্যাকিং_ ব্রাঞ্চ


5
থাম্বের একটি নিয়ম হ'ল আপনি rebaseযে শাখাটি পুনর্বার করছেন সেই শাখাটি প্রকাশিত না হলে (এবং অন্যান্য লোকেরা ব্যবহার করেছেন)। অন্যথায়, ব্যবহার করুন merge। যদি আপনি ইতিমধ্যে প্রকাশিত (এবং ব্যবহৃত) শাখাগুলি পুনরায় চালু করেন তবে আপনার শাখাটি ব্যবহার করে এমন প্রতিটি বিকাশকারীকে ইতিহাস পুনরায় লেখার জন্য ষড়যন্ত্রের সমন্বয় করতে হবে।
মিক্কো রেন্টালাইনেন

1
দুর্ভাগ্যবশত আমি কাজ করার আগে এই বার্তাটি পড়া হয়নি git rebase master...
ভিতালি Isaev

আমি যদি শাখা 'ফুবার' এর সময় গিট রিবেস মাস্টার করি তবে প্রযুক্তিগতভাবে ফুবারকে উত্স / ফুবার থেকে আলাদা করা হবে যতক্ষণ না আমি গিট পুশ -f না করি, তাই না?
relipse


1
git reset --hard origin/my_remote_tracking_branchসত্যই কি কাজ করেছে
রুটাহন

23

আমার ক্ষেত্রে ডাইভারেজ করা বার্তাটি ঘটানোর জন্য আমি যা করেছি তা এখানে : আমি করেছি git pushতবে তারপরে git commit --amendপ্রতিশ্রুতিবদ্ধ বার্তায় কিছু যুক্ত করার চেষ্টা করেছি। তারপরে আমি আরও একটি কমিট করেছিলাম।

সুতরাং আমার ক্ষেত্রে যেটির অর্থ উত্স / মাস্টারটির অর্থ পুরানো ছিল। যেহেতু আমি জানতাম যে অন্য কেউই উত্স / মাস্টারকে স্পর্শ করছে না, তাই এই সমস্যাটি ছিল তুচ্ছ: git push -f (যেখানে বোঝার -fঅর্থ)


7
git push -fপূর্বে প্রতিশ্রুতিবদ্ধ এবং উত্সে ধাক্কা দেওয়া পরিবর্তনগুলি ওভাররাইট করতে +1 আমিও নিশ্চিত যে অন্য কেউ ভান্ডারটিকে স্পর্শ করেনি।
জ্যাকারিডল

4
খুব ঝুঁকিপূর্ণ কমান্ড। কমান্ডের ঝুঁকি ফ্যাক্টর সম্পর্কিত একটি সংক্ষিপ্ত তথ্য লিখুন।
J4cK

1
@ ট্রিকস্টার: আমি ইতিমধ্যে ঝুঁকিটি বর্ণনা করেছিলাম: "যেহেতু আমি জানতাম যে অন্য কেউ উত্স / মাস্টারকে স্পর্শ করছে না"। আমি বিশ্বাস করি, সেক্ষেত্রে এটি কোনও ঝুঁকিপূর্ণ আদেশ নয়।
ড্যারেন কুক

1
যদি কেউ মাস্টারের সাথে প্রতিশ্রুতি দেয় এবং তারপরে একজন ব্যক্তি কমান্ড গিট পুশ -f চালায় তবে এটি উচ্চ ঝুঁকিপূর্ণ আদেশ
J4cK

11

আমার ক্ষেত্রে আমি পরিবর্তনগুলিকে ধাক্কা দিয়েছি origin/masterএবং তখন বুঝতে পেরেছিলাম যে আমার এমনটি করা উচিত নয় :-( স্থানীয় পরিবর্তনগুলি একটি সাবট্রিতে ছিল এই কারণে এটি জটিল হয়েছিল So সুতরাং আমি "খারাপ" স্থানীয়ের আগে শেষ ভাল প্রতিশ্রুতিতে ফিরে গিয়েছিলাম পরিবর্তন (সোর্স ট্রি ব্যবহার করে) এবং তারপরে আমি "ডাইভারজেন বার্তা" পেয়েছি।

স্থানীয়ভাবে আমার জগাখিরি ঠিক করার পরে (বিশদগুলি এখানে গুরুত্বপূর্ণ নয়) আমি দূরবর্তী origin/masterশাখাটি "সময়ের সাথে পিছনে সরে যেতে" চেয়েছিলাম যাতে এটি masterআবার স্থানীয়টির সাথে সুসংগত হয়। আমার ক্ষেত্রে সমাধানটি ছিল:

git push origin master -f

-f(বল) স্যুইচটি নোট করুন । এটি origin/masterভুল দ্বারা প্রেরিত "খারাপ পরিবর্তনগুলি" মুছে ফেলা হয়েছে এবং এখন স্থানীয় এবং দূরবর্তী শাখাগুলি সিঙ্কে রয়েছে।

দয়া করে মনে রাখবেন যে এটি একটি সম্ভাব্য ধ্বংসাত্মক অপারেশন তাই আপনি যদি 100% নিশ্চিত হন যে দূরবর্তী মাস্টারকে সময়মতো "পিছনে সরিয়ে নেওয়া" ঠিক আছে তবেই এটি সম্পাদন করুন।


সর্বদা দরকারী তবে অবশ্যই প্রশ্নের উত্তর দেয় না।
থিবল্ট ডি

1
@ThibaultD। তা না পারলেও আমি ঠিক এটিই সন্ধান করছিলাম।
নীল চৌধুরী

আমি পেয়ে করছি You are not allowed to force push code to a protected branch on this project.। আমি আমার কাঁটা কাঁটাতে চেষ্টা করছি
বনান্নাস

আমি gitlab রেপো উপর সুরক্ষা সরাতে ছিল stackoverflow.com/questions/32246503/...
BanAnanas

5

আমি জানি এখানে প্রচুর উত্তর রয়েছে, তবে আমি মনে করি git reset --soft HEAD~1কিছুটা মনোযোগের দাবি রাখে, কারণ এটি আপনাকে বিচ্ছিন্ন অবস্থার সমাধান করার সময় শেষ স্থানীয় (ধাক্কা দেয় না) প্রতিশ্রুতিবদ্ধতাগুলিতে পরিবর্তন করতে দেয়। আমি মনে করি এটি তুলনায় টানানোর চেয়ে আরও বহুমুখী সমাধান rebase, কারণ স্থানীয় প্রতিশ্রুতি পর্যালোচনা করা যেতে পারে এবং এমনকি অন্য একটি শাখায় স্থানান্তরিত হতে পারে।

কীটি --softকঠোর পরিবর্তে ব্যবহার করছে --hard। যদি 1 টির বেশি প্রতিশ্রুতি থাকে তবে তারতম্যের HEAD~xকাজ করা উচিত। সুতরাং আমার পদক্ষেপগুলি সমাধান করার সমস্ত পদক্ষেপ এখানে রয়েছে (আমার কাছে 1 স্থানীয় প্রতিশ্রুতি ছিল এবং রিমোটে 8 টি কমিট ছিল):

1) git reset --soft HEAD~1 স্থানীয় প্রতিশ্রুতি পূর্বাবস্থা। পরবর্তী পদক্ষেপের জন্য, আমি সোর্সট্রি-তে ইন্টারফেসটি ব্যবহার করেছি, তবে আমি মনে করি নিম্নলিখিত কমান্ডগুলিও কাজ করা উচিত:

2) git stash স্ট্যাশ পরিবর্তনগুলি 1 থেকে)। এখন সমস্ত পরিবর্তনগুলি নিরাপদ এবং আর কোনও বিচ্যুতি নেই।

3) git pull দূরবর্তী পরিবর্তন পেতে।

4) git stash pop বা git stash applyসর্বশেষ স্ট্যাশড পরিবর্তনগুলি প্রয়োগ করতে হবে, তারপরে একটি নতুন প্রতিশ্রুতি অনুসারে, চাইলে। স্থানীয় প্রতিশ্রুতিতে পরিবর্তনগুলি ট্র্যাশ করতে চাইলে এই পদক্ষেপটি 2) সহ ) চ্ছিক। এছাড়াও, যখন অন্য কোনও শাখায় প্রতিশ্রুতিবদ্ধ হতে চান, তখন এই পদক্ষেপটি পছন্দসই শাখায় স্যুইচ করার পরে করা উচিত।


প্রকৃতপক্ষে, এই দিনগুলিতে pull --rebaseযাইহোক, স্বয়ংক্রিয়ভাবে লুকিয়ে থাকবে। stackoverflow.com/a/30209750/6309
VonC

4

পার্থক্যগুলি দেখতে:

git difftool --dir-diff master origin/master

এটি দুটি শাখার মধ্যে পরিবর্তন বা পার্থক্য প্রদর্শন করবে। আরাক্সিসে (আমার প্রিয়) এটি এটি একটি ফোল্ডার ডিফ স্টাইলে প্রদর্শন করে। প্রতিটি পরিবর্তিত ফাইল দেখানো হচ্ছে। তারপরে ফাইলের পরিবর্তনগুলির বিশদটি দেখতে আমি একটি ফাইলে ক্লিক করতে পারি।


1
গিট-
ডিরের

3

আমার ক্ষেত্রে এটি আমার বিরোধ নিষ্পত্তি না করার কারণে ঘটেছিল।

git pullকমান্ডটি চালানোর ফলে সমস্যা দেখা দিয়েছে । উত্সের পরিবর্তনগুলি আমার স্থানীয় রেপোগুলির সাথে বিবাদ সৃষ্টি করেছিল, যা আমি সমাধান করেছি। যাইহোক, আমি তাদের প্রতিশ্রুতিবদ্ধ না। এই মুহুর্তে সমাধানটি পরিবর্তনগুলি করা ( git commitসমাধান করা ফাইল)

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


0

ইতিমধ্যে ধাক্কা দেওয়া প্রতিশ্রুতি ব্যবহার করে, সর্বশেষ প্রতিশ্রুতি বার্তাটি সম্পাদনা করার চেষ্টা করার সময় আমার একই বার্তা ছিল: git commit --amend -m "New message" যখন আমি ব্যবহারগুলি পরিবর্তনগুলি ঠেলেছিলাম git push --force-with-lease repo_name branch_name তখন কোনও সমস্যা ছিল না।


0

আমি যখন শাখার উপর ভিত্তি করে একটি শাখা তৈরি করেছি তখন এই সমস্যাটি পূরণ করেছি

git checkout -b a

এবং তারপরে আমি শাখার একটি প্রবাহটি একটি বি এর উত্সের শাখায় সেট আপ করেছি

git branch -u origin/B

তারপরে আমি উপরে ত্রুটি বার্তা পেয়েছি।

আমার কাছে এই সমস্যা সমাধানের একটি উপায় ছিল,

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