ฉันมีที่เก็บ Git ซึ่งรหัสทั้งหมดของฉันอยู่ในสาขาหลักและก่อนหน้านี้ฉันไม่สนใจไฟล์ Drupal ทั้งหมดดังนั้นฉันจึงแยกการแยกระหว่างรหัสที่ฉันเขียนไว้อย่างเข้มงวด (หรือปรับเปลี่ยนหรืออาจแก้ไข) และรหัส ที่สามารถสร้างขึ้นด้วย Drush หรืออะไรก็ตาม
นี่เป็นกลยุทธ์ที่ดีจนกระทั่งฉันต้องอัพเกรด Drupal ฉันรู้ว่าฉันต้องการที่จะย้อนกลับไปถ้าสิ่งต่าง ๆ แย่ลงและมีเครื่องมืออะไรที่ดีกว่าการใช้ Git ในการทำเช่นนั้น ฉันคิดกับตัวเองว่านี่จะเป็นสถานการณ์ที่สมบูรณ์แบบสำหรับฟีเจอร์สาขาดังนั้นฉันจึงสร้างdrupal-7.14
สาขาขึ้นมาเอง.gitignore
เพื่อที่จะเพิกเฉยต่อโค้ดและไฟล์การตั้งค่าทั้งหมดและให้ความสนใจกับไฟล์ที่เป็นส่วนหนึ่งของการติดตั้ง Drupal เท่านั้น อย่าแตะต้อง ฉันทำการอัปเกรดด้วยมือ (ดาวน์โหลด, คลายซิป, ไม่คัดลอก, คัดลอก), เรียงลำดับตามกรณีแนวเขตเช่น robots.txt และ. htaccess และเขียนทับ. gitignore ของ Drupal ด้วยตัวเอง ฉันแก้ไขการตั้งค่าบางอย่างที่ทำงานกับ 7.14 แต่ไม่ใช่กับ 7.15 เพื่อกู้คืนจากข้อผิดพลาด 500 และทุกอย่างก็ดูสมบูรณ์แบบ ฉันเปลี่ยนชื่อสาขาเป็นdrupal-7.15
และกำลังจะไปอย่างมีความสุขในแบบของฉัน
จนกว่าฉันจะรู้ว่าสิ่งที่ฉันทำโดยไม่ได้ตั้งใจ: ไฟล์ที่ก่อนหน้านี้ไม่ได้ติดตามโดยสาขาหลักของฉัน แต่ทิ้งไว้ในไดเรกทอรีการทำงานตอนนี้ถูกลบออกจากไดเรกทอรีการทำงานตอนที่ฉันเช็คเอาท์หลักเพราะพวกเขาไม่ใช่ไฟล์ที่ไม่ได้ติดตามอีกต่อไป! D'โอ้!
ถ้าฉันรวมdrupal-7.15
สาขากับอาจารย์ฉันจะเสียการแยกรหัส
อาจมีวิธีในการแปลงสาขาเป็น submodule สมมติว่าเป็นไปได้นั่นอาจเป็นกลยุทธ์ที่ดีที่สุด ฉันรู้ว่าก่อนหน้านี้ฉันทำสิ่งนี้ว่า submodules เป็นทางออกที่ "ถูกต้อง" แต่เนื่องจากฉันไม่ได้ตระหนักถึงผลข้างเคียงของการใช้กิ่งไม้สำหรับไฟล์ที่ไม่ได้ติดตามก่อนหน้านี้ฉันจึงตัดสินใจที่จะตัดมุม (นอกจากนี้วิธีการทั้งหมดที่ฉันเคยเห็นในการใช้ submodules กับ Drupal ถือว่าคุณกำลังเริ่มโครงการใหม่และ Drupal จะเป็นสาขาหลักมันไม่เป็นที่พึงปรารถนาสำหรับฉันที่จะทำให้รหัสของคนอื่นเป็นสาขาหลักและฉันมีอยู่แล้ว repo ที่มีสาขาหลักดูเหมือนว่ามันจะซับซ้อนโดยไม่จำเป็นเพียงแค่ทำการอัพเกรด)
อาจมีวิธีแก้ปัญหาอื่นที่ฉันไม่ได้คิด
ฉันจะกู้คืนจากสิ่งนี้ได้ดีที่สุดด้วยข้อเสียที่น้อยที่สุดที่เป็นไปได้อย่างไร
UPDATE : นี่เป็นการพัฒนา (ใน Linux VM บนแล็ปท็อปของฉัน) และยังไม่ได้เริ่มผลิต ตามเวลาที่เราไปผลิตฉันวางแผนที่จะรวบรวมทุกสิ่งไว้ในโมดูลคุณลักษณะ แต่ยังไม่เกิดขึ้น
ปรับปรุง 2 : โมดูลย่อยอาจไม่ทำงาน ตาม Git Pro "Submodules อนุญาตให้คุณเก็บ Git repository เป็นไดเรกทอรีย่อยของ Git repository อื่น" Drupal ไม่มีการแยกที่ดีนัก แทนที่จะเป็นรหัส Drupal ทั้งหมดที่อยู่ในไดเรกทอรีย่อยความสัมพันธ์นั้นมีการย้อนกลับไม่มากก็น้อย แต่ก็ยังไม่มีการแยกที่ชัดเจนเนื่องจากคุณอาจแก้ไข. htaccess และ robots.txt ของคุณดังนั้นรหัสของคุณและ repup Drupal จึงผสมกัน ฉันมองหาวิธีแก้ปัญหาเพื่อแก้ไขปัญหานี้