গিটহাবে কীভাবে "আরম্ভ" করবেন?


14

আমি আমার প্রকল্পের সম্পূর্ণ পুনর্লিখনের পরিকল্পনা করছি, অন্য ফ্রেমওয়ার্ক ব্যবহার করে ইত্যাদি history ইতিহাস সহ পুরানো কোডটি উল্লেখ করা ভাল। ঝুঁকি, বিভ্রান্তি এবং আশ্চর্য এড়াতে এটি করার সর্বোত্তম উপায় কী?

আমার ধারণাটি হ'ল একটি নতুন শাখা তৈরি করা, সেখানে সমস্ত কিছু প্রতিস্থাপন করা এবং সেখানে চলমান একটি প্রাথমিক "নতুন" সংস্করণ পাওয়া, শেষ "পুরানো" মাস্টারকে ট্যাগ করা, এবং তার পরে শাখাকে মাস্টারের সাথে মার্জ করা। এই শব্দটি কি যুক্তিসঙ্গত?


18
এই প্রশ্নটি গিথুবকে নিয়ে নয়, গিতকে নিয়ে দেখা যাচ্ছে।
ব্যবহারকারী 253751

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

2
একটি নতুন ভান্ডার তৈরি করুন।
কোডইনোম

উত্তর:


15

আমি সবকিছু একক ভাণ্ডারে রাখার পক্ষে ভোট দিই।

আমি করতাম:

  1. আপনার পুরানো কোডটি দেখানোর জন্য একটি নতুন শাখা তৈরি করুন
  2. সমস্ত কোড মুছুন এবং মাস্টার প্রতিশ্রুতিবদ্ধ
  3. মাস্টারে আপনার পুনর্লিখন শুরু করুন।

এই হল কিভাবে:

# checkout the master branch
git checkout master

# create a new branch so you can find the old code easily
git branch oldStuff-KeepingForReference

# push the branch to github
git push origin oldStuff-KeepingForReference

# You currently have the master branch checked out
# so now cd to the project root and start your rewrite: 
cd <your project root>
rm -rf *

# Create a commit of the delete
git add --all *
git commit -m "Fresh start"

# Start your rewrite
echo "Some changes" > file.txt
git add file.txt
git commit -m "This is the first commit of the rewrite"

অন্যদিকে: আপনি যদি পুরানো লিগ্যাসি কোডের একটি ট্যাগও বানাতে পারেন, আপনি যদি জানেন তবে আপনি এটিতে কোনও কমিট যুক্ত করতে চান না।

এটি করার পরিবর্তে আপনার যখন একটি নতুন সংগ্রহশালা তৈরি করা উচিত:

  • আপনার বর্তমান রেপো যখন নিষেধাজ্ঞামূলকভাবে বড় এবং রেপো ক্লোনিং ধীর হয়। আপনি একটি নতুন রেপো ব্যবহার বিবেচনা করতে পারেন।

8

পুনর্লিখন এবং historicalতিহাসিক শাখাগুলিকে একীভূত করার জন্য চাপ দেওয়ার কারণ না থাকলে আমি সেগুলি আলাদা রাখতাম keep পুরানো কোড রাখতে একটি নতুন শাখা তৈরি করুন, আপনার পুনর্লিখনটি মাস্টারে করুন এবং সেভাবে তাদের আলাদা করুন। পরিস্থিতি পরিবর্তন হলে আপনি সর্বদা পুরানো কাঠামো / প্রয়োগের সাথে কাজ করতে পারেন।


3

এতিম শাখাগুলি এটাই।

git branch -m master new_branch       #rename the branch
git push origin new_branch:new_branch #push the old code
git push origin :master               #delete the origin/master branch containing the old code
git checkout --orphan master          #create a new orphane branch - master. The first commit made on this new branch will have no parents and it will be the root of a new history totally disconnected from all the other branches and commits.

echo foo > file.txt
git add file.txt
git commit -m 'init commit'
git push origin master

আপনাকে গিথুবতে অস্থায়ীভাবে ডিফল্ট শাখা সেট করতেnew_branch হবে কারণ এটি ডিফল্টরূপে মাস্টারটি প্রদর্শন করে।


2

আপনি বর্তমান প্রকল্পে একটি নতুন শাখা তৈরি করতে পারেন, তবে আপনার সংগ্রহস্থলটিকে ব্যক্তিগত হিসাবে চিহ্নিত করা ভাল তবে আপনার নতুন কোডের জন্য একটি নতুন তৈরি করা ভাল, আপনার এখনও সেই পুরাতন সংগ্রহস্থল থাকলেও অপ্রচলিত কাজ থেকে কোনও ফোঁটা নেই।

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

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