সমস্ত কমিটস সরানোর জন্য কীভাবে একটি রিমোট গিট সংগ্রহস্থল পুনরায় সেট করবেন?


164

সমস্ত কমিটগুলি সরানোর জন্য আমি কীভাবে একটি দূরবর্তী এবং স্থানীয় গিট সংগ্রহস্থল পুনরায় সেট করতে পারি?

আমি প্রাথমিক প্রতিশ্রুতি হিসাবে বর্তমান প্রধানের সাথে নতুন করে শুরু করতে চাই।


সম্পর্কিত: stackoverflow.com/questions/495345/...
miku

আমি চেরি বাছাই বা অন্য কিছু করতে চাই না, আমি কেবল সমস্ত পরিবর্তনগুলি সরিয়ে এবং পাবলিক রেপোও পুনরায় সেট করতে চাই। আমি যেমন নতুন গিট ব্যবহারকারী, আমি কিছু ভুল কমিট করেছি। .GIT ডিরেক্টরি সরানো কোনও বিকল্প নয় কারণ সেখানে সরকারী সংগ্রহস্থলও রয়েছে।
প্রিয়ঙ্ক বলিয়া

আপনি একটি জোর ধাক্কাও করতে পারেন, সুতরাং .git dir অপসারণ করা আসলে একটি বিকল্প।
লিলিথ নদী

2
কেবল নিটপিকিং, তবে "রিভিশন" একটি এসএনএন পরিভাষা এবং গাছের আকারের ইতিহাসে তেমন কোনও অর্থ দেয় না।
তামাস সেজেলি

2
@ ট্যামসজেল্লি "রিভিশন" "কমিট" এর পুরোপুরি গ্রহণযোগ্য প্রতিশব্দ। এটি প্রো গিট বইতে (যেমন এখানে ) এবং গিট ম্যান পৃষ্ঠাগুলিতে উভয়ই ব্যবহৃত হয় ।
jub0bs

উত্তর:


348

সম্পূর্ণ রিসেট?

  1. .gitস্থানীয়ভাবে ডিরেক্টরি মুছুন ।

  2. গিট রিপোস্টরি পুনরুদ্ধার করুন:

    $ cd (project-directory)
    $ git init
    $ (add some files)
    $ git add .
    $ git commit -m 'Initial commit'
    
  3. ওভাররাইটিং, রিমোট সার্ভারে পুশ করুন। মনে রাখবেন আপনি এই কাজটি করে অন্য সবাইকে জড়িয়ে যাচ্ছেন… আপনি একমাত্র ক্লায়েন্ট হতে পারেন।

    $ git remote add origin <url>
    $ git push --force --set-upstream origin master
    

1
কিন্তু কমিটগুলি শেষ হয়ে গেছে, এবং সংগ্রহস্থলটি পুনরায় সেট করা হয়েছে। ফাইল নামগুলির সামনে আমরা কি পূর্ববর্তী বার্তাগুলি মুছে ফেলতে পারি?
প্রিয়ঙ্ক বলিয়া

2
সরাসরি গিটহাবের রিমোট রিপোজিটারি সরান এবং সেখানে এটি পুনরায় তৈরি করুন।
বোম্বে

1
গিট পুশ-ফোর্সের পরিবর্তে গিট পুশ
উইলিয়াম নটোভিডাগডো

6
আপনি যদি আপনার "প্রাথমিক প্রতিশ্রুতি" তে কোনও ফাইল প্রতিশ্রুতিবদ্ধ না করতে চান তবে আপনি কেবল কোনও ফাইল যুক্ত করতে পারবেন না এবং --allow-emptyএর শেষে পতাকাটি যুক্ত করতে পারবেন না git commit -m 'Initial commit'
রাফ

2
গিট ২.৩.২ ব্যবহার করে, আমাকে ব্যবহার করতে git push --force --set-upstream origin masterহয়েছিল তবে বাকী সমস্ত বর্ণিত হিসাবে কাজ করছিল
সাবাস্তিয়ান স্টোরম্যাকক

6

প্রথমে, একক প্রতিশ্রুতিতে সমস্ত কিছু স্কোয়াশের জন্য এই প্রশ্নের নির্দেশাবলী অনুসরণ করুন । তারপরে রিমোটে জোর করে চাপ দিন:

$ git push origin +master

এবং allyচ্ছিকভাবে স্থানীয়ভাবে এবং দূরবর্তীভাবে সমস্ত অন্যান্য শাখা মুছুন:

$ git push origin :<branch>
$ git branch -d <branch>

0

আপনি কি আমি এই জাতীয় কিছু করতে হবে:

কিছু করার আগে দয়া করে একটি অনুলিপি রাখুন (দুঃখিতের চেয়ে ভাল নিরাপদ)

git checkout master
git checkout -b temp 
git reset --hard <sha-1 of your first commit> 
git add .
git commit -m 'Squash all commits in single one'
git push origin temp

এটি করার পরে আপনি অন্যান্য শাখা মুছতে পারেন।

ফলাফল: আপনার কেবলমাত্র 2 টি কমিটের সাথে একটি শাখা থাকবে।

ব্যবহার করুন git log --onelineএকটি minimalistic উপায়ে আপনার করে দেখতে এবং করে জন্য রয়েছে SHA-1 এটি!

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