คำถามติดแท็ก git

Git เป็น DVCS โอเพนซอร์ส (ระบบควบคุมเวอร์ชันแบบกระจาย)

4
เหตุใด บริษัท การเงิน / ประกันภัยขนาดใหญ่ควรใช้ git และ / หรือ gitub
ฉันทำงานให้กับองค์กรขนาดใหญ่ (พนักงาน 30K) ในอุตสาหกรรมการเงิน / ประกันภัย ในขณะที่ "ไอที" ไม่ใช่สิ่งที่เราให้ความสำคัญ แต่ก็คืออุตสาหกรรมเหล่านี้เป็นอุตสาหกรรมที่ใช้ข้อมูลเป็นหลักและ บริษัท ที่มีความได้เปรียบด้านเทคโนโลยีที่ดีกว่า บริษัท ของฉันมีทีมพัฒนาซอฟต์แวร์มากมาย พวกมันอยู่เหนือแผนที่พร้อมการควบคุมเวอร์ชันใช้ภาษา / กรอบงานเพียงอย่างเดียว บางคนไม่ใช้ (ฉันรู้) บางคนใช้ PVCS บางคนใช้ VSS และใช้ SVN ที่รู้แจ้งมากที่สุด ฉันต้องการนำคอมไพล์มาสู่องค์กรของฉัน โดยเฉพาะฉันต้องการนำ GitHub (ที่เก็บส่วนตัว) ฉันรู้ว่าคนที่เหมาะสมในการพูดคุยเกี่ยวกับเรื่องนี้ แต่ขอให้ซื่อสัตย์อีกครั้งการเคลื่อนไหวที่รุนแรงเช่นนี้มักจะถูกยิงในองค์กรขนาดใหญ่เนื่องจากความกังวลด้านความปลอดภัยที่คลุมเครือหรือความจริงที่ว่าไม่มีคู่แข่งของเราใช้งาน อ้างอิงเฉพาะ jQuery, Ruby on Rails, Facebook และอื่น ๆ เป็นข้อมูลอ้างอิง) ดังนั้นคำถามของฉันคือสิ่งนี้ อะไรคือเหตุผลที่น่าสนใจที่สุดว่าทำไมองค์กรขนาดใหญ่ควรช้าและตั้งใจเปลี่ยนจาก PVCS / VSS / SVN เป็นโซลูชัน git …

2
มันจะดีกว่าที่จะเริ่มคำขอดึงหรือดำเนินการผสานท้องถิ่นกระทำกับต้นแบบ?
ตอนนี้ฉันใช้ GitHub มาระยะหนึ่งแล้วฉันมักจะใช้ฟีเจอร์ - สาขาแล้วก็เริ่มคำขอดึงซึ่งตัวฉันเองรวมเข้าด้วยกัน ฉันพบว่ามันช่วยฉันติดตามว่าฉันรวมสาขาที่ไหน แต่เมื่อเร็ว ๆ นี้ฉันได้อ่านมากขึ้นเกี่ยวกับวิธีการทำงานของ Git และฉันก็ตระหนักว่าฉันสามารถใช้การผสานที่มุ่งมั่นในการอ้างถึงเมื่อฉันรวมสาขา ดังนั้นฉันควรทำอย่างไรเมื่อรวมฟีเจอร์บรานช์เข้ากับมาสเตอร์: ทำการผสานคอมมิชชันบนมาสเตอร์จากนั้นดันต้นน้ำหรือดันสาขาท้องถิ่นและเริ่มคำขอดึง? ฉันได้อ่านIntroducing Pull Requests สำหรับทีม 2 คนแล้วรวมคำขอของฉันเองหรือ และขั้นตอนการทำงานกับ 2 คนในโครงการคืออะไรและฉันควรจะเปิดคำขอดึงจากสาขาใน repo อย่างเป็นทางการหรือทางแยกของฉัน? แต่ดูเหมือนว่าไม่มีใครตอบคำถามที่ฉันต้องการ

