আমি গিটে উত্স / মাস্টারের অবস্থান কীভাবে খুঁজে পেতে পারি এবং কীভাবে আমি এটি পরিবর্তন করব?


227

আমি গিট নবাগত। আমি সম্প্রতি সাবলেটভিয়ান থেকে গিটের জন্য একটি রেল প্রকল্প সরিয়েছি। আমি টিউটোরিয়ালটি এখানে অনুসরণ করেছি: http://www.simplisticcomplexity.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/

আমি আমার কোড সঞ্চয় করতে আনফডল ডট কম ব্যবহার করছি। আমি আমার ম্যাক ল্যাপটপটিতে ট্রেনে / কাজ থেকে ট্রেনগুলি পরিবর্তন করেছি এবং তারপরে নিম্নলিখিত কমান্ডটি ব্যবহার করে আমার সাথে একটি নেটওয়ার্ক সংযোগ রয়েছে তখন এগুলি ফাটিয়ে ফেলার জন্য চাপ দিন:

git push unfuddle master

আমি মাসিটার ব্রাঞ্চ ব্যবহার করে অবস্তন সংগ্রহস্থল থেকে মোতায়েন এবং পুল টান কোডের জন্য ক্যাপিস্ট্রানো ব্যবহার করি।

ইদানীং আমি নীচের বার্তাটি লক্ষ্য করেছি যখন আমি আমার ল্যাপটপে "গিট স্ট্যাটাস" চালাচ্ছি:

# On branch master
# Your branch is ahead of 'origin/master' by 11 commits.
#
nothing to commit (working directory clean)

এবং আমি কেন বিভ্রান্ত করছি। আমি ভেবেছিলাম আমার ল্যাপটপটিই এর উত্স ... তবে আমি জানি না যে আমি আসলে সাবভারশন থেকে টেনেছি বা আনফুডল-এর দিকে ধাক্কা দিয়েছি এই বার্তাটি প্রদর্শিত হওয়ার কারণ কি। আমি কিভাবে পারি:

  1. গিট 'আদি / মাস্টার' কোথায় বলে মনে করেন?
  2. যদি এটি অন্য কোথাও হয় তবে আমি কীভাবে আমার ল্যাপটপটিকে 'উত্স / মাস্টার' এ পরিণত করব?
  3. দূরে যেতে এই বার্তা পান। এটি আমাকে ভাবতে বাধ্য করে যে গিট কিছু সম্পর্কে অসন্তুষ্ট।

আমার ম্যাক গিট সংস্করণ 1.6.0.1 চলছে।


আমি যখন git remote show originডিবিআরের পরামর্শ অনুসারে চালনা করি, তখন আমি নিম্নলিখিতগুলি পাই:

~/Projects/GeekFor/geekfor 10:47 AM $ git remote show origin
fatal: '/Users/brian/Projects/GeekFor/gf/.git': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly

আমি যখন git remote -vঅ্যারিস্টটল পাগাল্টজিসের পরামর্শ অনুযায়ী চালিতাম, তখন আমি নিম্নলিখিতগুলি পাই:

~/Projects/GeekFor/geekfor 10:33 AM $ git remote -v
origin  /Users/brian/Projects/GeekFor/gf/.git
unfuddle    git@spilth.unfuddle.com:spilth/geekfor.git

এখন, মজার বিষয় হল, আমি geekforডিরেক্টরিতে আমার প্রকল্পে কাজ করছি তবে এটি বলছে যে আমার উত্সটি gfডিরেক্টরিতে আমার স্থানীয় মেশিন । আমি বিশ্বাস করি যে gfআমার প্রকল্পটি সাবভারশন থেকে গিটে রূপান্তর করার সময় আমি যে অস্থায়ী ডিরেক্টরিটি ব্যবহার করেছি এবং সম্ভবত যেখানে আমি এই পদক্ষেপের দিকে ঝুঁকে পড়েছি। তারপরে আমি বিশ্বাস করি যে আমি geekforডিরেক্টরিতে আবদ্ধ থেকে একটি নতুন কপি পরীক্ষা করে দেখেছি ।

