كيف يمكنني تنسيق التصحيح مع ما أخبئه بعيدًا
سؤال
في غيت ، أخبأت التغييرات الخاصة بي. هل من الممكن أن أتمكن من إنشاء تصحيح مع ما أخبئه بعيدًا؟ وتطبيق هذا التصحيح في بعض المستودعات الأخرى (زميلي في العمل)؟
أعرف "تنسيق git -patch -1" ولكني أعتقد أن هذا هو لما ارتكبته. لكني أبحث عن نفس الشيء للتغييرات التي خبأتها؟
وكيف يمكنني تطبيق تصحيح في مستودع آخر؟
المحلول
بالتأكيد، git stash show
يدعم هذا:
git stash show -p
نصائح أخرى
توفر هذه الإجابة معلومات حول حفظ التصحيح وتطبيقها حيث تريد استخدامها.
لخداع الإخراج في ملف:
git stash show -p --color=never > my-patch-name.patch
التحقق من التصحيح يبدو جيدا:
git apply --stat my-patch-name.patch
تحقق من عدم وجود أخطاء:
git apply --check my-patch-name.patch
ضع التصحيح
git apply my-patch-name.patch
يستخدم
$> git stash list
stash@{0}: WIP on master: 84fx31c Merged with change to /public/
stash@{1}: WIP on master: 463yf85 FlupResource: also takes json as a query parameter
للحصول على قائمة بأشياءك المخبأة مؤخرًا. GIT في الواقع يخلق كائنات الالتزام عندما تخبئ.
هم الالتزامات مثل كل شيء آخر. يمكنك التحقق منها في فرع:
$> git checkout -b with_stash stash@{0}
يمكنك بعد ذلك نشر هذا الفرع ويمكنك أن تندمج أو اختيار الكرز الذي يرتكب.
أعلاه الحلول لن تعمل للبيانات الثنائية. إضافة الدعم التالي له:
git stash show stash@{0} -p --binary
تعديل
ملاحظة: أردت فقط إضافة تعليق إلى الردود أعلاه ولكن سمعتي ليست كافية.
أعتقد أن هذا قد يكون واحداً من udpates من GIT مؤخرًا. لم يعد عليك تصحيح التغييرات التي خبأتها بعد الآن. يمكنك فقط تطبيق التغييرات المخبأة على فرع لآخر.
قل في الفرع أ أنك قد خبأت بعض التغييرات ، ويشار إليها باسم@{1}.
يمكنك الآن التبديل إلى الفرع ب. يمكنك فقط القيام به:
$git stash apply stash@{1}
هذا يطبق فرعك تغييرات على الفرع ب.