গিট: কোনও স্থানীয় রেপো আপ টু ডেট আছে কিনা তা কীভাবে পরীক্ষা করবেন?


85

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

আমি না করে git fetchবা কীভাবে এটি চেক করতে পারি git pull?

উত্তর:


96

git fetch --dry-run ম্যানুয়ালটি ( git help fetch) বলছে চেষ্টা করুন :

--dry-run
Show what would be done, without making any changes.

4
ধন্যবাদ! যদিও, আউটপুট থেকে কোন ফাইলগুলি যুক্ত / সংশোধিত / সরানো হয়েছে তা বোঝা শক্ত।
মিশা মোরোস্কো

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

4
আমি যখন git fetch --dry-runকিছুই চালাই না তখন কেন এমন হয়?
পরমবীর সিং কারওয়াল

4
@ পরমবীরসিংহ কারওয়াল গীত তার রিপোর্টে খুব কমই রয়েছে। বলার মতো কিছু না থাকলে তা কিছুই বলে না, যেন কিছুই হয়নি। আপনার নিয়মিত সংগ্রহের রেফস্পেকের জন্য আপনি আপ টু ডেট রয়েছেন। যোগ হতে পারে --all?
ফিলিপ ওকলে

4
@ অ্যারোনবিল যদি এটি হয় তবে এর সম্ভবত সম্ভবত আপনি স্থানীয়ভাবে এই পরিবর্তনগুলি নিয়ে এসেছেন (সুতরাং আনার মতো কিছুই নেই) তবে এখনও সেগুলি আপনার শাখায় মার্জ করা হয়নি। git pullমোটামুটি a এর সমতুল্য git fetch && git merge। আপনি যদি কোনও মুহুর্তে এটিকে ছাড়াই দৌড়ান --dry-run, তবে আপনি ইতিমধ্যে স্থানীয়ভাবে জিনিসগুলি এনেছেন।
ডাকপ্পি

36
git remote show origin

ফলাফল:

HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (local out of date) <-------

এটি সর্বকালের শাখা তালিকাভুক্ত করে। আপনার যদি দীর্ঘ ইতিহাস সহ একটি সংগ্রহস্থল থাকে তবে আউটপুটটি বেশ বিশৃঙ্খল।
পাওলো কারভালহো

28

git remote updateআপনার রিমোট রেফগুলি আপ টু ডেট আনতে প্রথম ব্যবহার করুন । তারপরে আপনি কয়েকটি বিষয়গুলির মধ্যে একটি করতে পারেন, যেমন:

  1. git status -unoআপনাকে যে শাখাটি ট্র্যাক করা হচ্ছে তা এগিয়ে, পিছনে বা ডাইভার্ট হয়েছে কিনা তা আপনাকে জানাবে। যদি এটি কিছুই না বলে তবে স্থানীয় এবং দূরবর্তী একই। নমুনা ফলাফল:

শাখা DEV এ

আপনার শাখাটি 7 টি কমিট করে 'উত্স / DEV' এর পিছনে রয়েছে এবং দ্রুত অগ্রসর হতে পারে।

(আপনার স্থানীয় শাখাটি আপডেট করতে "গিট টান" ব্যবহার করুন)

  1. git show-branch *master যাদের নামগুলি 'মাস্টার' (যেমন মাস্টার এবং উত্স / মাস্টার) এ শেষ হয় সেই সমস্ত শাখায় আপনাকে কমিটগুলি দেখায়।

যদি আপনি -vগিট রিমোট আপডেট ( git remote -v update) ব্যবহার করেন তবে দেখতে পাবেন কোন শাখাটি আপডেট হয়েছে, সুতরাং আপনার আর কোনও আদেশের দরকার নেই।


4
এত এত নিচে কেন? git remote update ; git status -unoএটি সমাধান করুন। git fetch --dry-runএমনকি স্থানীয় রিমোটের পিছনে থাকা ক্ষেত্রেও কোনও আউটপুট দেয়নি।
অ্যারন বেল

17

git status -unoআপনার স্থানীয় শাখাটি মূলটির সাথে আপ টু ডেট আছে কিনা তা পরীক্ষা করে আপনি ব্যবহার করতে পারেন ।


19
এটি কেবল স্থানীয় স্থিতি দেয়, দূরবর্তী শাখার সাথে চেক না করে।
ইশান লিয়ানাজ

4
কেবল স্থানীয় দেয়, কিন্তু git remote update ; git status -unoকৌশলটি! git fetch --dry-runযখন আমি বলে আশা করা (এবং কোন আউটপুট দিলেন git pullজিনিষ টান হবে)।
অ্যারন বেল