সুতরাং দেখে মনে হচ্ছে আমার ডিবিআরের পরামর্শ অনুসরণ করা এবং করা উচিত:

git remote rm origin
git remote add origin git@spilth.unfuddle.com:spilth/geekfor.git

উত্তর:


202

1. গিট কোথায় 'আদি / মাস্টার' ব্যবহার করছে বলে মনে করে git-remote

git remote show origin

.. যা এমন কিছু ফিরিয়ে দেবে ..

* remote origin
  URL: me@remote.example.com:~/something.git
  Remote branch merged with 'git pull' while on branch master
    master
  Tracked remote branch
    master

রিমোট মূলত রিমোট রিপোজিটরির লিঙ্ক। যখন তুমি কর..

git remote add unfuddle me@unfuddle.com/myrepo.git
git push unfuddle

..git আপনার যুক্ত করা ঠিকানার পরিবর্তনের দিকে ঠেলে দেবে। এটি দূরবর্তী সংগ্রহস্থলের জন্য বুকমার্কের মতো।

আপনি যখন চালান git status, এটি পরীক্ষা করে যে রিমোটটি অনুপস্থিত রয়েছে (আপনার স্থানীয় সংগ্রহস্থলের তুলনায়), এবং যদি তাই হয় তবে কতটি কমিট করে তা পরীক্ষা করে দেখুন। আপনি যদি আপনার সমস্ত পরিবর্তনগুলিকে "উত্স" এ চাপ দেন তবে উভয়ই সিঙ্কে থাকবে, সুতরাং আপনি এই বার্তাটি পাবেন না।

2. যদি এটি অন্য কোথাও হয় তবে আমি কীভাবে আমার ল্যাপটপটিকে 'উত্স / মাস্টার' এ পরিণত করব?

এটি করার কোনও মানে নেই। বলুন "উত্স" এর নাম পরিবর্তন করে "ল্যাপটপ" করা হয়েছে - আপনি কখনও git push laptopআপনার ল্যাপটপ থেকে করতে চান না ।

আপনি যদি মূল রিমোটটি সরাতে চান তবে আপনি করুন ..

git remote rm origin

এটি কোনও কিছুই মুছে ফেলবে না (ফাইল-সামগ্রী / পুনর্বিবেচনার ইতিহাসের ক্ষেত্রে)। এটি "আপনার শাখাটি এগিয়ে ..." বার্তাটি বন্ধ করে দেবে, কারণ এটি আর আপনার রিপোজিটরির সাথে দূরবর্তীটির সাথে তুলনা করবে না (কারণ এটি চলে গেছে!)

একটি জিনিস মনে রাখবেন যে এখানে বিশেষ কিছু নেই origin, এটি কেবল একটি ডিফল্ট নাম গিট ব্যবহার করে।

Git ব্যবহার করে originযখন আপনি কিছু পছন্দ কর ডিফল্টরূপে git pushবা git pull। সুতরাং, যদি আপনার কাছে কোনও রিমোট থাকে তবে আপনি প্রচুর পরিমাণে ব্যবহার করেন (আনফিউডল, আপনার ক্ষেত্রে), আমি "উত্স" হিসাবে অনাবৃত যুক্ত করার পরামর্শ দিচ্ছি:

git remote rm origin
git remote add origin git@subdomain.unfuddle.com:subdomain/abbreviation.git

অথবা সেট-url ব্যবহার করে উপরের এক আদেশে করুন:

git remote set-url origin git@subdomain.unfuddle.com:subdomain/abbreviation.git

তারপরে আপনি কেবল পরিবর্তে git pushবা git pullআপডেট করতে পারবেনgit push unfuddle master