2
Git เวิร์กโฟลว์สำหรับหลายทีม
เราจะเริ่มใช้ Git (ยังไม่ได้ใช้) และฉันต้องการกำหนดเวิร์กโฟลว์ เรามี 4 ทีมในสถานที่ต่าง ๆ 4 แห่งทั่วโลกพัฒนาร่วมกันในผลิตภัณฑ์เดียวกัน แต่ละทีมเป็นเจ้าของส่วนหนึ่งของรหัสผลิตภัณฑ์ แต่บางครั้งพวกเขาก็ต้องทำการเปลี่ยนแปลงรหัสที่ทีมอื่นเป็นเจ้าของด้วย มีคำแนะนำสำหรับเวิร์กโฟลว์ Git สำหรับสภาพแวดล้อมดังกล่าวหรือไม่? ฉันได้เห็นบทความนี้แล้ว แต่วิธีการที่นี่คือ "เราสร้างสาขาเพิ่มเติมที่ไม่ค่อยจะเป็นไปได้" และฉันเชื่อในวิธี "สาขาสำหรับเรื่องราวของผู้ใช้แต่ละคน" นอกจากนี้บทความนี้นำเสนอวิธีการที่ดี ฉันมีความคิดว่าจะมีสาขาหลักสาขาถาวรต่อแต่ละทีมรวมเป็นหลักเป็นระยะและสาขาต่อผู้ใช้เรื่องรวมกับสาขาของทีม มันสมเหตุสมผลหรือไม่ทำงาน?

2
ทำความเข้าใจและจดจำพารามิเตอร์ rebase git
จนถึงตอนนี้ส่วนที่สับสนมากที่สุดของการคอมไพล์ก็คือการรีเฟรชไปยังสาขาอื่น โดยเฉพาะมันคืออาร์กิวเมนต์บรรทัดคำสั่งที่สร้างความสับสน ทุกครั้งที่ฉันต้องการ rebase ชิ้นเล็ก ๆ ของกิ่งหนึ่งลงบนปลายอีกอันฉันต้องทบทวนเอกสาร rebit git และใช้เวลาประมาณ 5-10 นาทีเพื่อทำความเข้าใจว่าข้อโต้แย้งหลัก 3 ข้อควรเป็นอย่างไร git rebase <upstream> <branch> --onto <newbase> อะไรคือกฎเกณฑ์ที่ดีที่จะช่วยให้ฉันจดจำว่าพารามิเตอร์ทั้งสามเหล่านี้ควรถูกตั้งค่าไว้อย่างไรเมื่อมีการรีบูตใด ๆ ไปยังสาขาอื่น จำไว้ว่าฉันได้อ่านเอกสาร git-rebase ซ้ำแล้วซ้ำเล่าและอีกครั้งและอีกครั้งและอีกครั้ง (และอีกครั้ง) แต่มันก็ยากที่จะเข้าใจเสมอ (เช่นกระดาษขาววิทยาศาสตร์ที่น่าเบื่อหรือบางอย่าง) ดังนั้น ณ จุดนี้ฉันรู้สึกว่าฉันต้องเกี่ยวข้องกับคนอื่นเพื่อช่วยให้เข้าใจ เป้าหมายของฉันคือฉันไม่ควรตรวจสอบเอกสารประกอบสำหรับพารามิเตอร์พื้นฐานเหล่านี้ ฉันไม่สามารถจดจำพวกเขาได้จนถึงตอนนี้และฉันได้ทำเงินคืนจำนวนหนึ่งแล้ว ดังนั้นมันเป็นบิตแปลกที่ฉันได้รับสามารถที่จะจดจำทุกคำสั่งอื่น ๆ และพารามิเตอร์เพื่อให้ห่างไกล แต่ไม่ rebase --ontoกับ
12 git 

