سؤال

أفترض أنه يسمح بنقل التغييرات من فرع إلى آخر ولكن هذا هو الغرض من الانتقاء، وإذا لم تكن ملتزمًا بتغييراتك، فربما لا ينبغي عليك نقلها؟

لقد قمت في بعض الأحيان بتطبيق المخبأ الخاطئ في الفرع الخطأ، مما جعلني أتساءل عن هذا السؤال.

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

المحلول

كما ذكرنا سابقًا، إذا كنت تريد "مخبأ لكل فرع"، فأنت تريد حقًا فرعًا جديدًا ينفصل عن الفرع الحالي.

أيضًا، بالإضافة إلى الحقيقة المذكورة بالفعل وهي أن المخبأ يسمح لك بالسحب إلى الفرع الذي تعمل عليه، فإنه يسمح لك أيضًا يُحوّل الفروع قبل أن ترتكب كل شيء.وهذا مفيد ليس في قطف الكرز بالمعنى المعتاد بقدر ما هو مفيد في قطف الكرز نسخة العمل الخاصة بك.

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

يتيح لي هذا التعمق في وضع البرمجة عندما أعمل، ولا أقلق بشأن إدارة المكتبة المناسبة للتعليمات البرمجية الخاصة بي.وبعد ذلك، عندما آخذ استراحة ذهنية، يمكنني العودة وفرز تغييراتي بعناية في جميع الرفوف الصحيحة.

إذا لم يكن المخبأ عالميًا، فسيكون تنفيذ هذا النوع من سير العمل أكثر صعوبة.

نصائح أخرى

اعتبارًا من Git 1.6، يمكنك الآن تطبيق التخفيات على الفروع باستخدام

git stash branch name_of_new_branch

سيقوم Git بإنشاء الفرع الجديد لك، والتحقق من ذلك!لمزيد من المعلومات، راجع

أعتقد أنه يمكنك تحريك المخابئ باستخدام

git stash branch <branch | new_branch> [<stash>]

وللاطلاع على قائمة بمخابئك، استخدم

git stash list

مرجع

إذا كنت تريد "مخبأ" يتم تشغيله من فرع، فافعل شيئًا كهذا لتخزين تغييراتك على فرع جديد خارج فرعك الحالي.

git checkout -b new_stash
git commit -a -m "stashed changes"

للتراجع عن المخبأ

git reset HEAD^
git branch -d new_stash

يعد git stash مفيدًا بشكل خاص لأنه يمكنك سحب التغييرات إلى شجرة قذرة، على سبيل المثال.إذا كان لديك تعديلات رائعة وتريد القيام بها

git pull

ولا يمكنك ذلك، يمكنك تخزين التغييرات وسحبها ثم تطبيقها

git stash
git pull
git stash apply
git stash clear

نأمل أن يكون هذا ساعد!

يعد git-stash مفيدًا للغاية بالنسبة لي لنقل التغييرات التي لم يتم تسجيل الوصول إليها بعد إلى فرع مختلف عن الفرع الذي تم سحبه حاليًا.

على سبيل المثال - غالبًا ما أجد نفسي أقوم بإجراء تغييرات بسيطة على فرع إصلاح الأخطاء؛فقط لأجد أن التغيير الذي أعمل عليه أكثر تعقيدًا مما توقعت في البداية.يعد Git-stash أسهل طريقة لنقل مجموعة التغييرات هذه إلى فرع مختلف.

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