1
তিনি লিখেছেন যে তিনি originসংগ্রহশালার দিকে ধাক্কা দেন (যদিও তিনি গিটারের ক্ষেত্রে কীভাবে কাজ করেন সে সম্পর্কে তিনি অবগত নন) - রিমোটটি সরিয়ে ফেলা তার পক্ষে কার্যকরভাবে কার্যকর হবে না।
অ্যারিস্টটল পাগাল্টজিস

10
লোকেরা কেন প্রশ্নগুলির উত্তর দেয় তা আমি বুঝতে পারি না। এটি প্রশ্নের অর্থ পরিবর্তন করে, এটি বিদ্যমান উত্তরগুলির কোনও অর্থ দেয় না, এবং এটি অন্যান্য লোকেদের জানতে দেয় না যে প্রশ্নকারীকে তাদের প্রশ্নটি কিছুটা 'ভুল' হতে পারে তার ভিত্তিতে আরও তথ্যের প্রয়োজন।
স্টু

9
দূরবর্তী উত্সটি অপসারণ করা ঠিক আমার প্রয়োজন ছিল কারণ এটি একটি স্থানীয় সংগ্রহস্থলের দিকে ইঙ্গিত করছিল যা অস্তিত্বহীন সংগ্রহস্থল নয়।
ব্রায়ান কেলি

3
স্টু: রেকর্ডিং একটি ভাল জিনিস! যদি তারা শব্দটি প্রথমে স্পষ্টভাবে না থাকে, তবে উত্তর পাওয়ার কোনও অর্থ নেই যা আসল সমস্যাটি সমাধান করে না।
dbr

4
তবে রাগ করা এবং তিক্ত হওয়া এত সহজ। :-) তবে আমি আপনার পয়েন্টটি দেখতে পাচ্ছি।
স্টু

286

"আপনার শাখাটি এগিয়ে ..." বার্তাটি গিটের সাধারণ স্কিমের অর্থ কী তা সম্পর্কে একটি ব্যাখ্যা খুঁজতে আমি এই প্রশ্নে এসেছি। এখানে এর কোনও উত্তর ছিল না, তবে যেহেতু এই প্রশ্নটি বর্তমানে গুগলের শীর্ষে প্রদর্শিত হবে যখন আপনি "আপনার শাখাটি 'উত্স / মাস্টার' এর চেয়ে এগিয়ে আছে" বাক্যাংশটি অনুসন্ধান করেন এবং তখন থেকেই আমি এই বার্তাটির প্রকৃত অর্থ কী তা খুঁজে বের করেছি since , আমি ভেবেছিলাম আমি এখানে তথ্য পোস্ট করব।

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

সুতরাং, পরিষ্কার হতে হবে:


"আপনার শাখাটি এগিয়ে রয়েছে ..." => আপনাকে রিমোট মাস্টারের দিকে ঠেলতে হবে। আপনার স্থানীয় সংগ্রহস্থল এবং রিমোট মাস্টার সংগ্রহস্থলের মধ্যে পার্থক্য কী তা দেখতে "গিট ডিফ অরিজিন / মাস্টার" চালান ।


আশা করি এটি অন্যান্য নবজাতকদের সহায়তা করবে।

(এছাড়াও, আমি স্বীকার করেছি যে কনফিগারেশন সূক্ষ্মতা রয়েছে যা এই সমাধানটিকে আংশিকভাবে অকার্যকর করতে পারে যেমন মাস্টার আসলে "রিমোট" নাও হতে পারে এবং "উত্স" কনভেনশন দ্বারা ব্যবহৃত একটি পুনরুদ্ধারযোগ্য নাম ইত্যাদি name তবে newbies তা করে এই ধরণের জিনিস সম্পর্কে চিন্তা করবেন না We আমরা সহজ, সরল উত্তর চাই। একবার চাপের সমস্যাটি সমাধান করার পরে আমরা সূক্ষ্মতাগুলি পরে পড়তে পারি))

আর্ল


