ข้อแตกต่างระหว่าง Commit, Commit และ Push, Commit และ Sync


149

ฉันใช้ visual studio 2013 และฉันต้องเผชิญกับ 3 ตัวเลือกเมื่อฉันยอมรับรหัส C # ของฉัน ฉันต้องการคำอธิบายของความแตกต่างระหว่างตัวเลือกแต่ละตัวที่เกี่ยวข้องกับสิ่งที่เกิดขึ้นกับ repo ในพื้นที่ของฉันกับ GitHub repo

  • ตัวเลือก 1 กล่าวว่ากระทำ
  • ตัวเลือกที่ 2 บอกว่ากระทำและกด
  • ตัวเลือก 3 กล่าวว่า Commit และ Sync

ฉันไม่เข้าใจความแตกต่างระหว่างตัวเลือก 2 ตัวสุดท้าย เมื่อใดที่ฉันควรใช้ Commit และ Sync ตรงข้ามกับ Commit และ Push

คำตอบ:


216
  1. คอมมิทจะทำการบันทึกการเปลี่ยนแปลงของคุณที่คุณทำไว้ในเครื่องของคุณ มันจะไม่ทำเครื่องหมายการเปลี่ยนแปลงในที่เก็บระยะไกล
  2. คอมมิทและพุชจะทำตามข้างบนแล้วผลักไปที่ที่เก็บรีโมต ซึ่งหมายความว่าการเปลี่ยนแปลงใด ๆ ที่คุณทำจะถูกบันทึกไว้ในที่เก็บระยะไกลเช่นกัน
  3. กระทำและซิงค์ทำสามสิ่ง ครั้งแรกมันจะกระทำ ประการที่สองมันจะทำการดึง (คว้าข้อมูลที่ปรับปรุงจาก repo ระยะไกล) ในที่สุดมันจะผลัก

ดูเพิ่มเติมจาก Microsoft ที่นี่


ฉันไม่ได้รับ "Commit and Sync" จริงๆก่อนอื่นมันจะส่งข้อมูล ประการที่สองมันจะทำการดึงในที่สุดมันก็จะผลัก เหตุใดจึงต้องมีการผลักดันที่นี่เมื่อการเปลี่ยนแปลงรหัสมีความมุ่งมั่นกับที่เก็บระยะไกลแล้ว (ไม่มีการเปลี่ยนแปลงที่จะผลักดัน)
Bhuwan Pandey

6
@BhuwanPandey กำลังทำการ "ส่ง" ไม่รวมถึง "push" พวกเขาแยกกัน มีเพียง "พุช" เท่านั้นที่จะอัปเดตการกระทำของคุณเป็นที่เก็บข้อมูลระยะไกล ดูภาพในคำตอบอื่น ๆ เพื่อดูว่า "กระทำ" ไปจากดัชนีไปยังที่เก็บในท้องถิ่นในขณะที่ "ดัน" เสร็จสิ้นโดยไปจากที่เก็บในท้องถิ่นไปยังพื้นที่เก็บข้อมูลระยะไกล
camiblanch

การดำเนินการ Sync ทำให้เกิดข้อขัดแย้งเมื่อผู้ใช้หลายคนทำงานพร้อมกันในแอปพลิเคชันหรือไม่
Murali Dhar Darshan

ฉันใช้ Visual Studio 2017 และคำสั่ง Commit and Sync ไม่ได้ผลักดันการเปลี่ยนแปลงของคุณอย่างสมบูรณ์ ฉันกำลังบอกว่าเพราะการทำการซิงค์ทำให้การเปลี่ยนแปลงของฉันปรากฏในแท็บประวัติใน Visual Studio แต่ที่ไซต์ Github จะไม่ปรากฏขึ้น ฉันต้องดำเนินการคำสั่งกดหลังจาก Commig และ Sync แล้วการเปลี่ยนแปลงของฉันปรากฏในเว็บไซต์ Github
Fabiano

ฉันคิดว่าความสับสนเกิดขึ้นจากการคิด Commit ส่งไฟล์ไปยังที่เก็บระยะไกล ในความเป็นจริงกระทำการเพียงบันทึกการแก้ไขของคุณกับพื้นที่เก็บข้อมูลท้องถิ่น หากไม่มีการพุชมันจะไม่กระทบเซิร์ฟเวอร์
Alan Baljeu

72

เพื่อเพิ่มคำตอบของ camieblanch ฉันพบรูปภาพ / โพสต์ที่เป็นประโยชน์นี้จาก tanascius ( ที่นี่ ) "นี่เป็นภาพสวย ๆ จาก Oliver Steele ที่อธิบายแบบ git และคำสั่ง:" ป้อนคำอธิบายรูปภาพที่นี่


1
แต่ซิงค์ในภาพนี้อยู่ที่ไหน
Alan Baljeu

2
มันไม่มีอยู่ในภาพ หากคุณอ้างถึงคำตอบของ "camiblanch" มันกระทำต่อ repo ในพื้นที่ของคุณดึงเพื่อซิงค์ (รวม) repo ระยะไกลกับ repo ในพื้นที่ของคุณจากนั้นจะผลัก repo ภายในที่รวมไปยัง repo ระยะไกล
A.sharif

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