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

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

  •  23-09-2019
  •  | 
  •  

سؤال

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

أعرف "تنسيق 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}

هذا يطبق فرعك تغييرات على الفرع ب.

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