2
@ ইরল git diff --cached origin/masterএখানে আরও ভাল নির্দেশনা হবে না কেননা এতে বলা হয়েছে যে পরবর্তী ধাক্কার ফলাফল কী হবে? হাইলাইট কমান্ড আপনাকে উপরে রয়েছে তারা স্বাধীন ও unstaged ফাইল দেখায় (আমার ধারণা, আমি একটি Git নবাগত খুব নই)
nhed

48
আপনি যদি এটির git fetchপরেও এই ত্রুটিটি পেয়ে থাকেন তবে আপনাকে চালানো দরকার এটিও সম্ভব git pull remote branch। আপনার রেফগুলি পুরানো হতে পারে। git fetchএটি স্থির করে
ব্রায়ান কেনেডি

না origin/masterঅংশ গড় masterশাখা originরেপো?
রকিব

1
মনে রাখবেন যে এই বিবরণটি অসম্পূর্ণ। আমি বর্তমানে অনুভব করছি # On branch master # Your branch is ahead of 'origin/master' by 3 commits. তবে গিট ডিফের উত্স / মাস্টার কিছুই দেখায় না, (এবং - ক্যাশেড বিকল্পটি এটি পরিবর্তন করে না)। এবং, গিট আনতে এটি পরিবর্তন হয় না, গিট টান এটি পরিবর্তন করে না, গিট রিসেট --হার্ড এটি পরিবর্তন করে না। এটি পরিবর্তন করার জন্য, আমার দরকার ছিল: গিট রিসেট --হার্ড উত্স / মাস্টার এবং আমি সেই রুটটি বেছে নিয়েছি কারণ অন্যান্য ব্যক্তিরা আমার সাথে এই ভান্ডারটিতে কাজ করছেন এবং আমি তাদের পরীক্ষাটি বাতিল করতে চাইনি, এবং কারণ আমি কী করি তা জানতে পারি না আছে।
আরডিএম

1
উত্স / মাস্টারের দিকে ধাক্কা না দিয়ে যখন আমাকে টানতে হবে তখন আমি এই বার্তাটিও পাই । উদাহরণস্বরূপ অন্য শাখা থেকে যদি আমি git checkout masterবার্তাটি পাই তবে এর অর্থ git pull origin masterকাজ করার আগে আমার উচিত । তবে আমি এটি খুব বিভ্রান্তিকর বলে মনে করি কারণ বার্তাটির শব্দটি এর বিপরীত প্রস্তাব দেয়
অ্যানেন্ট্রপিক

38

আমি একটি সমস্যা হলো এই অনুরূপ ছিল যেখানে আমার কাজ ডিরেক্টরি হয়েছিল ahead of origin by X commitsকিন্তু git pullফলে ছিল Everything up-to-date। আমি এই পরামর্শ অনুসরণ করে এটি ঠিক করতে পরিচালনা করেছি । এটি অন্য কেউ যদি অনুরূপ সমস্যা নিয়ে সহায়তা করে তবে আমি এটি এখানে পোস্ট করছি।

বেসিক ফিক্সটি নিম্নরূপ:

$ git push {remote} {localbranch}:{remotebranch}

বন্ধনীগুলিতে শব্দগুলি আপনার দূরবর্তী নাম, আপনার স্থানীয় শাখার নাম এবং আপনার দূরবর্তী শাখার নাম দ্বারা প্রতিস্থাপন করা উচিত। যেমন

$ git push origin master:master

1
ধন্যবাদ, এটি আমার জন্য এটি করেছে। git diffকিছুই দেখায় নি, এবং আপনি যা বর্ণনা করেছেন তা করার পরে আমি আর এই বিভ্রান্তিকর এবং বিরক্তিকর বার্তাটি পাই না।
লন্ড্রোম্যাট

1
আরও upvotes প্রয়োজন :)। উচ্চ-ভোট প্রাপ্ত উত্তরগুলি আমার জন্য সমস্ত "প্রভাবিত" ছিল না (যেমন "গিট আনতে" - কিছুই করেনি ... "গিট রিমোট শো উত্স" দেখুন - কিছুই ভুল হয়নি, কিছুই পরিবর্তনের দরকার নেই)
অ্যাডাম

