قم بتمييز ملف مرحلي مع ملف مخبأ
سؤال
هل يوجد خيار --staged (المعروف أيضًا باسم --cached) لمقارنة الملفات من مخبأ git؟
أقوم هنا بمقارنة الالتزام الأحدث مع ملف مرحلي (أستخدم صياغة @{} الصريحة، ولكني أعلم أنه يمكن استنتاج @{0}):
git diff stash@{0}:spec/blueprints.rb HEAD:spec/blueprints.rb
وهنا أقوم بمقارنة الملف المخبأ مع ما هو موجود على القرص:
git diff stash@{0}:spec/blueprints.rb spec/blueprints.rb
كيف يمكنني مقارنة ما تم تنظيمه حاليًا مع ما هو موجود في المخبأ؟هذا لا يعمل:
git diff --staged stash@{0}:spec/blueprints.rb spec/blueprints.rb
المحلول
git diff --cached 'stash@{0}' -- spec/blueprints.rb
...من الممكن ألا تكون هناك حاجة إلى عروض الأسعار، لكنك لا تعرف أبدًا كيف يمكن أن تفاجئك قوقعتك.
نصائح أخرى
:<n>:<path>, e.g. :0:README, :README
تقوم النقطتان، متبوعتين اختياريًا برقم المرحلة (0 إلى 3) والنقطتين، متبوعتين بمسار، بتسمية كائن ثنائي كبير الحجم في الفهرس في المسار المحدد.رقم المرحلة المفقود (والنقطتان اللتان تتبعانه) يسميان إدخال المرحلة 0.أثناء الدمج، تكون المرحلة 1 هي السلف المشترك، والمرحلة 2 هي إصدار الفرع المستهدف (عادةً الفرع الحالي)، والمرحلة 3 هي الإصدار من الفرع الذي يتم دمجه.