রিমোটটি রয়েছে originএবং শাখাটি বলুন masterএবং আপনি ইতিমধ্যে masterযাচাই করে ফেলেছেন বলে নিম্নলিখিতগুলির চেষ্টা করতে পারেন:
git fetch origin
git reset --hard origin/master
এটি মূলত কেবল বর্তমান শাখা নেয় এবং এটি HEADদূরবর্তী শাখার দিকে নির্দেশ করে।
সতর্কতা : মন্তব্যগুলিতে যেমন বলা হয়েছে, এটি আপনার স্থানীয় পরিবর্তনগুলি দূরে সরিয়ে দেবে এবং উত্সের সাথে যা কিছু আছে তার সাথে ওভাররাইট করবে ।
অথবা আপনি মূলত একই কাজ করতে নদীর গভীরতানির্ণয় আদেশগুলি ব্যবহার করতে পারেন:
git fetch <remote>
git update-ref refs/heads/<branch> $(git rev-parse <remote>/<branch>)
git reset --hard
সম্পাদনা: আমি সংক্ষেপে ব্যাখ্যা করতে চাই কেন এটি কাজ করে।
.gitফোল্ডারের ভান্ডার যে কোন সংখ্যার জন্য করে ধরে রাখতে পারেন। যেহেতু কমিট হ্যাশ আসলে কমিটের বিষয়বস্তুগুলির জন্য একটি যাচাইকরণ পদ্ধতি এবং কেবল এলোমেলোভাবে উত্পন্ন মানই নয়, এটি সংগ্রহস্থলের মধ্যে কমিট সেটগুলির সাথে মেলে ব্যবহৃত হয়।
একটি শাখা একটি প্রদত্ত হ্যাশটির কেবলমাত্র একটি নির্দিষ্ট পয়েন্টার। এখানে একটি উদাহরণ সেট আছে:
$ find .git/refs -type f
.git/refs/tags/v3.8
.git/refs/heads/master
.git/refs/remotes/origin/HEAD
.git/refs/remotes/origin/master
এই ফাইলগুলির প্রত্যেকটিতে একটি হ্যাশ থাকে যা প্রতিশ্রুতিবদ্ধ দিকে নির্দেশ করে:
$ cat .git/refs/remotes/origin/master
d895cb1af15c04c522a25c79cc429076987c089b
এগুলি সমস্ত অভ্যন্তরীণ গিট স্টোরেজ মেকানিজমের জন্য এবং ওয়ার্কিং ডিরেক্টরি থেকে স্বতন্ত্রভাবে কাজ করে । নিম্নলিখিতগুলি করে:
git reset --hard origin/master
গিটটি বর্তমান শাখাটিকে একই হ্যাশ মানকে নির্দেশ করবে যা মূল / মাস্টার নির্দেশ করে। তারপরে এটি জোর করে সেই হ্যাশের ফাইলের কাঠামো / সামগ্রীর সাথে মেলে কার্যকারী ডিরেক্টরি পরিবর্তন করে।
এটি কাজ করার জন্য এগিয়ে যান এবং নিম্নলিখিতটি ব্যবহার করে দেখুন:
git checkout -b test-branch
# see current commit and diff by the following
git show HEAD
# now point to another location
git reset --hard <remote>/<branch>
# see the changes again
git show HEAD