দূরবর্তী (উত্স) গিট সংগ্রহস্থলের পরিবর্তনগুলি কীভাবে পরীক্ষা করবেন?


249

প্রশ্ন

নিম্নলিখিত কর্মপ্রবাহটি করতে গিট আদেশগুলি কী কী?

দৃশ্যপট

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

  1. দূরবর্তী সংগ্রহস্থলটিতে অন্য লোকের কাছ থেকে নতুন কোন কমিট রয়েছে কিনা তা দেখুন origin?

  2. আমার শেষ টান থেকে দূরবর্তী সংগ্রহস্থল 3 নতুন করে সেখানে ছিলেন বলে, আমি পরিবর্তন দূরবর্তী সংগ্রহস্থল এর করে, অর্থাত্ চাই HEAD~3সঙ্গে HEAD~2, HEAD~2সঙ্গে HEAD~1এবং HEAD~1সঙ্গে HEAD

  3. দূরবর্তী স্থানে কী পরিবর্তন হয়েছে তা জানার পরে, আমি অন্যদের কাছ থেকে সর্বশেষ প্রতিশ্রুতি পেতে চাই।

আমার অনুসন্ধান এখনও পর্যন্ত

ধাপ 2 জন্য: আমি ক্যারেট স্বরলিপি জানেন HEAD^, HEAD^^ইত্যাদি এবং টিল্ডা স্বরলিপি HEAD~2, HEAD~3ইত্যাদি

ধাপ 3 এর জন্য: যে আমি, শুধু একটি নয়, git pull



@ ড্যানিয়েল যে উত্তরটির সাথে আপনি সংযোগ করছেন তা দুর্দান্ত এবং এমনকি একটি কাস্টমাইজেবল বাশ স্ক্রিপ্ট নিয়ে আসে। +1
gorbysbm

উত্তর:


255

আপনি git fetch originসর্বশেষ সংস্করণে নির্দেশ করতে আপনার সংগ্রহস্থলের দূরবর্তী শাখাটি আপডেট করতে পারেন। রিমোটের বিপরীতে ভিন্নতার জন্য:

git diff origin/master

হ্যাঁ, আপনি পাশাপাশি ক্যারেট স্বরলিপি ব্যবহার করতে পারেন।

আপনি যদি রিমোট পরিবর্তনগুলি গ্রহণ করতে চান:

git merge origin/master

34
ভিন্নতা বিপরীত দেখায়। আমি এটি ব্যবহার করা সহজ বলে মনে করি git diff HEAD origin/masterতাই আমি যদি দূরবর্তী পরিবর্তনগুলি গ্রহণ করি তবে কী প্রয়োগ করা হবে তা ভিন্নতা দেখায়।
cbliard

2
"গিট ফ্যাচ আদি" এবং "গিট শো-ব্রাঞ্চ * মাস্টার" আমার জন্য দরকারী।
Léa Massiot

159
git remote update && git status 

গিটের মধ্যে টান দরকার কিনা তা পরীক্ষা করে দেখুন এর উত্তরে এটি পেয়েছি

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

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

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

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


যথেষ্ট না. আমাকে git pull <remote> <branch>ধাক্কা দেওয়ার সাথে সাথেই আমাকে একটি কাজ করতে হবে, কারণ আমার স্থানীয় শাখার ডগা রিমোট কাউন্টারটির পিছনে ছিল।
ওভারড্রাইভার

3
@ ওভারড্রাইভার স্থানীয় শাখায় কমিট করার আগে প্রশ্নটি পরিবর্তনগুলি পরীক্ষা করার জন্য একটি উপায় জিজ্ঞাসা করে। সুতরাং, হ্যাঁ, পরিবর্তনগুলি পরীক্ষা করার পরে আপনাকে আপনার স্থানীয় শাখাটি আপডেট করতে হবে।
রজনী করুতুরী

এটি কি দূরবর্তী হওয়ার উত্স বা প্রবাহের জন্য?
বিক্রমভি

