ตัวเลือกที่ดีที่สุด
อาจเป็นวิธีที่สะอาด, สับสนน้อยที่สุดและปลอดภัยที่สุดในการผลักดันเข้าสู่พื้นที่เก็บข้อมูลระยะไกลที่ไม่ได้เปลือยเปล่าของคุณคือการผลักดันไปยังสาขาเฉพาะในระยะไกลที่เป็นตัวแทนสาขาแล็ปท็อปของคุณ
ลองดูกรณีที่ง่ายที่สุดและสมมติว่าคุณมีสาขาเดียวในแต่ละ repo: master เมื่อคุณผลักดันไปยัง repo ระยะไกลจากแล็ปท็อปของคุณแทนการกด master -> master, push master -> laptop-master (หรือชื่อที่คล้ายกัน) วิธีนี้การพุชจะไม่ส่งผลต่อสาขาหลักที่เช็คเอาท์ในปัจจุบันใน repo ระยะไกล ในการทำสิ่งนี้จากแล็ปท็อปคำสั่งนั้นค่อนข้างง่าย:
git push origin master:laptop-master
ซึ่งหมายความว่าสาขาหลักของโลคัลจะถูกส่งไปยังสาขาที่ชื่อ "แล็ปท็อป - มาสเตอร์" ในที่เก็บระยะไกล ใน repo ระยะไกลของคุณคุณจะมีสาขาใหม่ที่ชื่อว่า "laptop-master" ที่คุณสามารถผสานเข้ากับ remote master ของคุณเมื่อคุณพร้อม
ตัวเลือกอื่น
อาจเป็นไปได้ที่จะเพียงแค่กด master -> master แต่การผลักดันไปยังสาขาเช็คเอาต์ในปัจจุบันของ repo ที่ไม่ได้เปลือยไม่แนะนำเพราะมันอาจสร้างความสับสนหากคุณไม่เข้าใจว่าเกิดอะไรขึ้น นี่เป็นเพราะการผลักดันไปยังสาขาที่เช็คเอาต์ไม่ได้อัปเดตแผนผังงานดังนั้นการตรวจสอบgit status
ในสาขาที่เช็คเอาต์ที่ถูกผลักเข้าไปจะแสดงความแตกต่างตรงข้ามเหมือนกับสิ่งที่ผลักดันล่าสุด มันจะสับสนโดยเฉพาะอย่างยิ่งถ้าต้นไม้สกปรกก่อนที่จะกดซึ่งเป็นเหตุผลใหญ่ว่าทำไมไม่แนะนำ
หากคุณต้องการลองแค่กด master -> master คำสั่งนั้นจะเป็นแค่:
git push origin
แต่เมื่อคุณกลับไปที่ repo ระยะไกลคุณอาจต้องการทำgit reset --hard HEAD
แผนผังการทำงานให้สอดคล้องกับเนื้อหาที่ถูกผลัก สิ่งนี้อาจเป็นอันตรายได้ได้เพราะหากมีการเปลี่ยนแปลงที่ไม่ผูกมัดในแผนผังงานระยะไกลที่คุณต้องการเก็บไว้ ให้แน่ใจว่าคุณรู้ว่าอะไรคือผลที่ตามมาของสิ่งนี้ก่อนที่คุณจะลองทำ
แก้ไขตั้งแต่ Git 2.3 คุณสามารถใช้ "ดันต่อการปรับใช้" คอมไพล์ผลักดัน: https://github.com/blog/1957-git-2-3-has-been-released แต่การผลักไปยังสาขาที่แยกต่างหากจากนั้นการรวมจะดีกว่าเนื่องจากเป็นการรวมที่เกิดขึ้นจริง