24

কখনও কখনও উত্স মাস্টার (উত্স / মাস্টার) এর স্থানীয় ক্যাশেড সংস্করণ এবং প্রকৃত উত্সের মাস্টারের মধ্যে পার্থক্য থাকে।

আপনি যদি এটি চালান তবে git remote updateএটি উত্স / মাস্টার সহ উত্সের মাস্টারটিকে পুনরায় সংযুক্ত করবে

এই প্রশ্নের গৃহীত উত্তর দেখুন

গিট পুলের উত্স মাস্টার এবং গিট পুলের উত্স / মাস্টার মধ্যে পার্থক্য


10

আমি ভেবেছিলাম আমার ল্যাপটপটির উত্স ...

এটি এক ধরণের অযৌক্তিক: originডিফল্ট রিমোট রিপোজিটরি বোঝায় - আপনি সাধারণত যেখান থেকে অন্য ব্যক্তির পরিবর্তন আনেন / টানেন।

আমি কিভাবে পারি:

  1. git remote -vকি originতা আপনাকে দেখাবে ; origin/masterআপনার শেষ জ্ঞাত রাষ্ট্র জন্য "বুকমার্ক" হয় masterশাখা originসংগ্রহালয় এবং আপনার নিজের masterএকটি হল ট্র্যাকিং শাখা জন্য origin/masterএটি যেমন হওয়া উচিত তেমনই

  2. আপনি না। কোনও সংগ্রহস্থলকে নিজের জন্য ডিফল্ট দূরবর্তী সংগ্রহস্থল হিসাবে অন্তর্ভুক্ত করার কোনও ধারণা নেই।

  3. এটা না। এটি কেবল আপনাকে বলছে যে আপনি স্থানীয়ভাবে এতগুলি কমিট করেছেন যা দূরবর্তী সংগ্রহস্থলগুলিতে নেই (সেই ভাণ্ডারের শেষ পরিচিত রাষ্ট্র অনুযায়ী)।


1
আমি ধরে নিয়েছিলাম যে আমার ল্যাপটপটি সেই থেকেই যেহেতু আমি প্রথম সংগ্রহস্থল তৈরি করেছি (যেখানে এটি উত্পন্ন হয়েছিল)।
ব্রায়ান কেলি

1
বিপরীতে এটি আমার কাছে originস্থানীয়ভাবে ল্যাপটপের দিকে ইঙ্গিত করার বিষয়টি পুরোপুরি বোঝায় যেহেতু অফলাইন হওয়া বা নেটওয়ার্ক স্যুইচ করা ল্যাপটপের মতো পোর্টেবল ডিভাইসের পক্ষে খুব সাধারণ বিষয়। এইভাবে আপনি git pushএবং যে git pullকোনও সময় ব্যবহার করতে পারেন , আপনি বর্তমানে সঠিক নেটওয়ার্কের সাথে সংযুক্ত আছেন কিনা তা নিয়ে ভাবার দরকার নেই। originবর্তমান রোমিং স্থিতির উপর নির্ভর করে কোনও নেটওয়ার্ক লিঙ্ক উপলব্ধ হলে এই স্থানীয়টি স্বয়ংক্রিয় রিমোটগুলির সাথে সিঙ্ক করা যায়। সমস্যাযুক্ত অংশটি হ'ল কখন কোন সিঙ্কটি চালাবেন, তার তুলনায় জিআইটি অংশটি বেশ সহজ।
টিনো