1
-V বিকল্পটি কাজ করে না। জন্য git remote update -vআমি পেয়েছিলামerror: unknown switch `v'
Shad

1
@ শ্যাড আপনার করা উচিত git remote -v updateনয়git remote update -v
রজনী করুতুরী

34

"উত্স" কী চলছে তার সিনথেটিক দৃষ্টিভঙ্গি রাখার একটি ভাল উপায়:

git remote show origin

11
কিন্তু এই আদেশটি আমাকে দেখায় না যে আমার শেষ টান থেকে "উত্স" নিয়ে কয়টি প্রতিশ্রুতি রয়েছে, তা কি? আমি "গিট রিমোট শো উত্স" যেভাবে বুঝতে পেরেছি তা একটি স্থানীয় ক্রিয়াকলাপ এবং তথ্য আনতে নেটওয়ার্কের উপর দিয়ে যায় না।
লার্নকুরভে

24

আমি শুধু ব্যবহার

git remote update
git status

এরপরের পরে আমার স্থানীয় লোকটির পিছনে কতটি প্রতিশ্রুতি রয়েছে তা জানায়। (যদি কোন)

তারপর

git pull origin master

আমার স্থানীয় আপ টু ডেট আনতে :)


13

আমার নিয়মিত প্রশ্নটি বরং "নতুন কিছু বা রেপোতে পরিবর্তিত" তাই যা পরিবর্তিত হয় তা কার্যকর হয় । এটি এখানে খুঁজে পেয়েছি ।

git whatchanged origin/master -n 1

1
এই কমান্ড নতুন ছিল না। ধন্যবাদ। এটিই আমি খুঁজছিলাম
সৌরভ জৈন

11

একটি সম্ভাব্য সমাধান

ধন্যবাদ অ্যালান হগয় আলাভি এর সমাধান আমি নিম্নলিখিত সম্ভাব্য কর্মপ্রবাহ নিয়ে এসেছেন:

ধাপ 1:

git fetch origin

ধাপ ২:

git checkout -b localTempOfOriginMaster origin/master
git difftool HEAD~3 HEAD~2
git difftool HEAD~2 HEAD~1
git difftool HEAD~1 HEAD~0

ধাপ 3:

git checkout master
git branch -D localTempOfOriginMaster
git merge origin/master

13
দূরবর্তী সংশোধনগুলির মধ্যে পার্থক্যের জন্য আপনাকে কেন একটি অস্থায়ী শাখা তৈরি করতে হবে? আপনি কেবল পারেনgit diff origing/master^ origing/master^^
পাবলো মেরিন-গার্সিয়া

@ পাবলোমারিন-গার্সিয়া: ধন্যবাদ। আমি তখন আর জানতাম না।
লার্নকুড়ভ

2

git statusআনার পরেও সর্বদা মাস্টার এবং উত্স / মাস্টার মধ্যে পার্থক্য দেখায় না। আপনি যদি সমন্বয়টি git fetch origin && git statusকাজ করতে চান তবে আপনাকে স্থানীয় শাখা এবং উত্সের মধ্যে ট্র্যাকিংয়ের তথ্য নির্দিষ্ট করতে হবে:

# git branch --set-upstream-to=origin/<branch> <branch>

মাস্টার শাখার জন্য:

git branch --set-upstream-to=origin/master master

0

যেহেতু এখন পর্যন্ত এটি প্রস্তাব করা হয়নি ... এবং আমি এটি বেশ দরকারী বলে মনে করি ...

আমি সহজভাবে ব্যবহার

git fetch origin

দূরবর্তী পরিবর্তনগুলি আনতে, এবং তারপরে - সমস্ত আর্গুমেন্টের সাথে জড়িত চমৎকার গিটক সরঞ্জাম ( https://git-scm.com/docs/gitk ) সহ স্থানীয় এবং মুলতুবি রিমোট কমিট (এবং তাদের সম্পর্কিত পরিবর্তনগুলি) উভয়ই আমি দেখতে পাই like

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