5
Git กระทำไม่เสร็จ แต่ไม่สามารถดำเนินการต่อในเครื่องนั้นได้
บางครั้งฉันพบปัญหาในการมีรหัสที่ไม่มีข้อผูกมัดบนเวิร์กสเตชันที่ไม่พร้อมสำหรับการส่งมอบ แต่ต้องดำเนินการให้เสร็จสิ้นบนเวิร์กสเตชันหรือแล็ปท็อปอื่น ใครบ้างมีวิธีแก้ปัญหานี้เช่น "soft commit" หรือวิธีอื่นในการถ่ายโอนการเปลี่ยนแปลงไปยังเครื่องอื่นเพื่อทำงานกับมันในที่อื่น? ฉันไม่ต้องการถูกบังคับให้ยอมรับและผลักดันการเปลี่ยนแปลงที่ไม่ได้ดำเนินการอย่างเหมาะสม
11 git 

3
ฉันจะเริ่มใช้ Git สำหรับการทำรหัสฐานที่แตกต่างจากเซิร์ฟเวอร์ต่าง ๆ ได้อย่างไร
ความเป็นมา:ฉันเพิ่งรับช่วงโปรเจ็กต์ชุดหนึ่งที่ บริษัท ของฉันและฉันพยายามแยกแยะปัญหาพื้นฐานบางอย่างเกี่ยวกับวิธีการจัดการ กล่าวคือนักพัฒนาก่อนหน้านี้ (ซึ่งไม่ได้อยู่กับ บริษัท อีกต่อไป) ไม่ได้ใช้การควบคุมแหล่งที่มาในรูปแบบใด ๆ ทำเอกสารเพียงเล็กน้อยและไม่มีกระบวนการพัฒนาที่ดีเกิดขึ้นจริง ดังนั้นตอนนี้ฉันมีสามเซิร์ฟเวอร์ที่มีมูลค่าโครงการ (การพัฒนาการจัดเตรียมการผลิต) ซึ่งประกอบด้วยเว็บไซต์และแอพพลิเคชั่นและเครื่องมือส่วนใหญ่ที่สร้างขึ้นสำหรับแอปพลิเคชันบุคคลที่สามและ APIs ที่เราใช้ ความคิดแรกของฉันคือนำสิ่งทั้งหมดนี้เข้าสู่ Git ก่อนที่จะทำการเปลี่ยนแปลงและแก้ไข แต่ฉันมีช่วงเวลาที่ยากลำบากในการหาวิธีที่ดีที่สุดที่จะทำ มีการพัฒนาก่อนหน้านี้จำนวนมากบนเซิร์ฟเวอร์ที่ใช้งานจริงซึ่งสร้างการแบ่งระหว่างรหัสฐานของเซิร์ฟเวอร์แต่ละเครื่อง ไม่ชัดเจนในทันทีที่ความแตกต่างอยู่ - ฉันเห็นการแก้ไขข้อบกพร่องในด้านการผลิตที่ไม่ได้ดำเนินการเกี่ยวกับการพัฒนา / การจัดเตรียมรวมถึงคุณสมบัติใหม่ในการพัฒนาที่ไม่ได้ย้ายไปสู่การจัดเตรียม / การผลิต . คำถาม:วิธีที่ดีที่สุดสำหรับฉันในการจัดระเบียบและย้ายสิ่งเหล่านี้ไปยัง Git คืออะไร? ฉันจะจัดโครงสร้าง repos / สาขาของฉันเพื่อรองรับความแตกต่างในรหัสได้อย่างไร ฉันได้พิจารณาการพัฒนาอย่างต่อเนื่องจากการโคลนรหัสเซิร์ฟเวอร์การผลิตและการรักษาฐานการพัฒนา / การแสดงละครเป็นการอ้างอิงทางประวัติศาสตร์ นี่อาจเป็นจุดเริ่มต้นโดยพิจารณาว่าฉันไม่รู้เกี่ยวกับโค้ด dev / การ staging หรือไม่ ฉันสามารถสร้าง repos ของเซิร์ฟเวอร์ที่ใช้งานจริงสำหรับแต่ละเว็บไซต์เครื่องมือชุดสคริปต์ ฯลฯ สร้างสาขาสำหรับรหัส dev …