4
এই উত্তরটি ভুল এবং মুছে ফেলা উচিত। যেমনটি হয়, এটি গিট কীভাবে কাজ করে সে সম্পর্কে একটি খুব সাধারণ তবে ভুল ধারণাটি স্থির করে দেয়, এটি কেবল তখনই অপসারণ করা হয় যখন / কেউ যদি তাতে মন্তব্যগুলি পড়ার সিদ্ধান্ত নেন।
প্রমিথিউস

8

সত্যিই নয় - তবে আমি দেখতে পাচ্ছি না যে কীভাবে git fetchআঘাত হবে কারণ এটি আপনার কোনও স্থানীয় শাখা বদলাবে না।


আমি এটার সাথে সম্পূর্ণ একমত। গিট টানগুলি ক্ষতিকারক, ফাইলগুলি ওভাররাইট করা হতে পারে। কিন্তু গিট ফেচটি কেবল মেটা ডেটা নীচে টেনে নিয়ে যায়, গিট স্ট্যাটাসের মতো কমান্ড আপনাকে কোনও ফাইল ওভাররাইট না করে আপনার স্থানীয় রেপো আপ টু ডেট আছে কিনা তা আপনাকে বলতে দেয়। এটি প্রশ্নের চিঠির উত্তর নাও দিতে পারে, তবে এটি আপনার পছন্দের সরঞ্জামটি দিয়ে প্রশ্নের উত্তর দেবে। গিট আনুন, তারপরে গিটের স্থিতি আপনাকে জানাবে যে আপনার স্থানীয় রেপো ফাইলগুলিকে ওভাররাইট না করেই রিমোটের সাথে সম্পর্কযুক্ত।
মেরিলিট 64

5

অন্য বিকল্পটি হ'ল দূরবর্তী শাখার স্থিতিটি git show-branch remote/branchতুলনা হিসাবে ব্যবহার করে আপনি দেখতে git show-branch *branchপাচ্ছেন সমস্ত রিমোটগুলিতে এবং আপনার সংগ্রহস্থলের শাখাটি দেখতে! এই উত্তরটি আরও https://stackoverflow.com/a/3278427/2711378 জন্য দেখুন


5

আপনাকে দুটি কমান্ড জারি করতে হবে:

  1. গিট আনতে উত্স
  2. গিট স্ট্যাটাস

4
এটি কাজ করে তবে প্রশ্নটি 'আনয়ন' ছাড়াই স্পষ্ট করে বলে। এমন অনেকগুলি ঘটনা রয়েছে যেখানে আপনি জানতে চান যে কীভাবে আপনার স্থানীয় রেপো রিমোট রেপো থেকে আসলে কীভাবে পরিবর্তনগুলি আনতে বা একত্রিত না করে আলাদা।
পেডরাম বাশিরি

4
@ চাপরাম্বিরি আমি প্রকৃতপক্ষে কৌতুহলী, কিসের মতো? আমার জ্ঞান অনুযায়ী একা আনতে কখনও কোনও কিছুর ক্ষতি করতে পারে না।
প্রমিথিউস

@ প্রমিথিয়াস প্রথম কথা, আমি কেবল এটি উল্লেখ করতে চেয়েছিলাম যে যখন কোনও প্রশ্ন পরিষ্কারভাবে 'আনয়ন ছাড়া' বলে থাকে আপনি কেবল নিজের উত্তরের মধ্যে আনতে পারবেন না, যদি না করার অন্য কোনও উপায় না থাকে বা এটি ছাড়া এটি করার কোনও সত্যিকারের মামলা নেই, তবে এটি দরকার উত্তরে ব্যাখ্যা করা। তবে আপনার প্রশ্নের উত্তর দেওয়ার জন্য, একটি আনয়ন দূরবর্তী রেপোর আপনার স্থানীয় অনুলিপি আপডেট করে। এই পোস্টে ডায়াগ্রামটি দেখুন blog.osteele.com/2008/05/my-git-work প্রবাহ
পেড্রাম বশির

4

git fetchআপনার দূরবর্তী সার্ভারে থাকা ফাইলগুলির তুলনায় আপনার স্থানীয় সংগ্রহস্থলের তুলনা করার আগে আপনাকে অবশ্যই চালনা করতে হবে ।

এই কমান্ডটি কেবলমাত্র আপনার দূরবর্তী ট্র্যাকিং শাখাগুলি আপডেট করে এবং আপনি কল না করা git mergeবা না করা পর্যন্ত আপনার ওয়ার্ক্রিটকে প্রভাবিত করবে না git pull