2
আপনার ল্যাপটপে অন্য একটি সংগ্রহস্থলের originদিকে ইঙ্গিত করা নিখুঁত অর্থে, নিশ্চিত। নিজেই সংগ্রহস্থলের দিকে ইঙ্গিত করলে তা আসে না: আপনি যেভাবে চালাচ্ছেন বা যা কিছু চালান তা কোনও পার্থক্য করতে পারে না , যেহেতু একটি সংগ্রহস্থল সর্বদা যে কোনওভাবেই নিজের সাথে সামঞ্জস্যপূর্ণ। এটি ভুল, একপ্রকার টোটোলজিকাল। origingit pushgit pull
এরিস্টটল পাগাল্টজিস

3

[সমাধান]

$ git push origin

^ এটি আমার জন্য এটি সমাধান করেছে। এটি কী করেছে, এটি আমার মাস্টারকে (ল্যাপটপে) রিমোট সার্ভারে থাকা "উত্সের" সাথে সিঙ্ক্রোনাইজ করেছে।


1

আমি এই সমস্যাটির সাথে লড়াই করছি এবং পূর্ববর্তী উত্তরগুলির মধ্যে কোনওটিই যেমন দেখছি তেমন প্রশ্নটির সমাধান করেনি। আমি আমার সমস্যাটি পরিষ্কার করে তুলতে পারি কিনা তা দেখার জন্য আমি সমস্যাটিকে তার মূল বিষয়গুলিতে পিছনে ফেলেছি।

আমি একটি নতুন সংগ্রহস্থল (rep1) তৈরি করি, এটিতে একটি ফাইল রেখে প্রতিশ্রুতিবদ্ধ।

mkdir rep1
cd rep1
git init
echo "Line1" > README
git add README
git commit -m "Commit 1"

আমি Rep1 এর একটি ক্লোন তৈরি করি এবং এটিকে rep2 বলি। আমি rep2 এর ভিতরে তাকান এবং ফাইলটি সঠিক দেখতে পাচ্ছি।

cd ~
git clone ~/rep1 rep2
cat ~/rep2/README

Rep1 এ আমি ফাইলটিতে একক পরিবর্তন করে প্রতিশ্রুতিবদ্ধ। তারপরে Rep1 এ আমি একটি রিমোট তৈরি করি যাতে প্রতিস্থাপন 2 এবং পরিবর্তনগুলিকে ঠেকাতে হয়।

cd ~/rep1
<change file and commit>
git remote add rep2 ~/rep2
git push rep2 master

এখন যখন আমি রেপ 2 এ যাই এবং 'গিট স্ট্যাটাস' করি তখন আমি বলি যে আমি উত্সের চেয়ে এগিয়ে।

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   README
#

Rep2 এ README যেমনটি ছিল ঠিক তেমনই দ্বিতীয় প্রতিশ্রুতি দেওয়ার আগে। আমি কেবলমাত্র পরিবর্তনগুলি করেছিলাম তা হল Rep1 এবং আমি যা করতে চেয়েছিলাম তা তাদের rep2 এ ঠেলে দেওয়া। এটা কী আমি আঁকড়ে ধরছি না?


1
দুটি জিনিস: রেপ 2 এর "উত্স / মাস্টার" চেকটি আসলে rep1 এ দেখায় না। আপনি যদি rep2 এ 'গিট টান' করেন তবে তা লক্ষ্য করা যাবে যে তারা একই অবস্থায় রয়েছে এবং অভিযোগ করা বন্ধ করে দেয়। কার্যকরী অনুলিপিটির ধাক্কা থেকে আসা পরিবর্তনগুলি দেখতে আপনাকে অবশ্যই 'গিট চেকআউট' করতে হবে - ডেট রেপোর কার্যকরী অনুলিপিটি কখনই স্পর্শ করে না।
ওয়াল্টার মুন্ড 18

আমি ভেবেছিলাম যে এটি হতে পারে তবে আমি পেয়েছি "গিট চেকআউট এম রিডম আপনার শাখাটি 1 কমিট দ্বারা 'উত্স / মাস্টার' এর আগে। তবে আমার ওয়ার্কিং কপিটি আসলে 1 টি কমিটের পিছনে রয়েছে, এগিয়ে নয়।
স্টিভ হিন্দমার্চ

