ما هي أفضل طريقة لتغيير شجرة العمل إلى التزام معين قبل الشرعة؟

StackOverflow https://stackoverflow.com/questions/2096561

  •  21-09-2019
  •  | 
  •  

سؤال

سير العمل المعتاد عند بدء ملف git bisect الجلسة هي:

git bisect start          # start a bisect session
git bisect bad            # I noticed that the current state is broken

الآن ، غالبًا ما أعلم أن الأمور نجحت في الماضي ، لكنني لا أعرف بعد أي الإصدار كان جيدًا ، لذلك أرغب عادةً أستطيع أن أميز مع git bisect good.

ما هي أفضل طريقة للقيام بخطوة "إعادة شجرة العمل إلى حالة قديمة"؟ git reset --hard <some_good_rev>? git checkout <some_good_rev>؟ شيء آخر؟ يرجى تبرير إجابتك.

هل كانت مفيدة؟

المحلول

عادة لا أعرف أين هو القس الجيد ، لذلك يجب أن أجدها. خمن إلى أي مدى قد تكون جيدة. دعنا نقول ، 32 درس. بدءًا من طرف الفرع ، ومع الدلائل العاملة النظيفة:

$ git checkout HEAD~32

قم بإجراء الاختبار. إذا كان ذلك بمثابة قس جيد ، فابدأ في الشرعة. إذا لم يكن الأمر كذلك ، فابتعد عن المزيد:

$ git checkout HEAD~32

شطف ، رغوة ، كرر.

لماذا "Git Checkout؟" نظرًا لأن "إعادة تعيين GIT" ستتغير التي تلتزم الفرع بأنها "نصيحة" ، لكن Git Checkout لن يفعل ذلك.

نصائح أخرى

إذا كنت لا تعرف على وجه اليقين أي إصدار حيث عملت الوظيفة (الالتزام الذي قدم الوظيفة؟) ، يبدو أنك تفقد الكثير (كل شيء؟) لصالح Bisect. إذا كنت تعلم أنه كان هناك ملزمة واحدة على الأقل حيث تعمل الوظيفة ، حتى لو لم يكن بالضرورة أحدث الالتزام حيث تعمل الوظيفة ، فقط قم بالعلامة على أنها جيدة. خلاف ذلك ، فأنت تقوم بشكل أساسي بتقسيم نفسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top