আপনার স্থানীয় শাখা এবং আপনার দূরবর্তী ট্র্যাকিং শাখার মধ্যে পার্থক্যটি একবার দেখতে পেয়ে আপনি এখানে বর্ণিত গিট ডিফ বা গিট চেরি ব্যবহার করতে পারেন


2

আপনি যদি ব্যবহার

git fetch --dry-run -v <link/to/remote/git/repo>

এটি আপ-টু-ডেট কিনা তা সম্পর্কে আপনি প্রতিক্রিয়া পাবেন। সুতরাং মূলত, আপনাকে কেবল আগে দেওয়া উত্তরের "ভার্বোজ" বিকল্পটি যুক্ত করতে হবে।


1

git fetchবা ব্যবহার না করেই এটি অসম্ভব git pull। "আপ-টু-ডেট" এমনকি এর অর্থ কী তা বোঝার জন্য রিমোটোরিটি "আপ-টু-ডেট" রয়েছে কিনা তা আপনি কীভাবে জানতে পারবেন?


4
অনুগ্রহ করে ঐটা নিশ্চিত কর! আপনি কেবল উত্তর দিয়েছেন আপনি কি মনে করেন! আপনার আরও সতর্ক হওয়া উচিত কারণ নবাগত শিশুরা এটির সাথে কাঁপতে থাকবে!
আমানুয়েল নেগা

4
@ আমানুয়েলনেগা: এটি কেবলমাত্র মূল যুক্তি। যদি আপনি জানতে চান যে আপনার স্থানীয় রেপো দূরবর্তী রেপোগুলির একই অবস্থায় রয়েছে তবে আপনাকে দূরবর্তী রেপোর অবস্থাটি জানতে হবে। পিরিয়ড। আপনি যদি দূরবর্তী রেপোটির অবস্থা জানেন না, তবে স্থানীয় রেপো একই অবস্থায় রয়েছে কিনা তা আপনি সম্ভবত জানতে পারবেন না। নোট করুন যে সর্বাধিক ভোটগ্রহণ ও গ্রহণযোগ্য উত্তর ব্যবহার করে git pull, যা ওপি তার প্রশ্নের মধ্যে স্পষ্টতই নিষিদ্ধ করে।
Jörg ডব্লু মিটাগ

4
খবর দিন! git status -unoএটি কাজ করে এবং একটিও git show-branch *masterসমস্ত মাস্টার শাখার স্থিতি দেখতে ব্যবহার করতে পারে ! আপনি কি এখনও বলছেন এটি অসম্ভব? আপনি যে কোনও শাখার স্থিতি দেখতে পাচ্ছেন যতক্ষণ না আপনার রিমোটটিতে অ্যাক্সেস রয়েছে!
আমানুয়েল নেগা

4
@ আমানুয়েলনেগা: git statusকেবল আপনাকে আপনার স্থানীয় রেফের অবস্থা জানায় এটি আপনার স্থানীয় রেফগুলি রিমোট রেফগুলি সহ আপ টু ডেট আছে কিনা তা আপনাকে জানায় না । আবার: রিমোট রেপোর অবস্থা না পেয়ে দূরবর্তী রেপোর অবস্থা কী তা জানা যুক্তিসঙ্গতভাবে অসম্ভব। পিরিয়ড। এটি কেবল স্থানকালীন প্রাথমিক আইন।
Jörg ডব্লু মিটাগ

6
এটি "যৌক্তিকভাবে" অসম্ভব নয় যেহেতু স্ব-স্পষ্টতই কেউ আপনার সার্ভার রুমে কাউকে বেজে উঠতে পারে এবং বলতে পারে, "মাস্টার ব্রাঞ্চে আপনার হেডের হ্যাশ কি" তারা আপনাকে বলতে পারে এবং তারপরে আপনি স্থানীয় যাচাই করে দেখতে পারেন যে আপনি ডান এই হ্যাশ নেই। এখন আপনি জানেন যে এগুলি সিঙ্কের বাইরে।
জেমস রবিনসন

1

আমার উত্তরটি ফর্ম্যাট করার চেষ্টা করেছিল, কিন্তু পারেনি lease প্লিজ স্ট্যাকওভারফ্লো টিম, কেন উত্তর পোস্ট করা এত কঠিন।

নিরর্থক,

উত্তর:
গিট ফেচ অরিজিন
গিটের স্থিতি (
দূরবর্তী পরিবর্তনগুলিতে আপডেট করার জন্য আপনি "আপনার শাখাটি 9 টি কমিট দ্বারা 'উত্স / মাস্টার' এর পিছনে রয়েছে" এর ফলাফল দেখতে পাবেন) : গিট টানুন

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