1

এটি আপনার "ধাক্কা" দেওয়ার জন্য অপেক্ষা করছে। চেষ্টা করুন:

$ git push


1

আমার সম্প্রতি এই সমস্যাটি হয়েছিল এবং আমি বুঝতে পেরেছিলাম কারণ আমি এমন কিছু ফাইল মুছে ফেলেছিলাম যা আমার আর প্রয়োজন হয় না। সমস্যাটি হ'ল গিটটি জানে না যে ফাইলগুলি মুছে ফেলা হয়েছে এবং এটি সার্ভারে এখনও আছে তা দেখে। (সার্ভার = উত্স)

তাই আমি দৌড়ে গেলাম

git rm $(git ls-files --deleted)

এবং তারপরে একটি প্রতিশ্রুতিবদ্ধ এবং ধাক্কা।

এটি সমস্যার সমাধান করেছে।


1
এটি কেবল তখনই কাজ করে যদি প্রতিশ্রুতিবদ্ধ বার্তাটি - <ফাইল নাম>
লুনিডুডল

1

আমিও গিট নবাগত। আমার সাথে একই সমস্যা ছিল 'এন কমান্ড দ্বারা আপনার শাখা উত্স / মাস্টারের চেয়ে এগিয়ে' বার্তাগুলিতে। প্রস্তাবিত 'গিট ডিফ অরিজিন / মাস্টার' করার ফলে কিছু ভিন্নতা দেখা গিয়েছিল যা আমি রাখার যত্ন করি না। তাই ...

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

(হোস্টিং মেশিনে)

mv myrepo myrepo
git clone USER@MASTER_HOST:/REPO_DIR myrepo

সাধ্যের জন্য, আমি আমার হোস্টিং মেশিনের ক্লোনটিতে পরিবর্তন করতাম। আর না. আমি মাস্টারকে এই পরিবর্তনগুলি করব, সেখানে গিট কমিট, এবং গিট টান করব। আশা করি, এটি আমার গিট ক্লোনটিকে হোস্টিং মেশিনে সম্পূর্ণ সিঙ্কে রাখবে।

/ নারা


0

আমি আমার রেপো সম্পর্কে একই জিনিস ভাবছিলাম। আমার ক্ষেত্রে আমার একটি পুরানো রিমোট ছিল যা আমি আর চাপ দিচ্ছি না তাই আমার এটি অপসারণ করা দরকার।

রিমোটগুলির তালিকা পান:

git remote

আপনার প্রয়োজন নেই এমনটি সরান

git remote rm {insert remote to remove}

0

আপনার নিজস্ব প্রতিশ্রুতি সংঘটিত হওয়ার আগে একটি নির্দিষ্ট প্রতিশ্রুতিতে পুনরায় সেট করা সম্ভব।

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
nothing to commit (working directory clean)

git logস্থানীয় পরিবর্তনগুলি হওয়ার আগে আপনার প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতিটি কী ছিল তা সন্ধান করার জন্য ব্যবহার করুন ।

$ git log
commit 3368e1c5b8a47135a34169c885e8dd5ba01af5bb
...
commit baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e
...

স্থানীয় কমিটগুলি নোট করুন এবং পূর্ববর্তী প্রতিশ্রুতিগুলিতে সরাসরি রিসেট করুন:

git reset --hard baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e

-1

আমার সমস্যা ছিল "এনএন কমিট করে আপনার শাখাটি 'উত্স / মাস্টার' এর আগে। যখন আমি এটির সাথে একটি দূরবর্তী সংগ্রহস্থলের দিকে ঠেলেছি:

git push ssh://git@xxx.repositryhosting.com/yyy/zzz.git

যখন আমি দেখতে পেলাম যে আমার দূরবর্তী ঠিকানাটি .git / FETCH_HEAD ফাইলটিতে ছিল এবং ব্যবহৃত হয়েছিল:

git push

সমস্যা অদৃশ্য হয়ে গেল।

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