3
กลยุทธ์ GitHub สำหรับเก็บไฟล์หนึ่งเวอร์ชันเป็นส่วนตัว
ฉันเป็นอาจารย์ที่เขียนปัญหาการเข้ารหัสสำหรับนักเรียน สิ่งที่ฉันต้องการจะทำคือให้รหัสนักเรียนพร้อมตัวยึดสำหรับฟังก์ชันที่นักเรียนต้องทำให้เสร็จ ฉันจะให้นักเรียนเข้าถึง repo GitHub ส่วนตัวเพื่อโคลนนี้ อย่างไรก็ตามฉันยังต้องการเวอร์ชันของ codebase พร้อมด้วยตัวอย่างโซลูชั่น เห็นได้ชัดว่าฉันไม่ต้องการให้นักเรียนเข้าถึงการแก้ปัญหา (จนกว่างานจะเสร็จสิ้น) ฉันคิดเกี่ยวกับสาขา แต่ AFAIK ฉันไม่สามารถรักษาความเป็นส่วนตัวได้ บางทีฉันอาจแยกโครงการไปสู่ ​​repo ส่วนตัวอื่น แต่ไม่แน่ใจว่าฉันจะเก็บโครงการเป็น snyc ได้อย่างไร (นอกเหนือจากไฟล์ที่มีโซลูชัน) มีเวิร์กโฟลว์สำหรับสถานการณ์นี้หรือไม่
11 git  github 

2
มันผิดไหมถ้าคอมไพล์แรงผลักดันกิ่งไม้?
เมื่อฉันทำงานในสาขาฟีเจอร์ฉันมักจะต้องการล้างคอมมิชชันในสาขาโดยใช้การรีบูตแบบโต้ตอบก่อนที่งานของฉันจะได้รับการตรวจสอบและบูรณาการในสาขาหลัก ในระหว่างการพัฒนาคุณลักษณะฉันต้องการผลักดันงานกลางของฉันไปยังที่เก็บข้อมูลระยะไกลเพื่อเป็นการสำรองข้อมูล เช่นเมื่อฮาร์ดไดรฟ์ล่มฉันไม่ต้องการให้ฟีเจอร์สาขาของฉันหาย อย่างไรก็ตามสิ่งนี้นำไปสู่ความจริงที่ว่าฉันมักจะต้องทำgit push --forceกับที่เก็บระยะไกลหลังจาก rebase การกระทำที่ขมวดคิ้วโดยทั่วไป หรือเป็นหน้า GitHub ที่เชื่อมโยงพูดว่า: เนื่องจากการเปลี่ยนประวัติการกระทำของคุณอาจทำให้ทุกคนยากลำบากในการใช้พื้นที่เก็บข้อมูลจึงถือว่าเป็นการปฏิบัติที่ไม่ถูกต้องในการรีบูตคอมมิทเมื่อคุณส่งไปยังพื้นที่เก็บข้อมูลแล้ว มีนโยบาย (ที่ยอมรับกันโดยทั่วไป) ที่แก้ไขข้อขัดแย้งนี้หรือไม่? ทำไมสิ่งนี้จึงไม่ซ้ำซ้อนกับ git "Golden Rule of Rebasing" จำเป็นหรือไม่ คำถามของฉันที่นี่ถามถึงนโยบายในการแก้ปัญหาความขัดแย้งระหว่างต้องการสำรองข้อมูลงานของคุณในที่เก็บระยะไกลและการรีบูตงานของคุณในขณะที่คำถามอื่นพยายามปฏิเสธว่ามีข้อขัดแย้งและถามว่าทำไมบางคนคิดว่าความขัดแย้งมีอยู่จริง และจึงถามว่าทำไม "สำคัญมาก" ที่จะไม่ผลักดันการแย่งชิงกำลัง
11 git 

