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

การเปลี่ยนจุดเริ่มต้นของสาขาในระบบควบคุมเวอร์ชัน


7
Git: ข้อผิดพลาด "ไม่สามารถ 'สควอช' โดยไม่มีการกระทำก่อนหน้านี้" ในขณะที่ rebase
ฉันมีสิ่งต่อไปนี้ในข้อความสิ่งที่ต้องทำของgit rebase -i HEAD~2: pick 56bcce7 Closes #2774 pick e43ceba Lint.py: Replace deprecated link # Rebase 684f917..e43ceba onto 684f917 (2 command(s)) # ... ตอนนี้เมื่อฉันพยายามสควอชอันแรก ( 56bcce7) และเลือกอันที่สองโดยเพิ่ม "s" ก่อนอันแรกฉันได้รับข้อผิดพลาดต่อไปนี้: Cannot 'squash' without a previous commit ใครช่วยอธิบายหน่อยได้ไหมว่ามันหมายถึงอะไรและฉันต้องทำอย่างไร ฉันต้องการสควอชคอมมิตแรก ( 56bcce7) และ "เลือกและรีเวิร์ด" คอมe43cebaมิตที่สอง ( )
101 git  rebase 

3
ฉันจะรวมสองคอมมิตเป็นคอมมิตเดียวได้อย่างไร?
ฉันมีสาขา 'โครงการแรก' ที่มี 2 ข้อตกลง ฉันต้องการกำจัดการกระทำเหล่านี้และทำให้มันปรากฏเป็นคอมมิตเดียว คำสั่งgit merge --squashฟังดูมีแนวโน้ม แต่เมื่อฉันเรียกใช้git merge --squashเทอร์มินัลของฉันจะแสดงตัวเลือกสำหรับคำสั่ง คำสั่งที่ถูกต้องคืออะไร? Commit 1: Added 'homepage.html' Added 'contacts.html' Commit 2: Added 'homepage.php' Added 'homepage.php' Deleted 'homepage.html' Deleted 'contacts.html'
99 git  merge  branch  git-svn  rebase 

3
คืนสาขารวมถึงลูก ๆ ทุกคน
ฉันมีโทโพโลยีที่เก็บ Git ต่อไปนี้: A-B-F (master) \ D (feature-a) \ / C (feature) \ E (feature-b) โดยการเปลี่ยนfeatureสาขาใหม่ฉันคาดว่าจะสร้างฐานทรีย่อยใหม่ทั้งหมด (รวมถึงสาขาย่อย): $ git rebase feature master A-B-F (master) \ D (feature-a) \ / C (feature) \ E (feature-b) อย่างไรก็ตามนี่คือผลลัพธ์ที่แท้จริง: C' (feature) / A-B-F (master) \ D (feature-a) \ / C \ E (feature-b) ฉันรู้ว่าฉันสามารถแก้ไขได้อย่างง่ายดายด้วยตนเองโดยดำเนินการ: …

12
Git push ถูกปฏิเสธ "ไม่กรอไปข้างหน้า"
ตอนนี้ฉันค่อนข้างใหม่ที่gitยังใช้มันเพื่อจัดการโค้ดของเราในสภาพแวดล้อมแบบทีม ฉันมีปัญหาในการเปลี่ยนใหม่และแก้ไขโดยใช้ git checkout --ours filename.txt git add filename.txt git rebase --continue ตอนนี้ฉันต้องการที่จะผลักดันการเปลี่ยนแปลงของฉันและเรียกใช้คำสั่งต่อไปนี้ $ git push origin feature/my_feature_branch ทำให้ฉันมีข้อผิดพลาดต่อไปนี้: To ssh://git@coderepo.com:7999/repo/myproject.git ! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward) error: failed to push some refs to 'ssh://git@coderepo.com:7999/repo/myproject.git' hint: Updates were rejected because the tip of your current branch is behind hint: its …
91 git  push  rebase 

3
ฉันจะกู้คืน / ซิงโครไนซ์ใหม่ได้อย่างไรหลังจากที่มีคนดัน rebase หรือรีเซ็ตไปยังสาขาที่เผยแพร่แล้ว
เราได้ยินว่าหนึ่งไม่ควรตีพิมพ์ rebase ทำงานว่ามันเป็นอันตราย ฯลฯ แต่ฉันไม่ได้เห็นสูตรใด ๆ ที่โพสต์สำหรับวิธีการจัดการกับสถานการณ์ที่เกิดขึ้นในกรณีที่ rebase ถูกตีพิมพ์ ตอนนี้โปรดทราบว่าสิ่งนี้เป็นไปได้จริง ๆ หากที่เก็บนั้นถูกโคลนโดยกลุ่มคนที่รู้จัก (และควรมีขนาดเล็ก) เท่านั้นดังนั้นใครก็ตามที่ผลักดันการปรับฐานหรือรีเซ็ตสามารถแจ้งให้ทุกคนทราบว่าพวกเขาจะต้องให้ความสนใจในครั้งต่อไป ดึง (!) วิธีแก้ปัญหาที่ชัดเจนวิธีหนึ่งที่ฉันได้เห็นจะใช้ได้ผลหากคุณไม่มีข้อผูกมัดในท้องถิ่นfooและได้รับการปรับใหม่: git fetch git checkout foo git reset --hard origin/foo สิ่งนี้จะทิ้งสถานะท้องถิ่นที่fooสนับสนุนประวัติศาสตร์ของมันตามที่เก็บระยะไกล แต่จะจัดการกับสถานการณ์ได้อย่างไรหากมีการเปลี่ยนแปลงในท้องถิ่นอย่างมากในสาขานั้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.