แม้ว่านี่จะเป็นคำถามเก่าที่มีคำตอบที่ยอมรับ แต่ฉันเชื่อว่ายังมีที่ว่างสำหรับอีกคำถามหนึ่ง
ก่อนอื่นให้ฉันบอกล่วงหน้าว่าฉันไม่คิดว่าคุณสมบัติเป็นเครื่องมือที่เหมาะสมสำหรับงานนี้และจะเสนอเครื่องมือชุดอื่น
สิ่งที่จำเป็นต้องมีสำหรับการทำงานร่วมกันของทีมคือการจัดเตรียมเซิร์ฟเวอร์ทดสอบสำหรับการทดสอบเวอร์ชันการพัฒนาของโครงการที่แยกจากเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ รหัส devlopment ทั้งหมดได้รับการทดสอบที่เซิร์ฟเวอร์ staging และส่งไปยังเซิร์ฟเวอร์ที่ใช้งานจริงเมื่อมั่นคงและพร้อมสำหรับการปรับใช้เท่านั้น อย่างไรก็ตามนักพัฒนาซอฟต์แวร์ไม่สามารถทำงานได้ที่เซิร์ฟเวอร์ชั่วคราว นักพัฒนาซอฟต์แวร์แต่ละคนทำงานที่เวิร์กสเตชันของตนเองโดยใช้การควบคุมการแก้ไขและการจัดการซอร์สโค้ด (SCM) เพื่อประสานงานของเขาหรือเธอกับส่วนที่เหลือของทีม
ระบบ SCM ช่วยให้สมาชิกในทีมทำงานในแบบคู่ขนานในสาขาที่แตกต่างกันของรหัสโดยไม่รบกวนซึ่งกันและกัน เฉพาะสาขาหลักเท่านั้นที่ปรับใช้บนเซิร์ฟเวอร์ staging เพื่อการทดสอบ
ในการทำมิเรอร์ฐานข้อมูลระหว่างการผลิตการจัดเตรียมและเวิร์กสเตชันมีโมดูลชื่อการสำรองข้อมูลและการย้ายข้อมูลที่สามารถใช้หากคุณใช้โฮสติ้งที่ใช้ร่วมกันและไม่จัดการฐานข้อมูลของคุณเอง หากคุณจัดการเซิร์ฟเวอร์ฐานข้อมูลของคุณเองนี่เป็นโครงการเดียวในเซิร์ฟเวอร์นั้นและคุณใช้mysqlคำสั่งคู่ต่อไปนี้มีประโยชน์:
ในการถ่ายโอนข้อมูล:
mysqldump --all-databases --opt -u root -p > DUMP.sql
ในการกู้คืน:
mysql -u root -p < DUMP.sql
หากคุณไม่ได้เป็นเพียงฐานข้อมูลในเซิร์ฟเวอร์นั้นให้สคริปต์บางเวอร์ชันmysqldump
(หรือเทียบเท่าหากคุณไม่ได้ใช้mysql ) ที่ทิ้งฐานข้อมูลของคุณเท่านั้น
กำหนดนโยบายว่าเป็นฐานข้อมูลบนเซิร์ฟเวอร์ที่ใช้งานจริง เซิร์ฟเวอร์ staging และเวิร์กสเตชันควรเป็นสำเนาของฐานข้อมูลการผลิตไม่ใช่ในทางกลับกัน
โปรดทราบว่า Drupal 7 เก็บการตั้งค่าผู้ดูแลระบบทั้งหมดไว้ในฐานข้อมูล ซึ่งหมายความว่ามิเรอร์ฐานข้อมูลระหว่างเว็บไซต์การผลิต, การแสดงละครเว็บไซต์และเวิร์กสเตชันจะโยกย้ายการตั้งค่าโดยไม่ต้อง admim คุณสมบัติ
ตอนนี้สำหรับการแบ่งปันรหัส:
วิธีมาตรฐานในการแชร์รหัสระหว่างสมาชิกของทีมพัฒนาคือการใช้ระบบ SCM Drupal เกิดขึ้นจะเริ่มต้นได้รับการจัดการกับระบบเช่นชื่อคอมไพล์
Gitอนุญาตให้ใช้ที่เก็บข้อมูลโลคัลหรือรีโมต หากสมาชิกทีมอยู่ในพื้นที่ทางกายภาพเดียวกันคุณสามารถตั้งค่าที่เก็บในเครื่องบนเซิร์ฟเวอร์จัดเตรียมของคุณ หากพวกเขากระจายทางภูมิศาสตร์คุณสามารถตั้งค่าที่เก็บระยะไกล หากคุณไม่รังเกียจผู้อื่นที่อ่านรหัสของคุณภายใต้การพัฒนาคุณสามารถใช้Sandboxที่ Drupal.org เป็นที่เก็บข้อมูลระยะไกล นอกจากนี้คุณยังสามารถใช้พื้นที่โครงการบนGitHub GitHubไม่ได้เป็นเพียงแค่ที่เก็บข้อมูล แต่มาพร้อมกับเครื่องมือบางอย่างสำหรับการทำงานร่วมกันและอนุญาตให้ทั้งที่เก็บข้อมูลสาธารณะและส่วนตัว
โดยทั่วไประบบ SCM อนุญาตให้สมาชิกในทีมดึงซอร์สโค้ดและเอกสารประกอบจาก respository ที่สมาชิกทีมแบ่งปันและผลักดันมันกลับมาอีกครั้งหลังจากทำงานเสร็จแล้ว SCM ติดตามการเปลี่ยนแปลงและหากมีข้อขัดแย้ง (เช่นมีคนพยายามกดรหัสที่ไม่มีการเปลี่ยนแปลงที่สมาชิกคนอื่นในทีมมุ่งมั่น) มันจะบอกคุณและแนะนำวิธีการแก้ไขข้อขัดแย้งนี้
โดยปกติด้วยการสื่อสารอย่างจริงใจเกี่ยวกับวิธีแบ่งงานระหว่างสมาชิกในทีมจะไม่มีข้อขัดแย้ง แต่ด้วยระบบ SCM ที่ติดตามสิ่งต่าง ๆ ความขัดแย้งสามารถจัดการได้แม้ว่าจะมีข้อผิดพลาดเกิดขึ้นหรือการสื่อสารล้มเหลว
มีบทเรียนมากมายเกี่ยวกับการเริ่มต้นใช้งานและการใช้git (GIYF) สองฉันจะแนะนำคือ: เว็บไซต์git-scmและPro Gitโดย Scott Chacon