6
ในคอมไพล์วิธีการกำหนดเวอร์ชันสำหรับไลบรารีโหลทั้งหมดนั้นทำงานพร้อมกัน
เรากำลังทำโครงการ แต่เราใช้รหัสจำนวนมากระหว่างโครงการและมีห้องสมุดจำนวนมากที่มีรหัสทั่วไปของเรา ในขณะที่เราใช้งานโครงการใหม่เราค้นหาวิธีเพิ่มเติมในการแยกตัวประกอบของรหัสทั่วไปและใส่ลงในไลบรารี ห้องสมุดขึ้นอยู่กับแต่ละอื่น ๆ และโครงการขึ้นอยู่กับห้องสมุด แต่ละโปรเจ็กต์และไลบรารีทั้งหมดที่ใช้ในโปรเจ็กต์นั้นจำเป็นต้องใช้เวอร์ชันเดียวกันกับไลบรารีทั้งหมดที่อ้างถึง ถ้าเราปล่อยชิ้นส่วนของซอฟต์แวร์เราจะต้องแก้ไขข้อบกพร่องและอาจเพิ่มคุณสมบัติใหม่เป็นเวลาหลายปีบางครั้งก็เป็นเวลาหลายทศวรรษ เรามีห้องสมุดประมาณหนึ่งโหลการเปลี่ยนแปลงมักจะถูกตัดข้ามมากกว่าสองรายการและหลายทีมทำงานในหลายโครงการพร้อมกันโดยทำการเปลี่ยนแปลงพร้อมกันกับไลบรารีทั้งหมดเหล่านี้ เมื่อเร็ว ๆ นี้เราได้เปลี่ยนเป็นคอมไพล์และตั้งค่าที่เก็บสำหรับแต่ละไลบรารีและแต่ละโครงการ เราใช้ที่เก็บของเป็นที่เก็บข้อมูลทั่วไปทำสิ่งใหม่ ๆ ในฟีเจอร์สาขาจากนั้นทำการร้องขอการดึงและรวมเข้าด้วยกันหลังจากตรวจสอบแล้ว ปัญหาหลายอย่างที่เราต้องจัดการในโครงการต้องการให้เราทำการเปลี่ยนแปลงในหลาย ๆ ไลบรารีและรหัสเฉพาะของโครงการ สิ่งเหล่านี้มักจะรวมถึงการเปลี่ยนแปลงอินเทอร์เฟซของไลบรารีซึ่งบางอย่างไม่เข้ากัน (ถ้าคุณคิดว่ามันฟังดูแปลก ๆ : เราเชื่อมต่อกับฮาร์ดแวร์และซ่อนฮาร์ดแวร์ที่เฉพาะเจาะจงไว้ข้างหลังอินเตอร์เฟสทั่วไปเกือบทุกครั้งที่เรารวมฮาร์ดแวร์ของผู้ขายรายอื่นที่เราพบในกรณีที่อินเทอร์เฟซปัจจุบันของเราไม่ได้คาดหวัง ตัวอย่างเช่นสมมติว่าโครงการที่P1ใช้ห้องสมุดL1, และL2 ยังใช้และ, และใช้เช่นกัน กราฟการพึ่งพามีลักษณะดังนี้:L3L1L2L3L2L3 <-------L1<--+ P1 <----+ ^ | <-+ | | | | +--L2 | | ^ | | | | +-----L3---+ ตอนนี้คิดคุณลักษณะสำหรับโครงการนี้ต้องมีการเปลี่ยนแปลงในP1และที่เปลี่ยนอินเตอร์เฟซของL3 L3ตอนนี้เพิ่มโปรเจ็กต์P2และP3ลงในแบบผสมซึ่งยังอ้างถึงไลบรารีเหล่านี้ เราไม่สามารถเปลี่ยนทุกสิ่งให้เป็นอินเทอร์เฟซใหม่ทำการทดสอบทั้งหมดและปรับใช้ซอฟต์แวร์ใหม่ …

1
เมื่อทำการแก้ไขเพื่อคอมมิชชันก่อนหน้าฉันควรรีบูทหรือเพิ่มการแก้ไขอัพคอมมิชชันแยกกันหรือไม่?
สถานการณ์ทั่วไปในการพัฒนาซอฟต์แวร์คือการตรวจสอบรหัสของผู้อื่น เครื่องมือทั่วไปสำหรับการทำเช่นนี้คือการเปิดคำขอดึง คำถามของฉันคือเมื่อพบปัญหาในการตรวจสอบการเปลี่ยนแปลงควร จะแยกกัน (กระทำใหม่) หรือควรกระทำการที่มีอยู่ได้รับการแก้ไข (สมมติว่าไม่มีใครแยกจากการกระทำก่อนหน้าของคุณ ... เนื่องจากการเขียนประวัติศาสตร์จากสาขาที่ใช้ร่วมกันเป็นข่าวร้าย) สำหรับสถานการณ์แรกนั้นง่ายต่อการติดตามการเปลี่ยนแปลงที่เพิ่มขึ้นแม้ว่าจะเพิ่มเสียงรบกวนบางอย่างในประวัติการกระทำ ตัวเลือกที่สองมีข้อดีข้อเสีย

2
เวิร์กโฟลว์ Git ที่ดีที่สุดสำหรับการทำงานกับโครงการโอเพ่นซอร์สที่มีการเปลี่ยนแปลงเฉพาะนายจ้างคืออะไร
ที่นายจ้างปัจจุบันของฉันเรากำลังใช้โครงการโอเพ่นซอร์สที่โฮสต์ใน Github เป็นส่วนประกอบของใบสมัครของเรา ฉันได้ทำงานในโครงการนี้เพื่อเพิ่มคุณสมบัติบางอย่างที่เราต้องการและรวมเข้ากับระบบการสร้างของเรา ผู้จัดการของฉันและฉันเห็นด้วยที่เราอยากจะส่งผลงานของเราในส่วนนี้มากพอ ๆ กับที่สมเหตุสมผลกับโครงการโอเพ่นซอร์ส คำถามของฉันคือสิ่งที่เวิร์กโฟลว์ / เทคนิคที่ดีที่สุดคือการรักษา Git ของฉันในแบบที่ฉันสามารถแยกสิ่งต่าง ๆ ที่เหมาะสมเพื่อเพิ่มกลับไปยังโครงการโอเพ่นซอร์ส - แก้ไขข้อผิดพลาดและคุณสมบัติใหม่ที่เพียงพอทั่วไป - จากสิ่งที่เฉพาะเจาะจงกับโครงการของเราเช่นสถานที่สร้างและค่าคงที่แอปพลิเคชัน สิ่งที่ฉันได้ทำไปคือการรักษาสาขา Git ส่วนตัวที่ฉันกระทำการเปลี่ยนแปลงทั้งหมดของฉันด้วยความละเอียดที่เหมาะสม จากนั้นฉันจะใช้cherry-pickเพื่อเพิ่มความมุ่งมั่นแบบโอเพ่นซอร์สที่จะส่งไปยังสาขาหลักและส่งกลับไปที่ Github ดูเหมือนว่าฉันควรใช้การผสานเพื่อทำสิ่งนี้เพื่อที่ฉันจะได้ไม่สร้างการผูกมัดแยกกับเนื้อหาที่เหมือนกัน แต่ฉันไม่แน่ใจว่าจะทำอย่างไรในขณะที่ไม่รวมข้อผูกพันเฉพาะ บริษัท และรักษาเวิร์กโฟลว์ที่เหมาะสม ตัวอย่างเช่นฉันสมมติว่าฉันสามารถกระทำสิ่งที่เปิดแหล่งที่มาบนข้อมูลหลักและสิ่งเฉพาะของ บริษัท ในสาขาส่วนตัวจากนั้นจึงรวมต้นแบบเข้ากับสาขานั้นตามความจำเป็นโดยปล่อยให้สาขาหลักชี้ไปที่การกระทำก่อนที่จะผสาน กระทำสิ่งที่โอเพนซอร์สสามารถทำได้อีกครั้งแล้วรวมอีกครั้ง สิ่งที่น่าแปลกใจเกี่ยวกับขั้นตอนการทำงานนี้คือฉันจะต้องตัดสินใจล่วงหน้าสำหรับทุกสิ่งที่ฉันทำซึ่งเป็นสาขาของมันทำงานในสิ่งที่ดูเหมือนว่าจะแล้วเสร็จจากนั้นจึงส่งและรวมก่อนทำการทดสอบ สิ่งหนึ่งที่ฉันชอบเกี่ยวกับ Git คือความง่ายในการทำสิ่งที่คุณต้องการเพื่อทำให้แอปพลิเคชันของคุณทำงานได้จากนั้นตัดสินใจในภายหลังว่าจะทำอย่างไรกับการเปลี่ยนแปลงของคุณ เท่าที่ฉันสามารถบอกได้ถ้าคุณอยู่ในสาขาและทำงานบางอย่างเสร็จแล้ว ฉันกำลังทำเวิร์กโฟลว์ที่สมเหตุสมผลสำหรับการมีส่วนร่วมในระยะยาวหรือไม่ ใครช่วยแนะนำเวิร์กโฟลว์อื่นที่อาจดีกว่าและทำไมมันถึงดีกว่า
11 git 

1
GitHub องค์กรสำหรับโครงการที่ครอบคลุมหลาย ๆ ที่เก็บ?
ฉันเริ่มต้นโครงการที่เกี่ยวข้องกับที่เก็บอย่างน้อยสามแห่งบน GitHub หนึ่งในที่เก็บเป็นดัมพ์เอกสารประกอบและตัวอย่างทั่วไปและอีกสองรายการมีการนำไปใช้งานของสองโปรแกรมที่เป็นแกนหลักของโครงการ ฉันควรใช้ GitHub Organization เพื่อจัดการการกำหนดค่าดังกล่าวหรือไม่? หรือฉันควรทิ้งทุกอย่างไปยังบัญชีของตัวเองพร้อมกับที่เก็บอื่น ๆ ที่ไม่เกี่ยวข้องทั้งหมดโหล

3
Git เวิร์กโฟลว์สำหรับทีมขนาดเล็ก
ฉันกำลังทำงานกับเวิร์กโฟลว์ git เพื่อนำไปใช้ในทีมเล็ก ๆ แนวคิดหลักในเวิร์กโฟลว์: มีต้นแบบโครงการที่ใช้ร่วมกันที่สมาชิกในทีมทุกคนสามารถเขียนได้ การพัฒนาทั้งหมดจะทำเฉพาะในสาขาคุณลักษณะ สาขาฟีเจอร์คือรหัสที่สมาชิกทีมอื่นตรวจสอบซึ่งไม่ใช่ผู้เขียนสาขา ในที่สุดสาขาคุณลักษณะจะถูกรวมเข้ากับต้นแบบที่ใช้ร่วมกันและรอบจะเริ่มขึ้นอีกครั้ง บทความอธิบายขั้นตอนต่าง ๆ ในวงจรนี้โดยละเอียด: https://github.com/janosgyerik/git-workflows-book/blob/small-team-workflow/chapter05.md สิ่งนี้เหมาะสมหรือฉันขาดอะไรไป?

3
Git มี "โหมดปลอดภัย" เพื่อป้องกันการเขียนประวัติใหม่หรือไม่?
เมื่อคุณสดชื่นกับ Git (และ DVCS โดยทั่วไป) และคุณเริ่มสำรวจการเปลี่ยนแปลงประวัติศาสตร์ - เขียนใหม่คุณจะปลอดภัยถ้าที่เก็บเป็นโลคัลเท่านั้น แต่คุณอาจพบปัญหาหากคุณทำงานกับรีโมทและพยายาม ผลักดันการเปลี่ยนแปลงดังกล่าว คุณลักษณะที่ฉันคาดหวังคือความสามารถในการเปิดใช้งาน "เซฟโหมด" ซึ่งโดยทั่วไปแล้วจะห้ามไม่ให้ฉันทำสิ่งที่ฉันไม่ควรทำ ... และฉันหมายความว่าอย่างไร ฉันหมายถึงการเปลี่ยนแปลงการเขียนประวัติศาสตร์ใหม่สำหรับสิ่งต่าง ๆ ที่ผลักไปที่จุดเริ่มต้นแล้ว ฉันไม่สามารถกำหนดได้อย่างแม่นยำ แต่อาจรวมถึงกรณีเช่น: commit --amend เมื่อ HEAD ถูกผลักไปแล้ว rebase ของสาขาที่ไม่ใช่ในท้องถิ่น reset ของสาขาที่ถูกผลัก เหล่านี้เป็นตัวอย่างของสถานการณ์ที่อาจทำให้เกิดความpushล้มเหลวครั้งต่อไป(เพราะจะไม่ส่งต่ออย่างรวดเร็ว IIRC) ฉันทำสิ่งนั้นโดยบังเอิญและต้องสร้างสาขาขึ้นใหม่จากระยะไกล และฉันก็ยังโชคดีที่ทำสิ่งนี้เร็วพอจนไม่มีใครดึงประวัติที่ฉันเขียนใหม่ ฉันเชื่อว่าเป็นไปได้ที่จะระบุการเปลี่ยนแปลงประเภทนี้และป้องกันไม่ให้ผู้ใช้ทำการเปลี่ยนแปลงตามความต้องการ อาจมีตัวเลือกสำหรับสิ่งนั้นหรือไม่? หากไม่มีคุณคิดว่ามันคุ้มค่าที่จะลองสร้างมันหรือไม่? คุณจะพยายามกำหนดวิธีการระบุ "การเปลี่ยนแปลงที่เป็นอันตราย" อย่างแม่นยำหรือไม่?
11 git  dvcs 

3
เวิร์กโฟลว์ GIT ผู้พัฒนาเดี่ยว (ย้ายจาก FTP ตรงไปตรงมา)
ฉันกำลังพยายามตัดสินใจว่าการย้ายไปที่ VCS นั้นสมเหตุสมผลหรือไม่สำหรับฉัน ฉันเป็นผู้พัฒนาเว็บไซต์เดียวในองค์กรขนาดเล็ก (5 คน) ฉันกำลังคิดถึง VCS (Git) ด้วยเหตุผลเหล่านี้: การควบคุมเวอร์ชันการสำรองนอกสถานที่การเก็บรหัสส่วนกลาง (สามารถเข้าถึงได้จากที่บ้าน) ในขณะนี้ฉันทำงานบนเซิร์ฟเวอร์ที่ใช้งานจริงโดยทั่วไป ฉัน FTP เข้าทำการแก้ไขและบันทึกจากนั้นอัปโหลดและรีเฟรช โดยปกติแล้วการแก้ไขจะเป็นไฟล์ธีม / ปลั๊กอินสำหรับ CMSes (เช่น concrete5 หรือ Wordpress) ใช้งานได้ดี แต่ไม่มีการสำรองข้อมูลและไม่มีการควบคุมเวอร์ชัน ฉันสงสัยว่าวิธีที่ดีที่สุดในการรวม VCS เข้ากับกระบวนการนี้ ฉันจะมองเห็นการตั้งค่าเซิร์ฟเวอร์ Git บนเว็บเซิร์ฟเวอร์ของ บริษัท แต่ฉันไม่ชัดเจนว่าจะผลักดันการเปลี่ยนแปลงไปยังบัญชีลูกค้า (ปกติ VPSes บนเซิร์ฟเวอร์เดียวกัน) - ตอนนี้ฉันเพียงเข้าสู่ SFTP ด้วยรายละเอียดและสร้าง การเปลี่ยนแปลงโดยตรง ฉันยังไม่แน่ใจว่าอะไรเป็นตัวแทนพื้นที่เก็บข้อมูลอย่างสมเหตุสมผล - เว็บไซต์ของลูกค้าแต่ละรายจะได้รับพื้นที่เก็บข้อมูลของตนเองหรือไม่ ข้อมูลเชิงลึกหรือประสบการณ์ใด ๆ จะเป็นประโยชน์จริงๆ ฉันไม่คิดว่าฉันต้องการพลังเต็มที่ของ Git …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.