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

ด้วยคำสั่ง git-rebase คุณสามารถทำการเปลี่ยนแปลงจากหนึ่งสาขาและเล่นซ้ำบนสุดของสาขาอื่น

30
ลบการกระทำจากสาขาใน Git
ฉันต้องการทราบวิธีลบการส่ง โดยdeleteฉันหมายความว่ามันเหมือนกับว่าฉันไม่ได้ทำอย่างนั้นและเมื่อฉันผลักดันในอนาคตการเปลี่ยนแปลงของฉันจะไม่ผลักไปที่สาขาระยะไกล git reset --hard HEADผมอ่านความช่วยเหลือคอมไพล์และผมคิดว่าคำสั่งฉันควรใช้คือ ถูกต้องหรือไม่
3233 git  git-rebase  git-reset 

17
การยกเลิกการรีคอมไพล์ git
ไม่มีใครรู้วิธีการยกเลิกการรีคอมไพล์ได้อย่างง่ายดาย? วิธีเดียวที่อยู่ในใจคือไปด้วยตนเอง: git ชำระเงินผู้ปกครองกระทำเพื่อทั้งสองสาขา จากนั้นสร้างสาขาชั่วคราวจากที่นั่น เชอร์รี่รับทั้งหมดกระทำด้วยมือ แทนที่สาขาที่ฉัน rebased โดยสาขาที่สร้างขึ้นด้วยตนเอง ในสถานการณ์ปัจจุบันของฉันสิ่งนี้จะได้ผลเพราะฉันสามารถมองเห็นความมุ่งมั่นจากทั้งสองสาขาได้ (อย่างใดอย่างหนึ่งคือเรื่องของฉัน อย่างไรก็ตามวิธีการของฉันทำให้ฉันรู้สึกแย่และผิดพลาดได้ง่าย (สมมติว่าฉันเพิ่ง rebased ด้วย 2 ของสาขาของตัวเอง) ความคิดใด ๆ ชี้แจง: ฉันกำลังพูดถึงการลดราคาในระหว่างที่มีการคอมมิชชันซ้ำหลายครั้ง ไม่เพียงคนเดียว
3179 git  rebase  git-rebase  undo 


11
Git เวิร์กโฟลว์และคำถาม rebase vs ผสาน
ตอนนี้ฉันใช้ Git มาสองสามเดือนกับโปรเจ็กต์กับผู้พัฒนารายอื่น ฉันมีประสบการณ์หลายปีกับSVNดังนั้นฉันเดาว่าฉันจะนำสัมภาระจำนวนมากมาสู่ความสัมพันธ์ ฉันได้ยินมาว่า Git นั้นยอดเยี่ยมสำหรับการแยกและรวมเข้าด้วยกันและจนถึงตอนนี้ฉันไม่เห็นเลย แน่นอนว่าการแตกแขนงนั้นง่ายมาก แต่เมื่อฉันพยายามที่จะรวมทุกอย่างเข้าสู่นรก ตอนนี้ฉันคุ้นเคยกับเรื่องนี้จาก SVN แต่สำหรับฉันแล้วฉันเพิ่งแลกเปลี่ยนระบบเวอร์ชันย่อยแบบหนึ่งสำหรับอีกระบบหนึ่ง คู่ของฉันบอกฉันว่าปัญหาของฉันเกิดจากความปรารถนาของฉันที่จะผสานความจำเจและฉันควรใช้ rebase แทนการรวมในหลาย ๆ สถานการณ์ ตัวอย่างเช่นนี่คือขั้นตอนการทำงานที่เขาวางลง: clone the remote repository git checkout -b my_new_feature ..work and commit some stuff git rebase master ..work and commit some stuff git rebase master ..finish the feature git checkout master git merge …

7
วิธีการรีบู๊ตสาขาในพื้นที่ด้วยต้นแบบระยะไกล
remote_repoผมมีโครงการโคลนจากสาขาต้นแบบจากพื้นที่เก็บข้อมูลระยะไกล ฉันสร้างสาขาใหม่และฉันผูกพันกับสาขานั้น โปรแกรมเมอร์คนอื่นผลักดันให้remote_repoสาขาหลัก ตอนนี้ฉันต้องรีบาวด์สาขา RB ของฉันให้เป็นremote_repoปรมาจารย์ ทำอย่างไร คำสั่งอะไรที่จะพิมพ์ไปยังสถานี?
934 git  clone  git-rebase 

12
วิธีการเลือกหลายเชอร์รี่
ฉันมีสองสาขา กระทำaเป็นหัวของหนึ่งในขณะที่อื่น ๆ ที่มีb, c, d, eและด้านบนของf aฉันต้องการที่จะย้ายc, d, eและสาขาแรกโดยไม่ต้องกระทำf bใช้เชอร์รี่รับมันเป็นเรื่องง่ายที่: เช็คเอาท์สาขาแรกเชอร์รี่เลือกหนึ่งโดยหนึ่งcไปfและ rebase สาขาที่สองบนแรก แต่มีวิธีใดที่จะเลือกเชอร์รี่ทั้งหมดc- fในคำสั่งเดียว? นี่คือคำอธิบายภาพของสถานการณ์ (ขอบคุณJJD ):

18
วิธีการลบ / ลบไฟล์ขนาดใหญ่จากการคอมมิทประวัติในที่เก็บ Git?
บางครั้งฉันทำ DVD-rip ลงในโปรเจ็กต์ของเว็บไซต์จากนั้นสะเพร่าgit commit -a -m ...และในกรณีที่ซื้อคืน repo นั้นมีจำนวน 2.2 กิ๊ก ครั้งต่อไปที่ฉันทำการแก้ไขลบไฟล์วิดีโอและยืนยันทุกอย่าง แต่ไฟล์บีบอัดยังคงอยู่ในที่เก็บในประวัติ ฉันรู้ว่าฉันสามารถเริ่มต้นสาขาจากการกระทำเหล่านั้นและรีบูตสาขาหนึ่งไปยังสาขาอื่น แต่ฉันควรทำอย่างไรเพื่อรวม 2 คอมมิชชันเข้าด้วยกันเพื่อไม่ให้ไฟล์ขนาดใหญ่ปรากฏในประวัติและถูกล้างข้อมูลในขั้นตอนการรวบรวมขยะ


16
วิธีการกำจัดคอมไพล์ทั้งหมดมุ่งมั่นที่เป็นหนึ่งเดียว?
คุณจะสควอชที่เก็บข้อมูลทั้งหมดของคุณลงไปที่การคอมมิทครั้งแรกได้อย่างไร? ฉันสามารถลดการกระทำแรกได้ แต่นั่นทำให้ฉันมีข้อผูกพัน 2 ข้อ มีวิธีในการอ้างอิงการกระทำก่อนที่จะมีคนแรก?

4
ในคอมไพล์อะไรคือความแตกต่างระหว่างการผสาน - สควอชและการรีบูต
ฉันใหม่กับคอมไพล์และฉันพยายามที่จะเข้าใจความแตกต่างระหว่างสควอชและการรีบูต ตามที่ฉันเข้าใจแล้วว่าคุณเล่นสควอชเมื่อทำการ rebase
363 git  merge  rebase  git-rebase  squash 

2
"rebase --preserve-meres" ของ git ทำอะไรได้บ้าง (และทำไม)
เอกสารrebaseของ Git สำหรับคำสั่งนั้นค่อนข้างสั้น: --preserve-merges Instead of ignoring merges, try to recreate them. This uses the --interactive machinery internally, but combining it with the --interactive option explicitly is generally not a good idea unless you know what you are doing (see BUGS below). ดังนั้นสิ่งที่เกิดขึ้นจริงเมื่อคุณใช้--preserve-merges? มันแตกต่างจากพฤติกรรมเริ่มต้น (ไม่มีธงนั้น) อย่างไร การ "สร้าง" การผสานหมายความว่าอย่างไร
355 git  git-rebase 

9
สาขาของคุณอยู่ก่อนหน้า 'ต้นทาง / หลัก' โดย 3 คอมมิท
ฉันได้รับสิ่งต่อไปนี้เมื่อทำงาน git status Your branch is ahead of 'origin/master' by 3 commits. ฉันได้อ่านวิธีการแก้ไขปัญหานี้แล้วในโพสต์อื่นgit pull --rebaseแต่สิ่งที่แน่นอนคือการรีบูตฉันจะสูญเสียข้อมูลหรือเป็นวิธีที่ง่ายในการซิงค์กับต้นแบบหรือไม่
354 git  git-rebase 

2
จะทำให้การเปลี่ยนแปลง“ ของพวกเขา” อยู่ตรงกลางของการรีบูต Git ที่ขัดแย้งกันได้อย่างไร?
ฉันมีสาขาที่ขัดแย้งกัน branch2 แยกจาก branch1 สมมติว่าเมื่อ rebasing branch2ในปัจจุบันbranch1ในขณะที่แก้ปัญหาความขัดแย้งผมตัดสินใจที่จะใช้บางส่วน (ไม่ทั้งหมด) ของ (เช่น "ของ" branch1) ไฟล์ตามที่เป็น ฉันจะทำอย่างไร ฉันเหนื่อย: git checkout branch1:foo/bar.java fatal: reference is not a tree: TS-modules-tmp:foo/bar.java git checkout refs/heads/branch1:foo/bar.java fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.java
349 git  rebase  git-rebase 

30
git rebase:“ ข้อผิดพลาด: ไม่สามารถสถิติ 'ไฟล์': การอนุญาตถูกปฏิเสธ”
ฉันใช้คอมไพล์และทำคอมมิทเล็กน้อยตามด้วยคอมมิชชันขนาดใหญ่ ฉันตัดสินใจที่จะใช้git rebaseสควอชทั้งสองคอมมิชชันด้วยกันก่อนผลักมัน (ฉันไม่เคยทำแบบนี้มาก่อน) ดังนั้นฉันจึง: git rebase -i HEAD~2 สิ่งนี้ทำให้ฉันบรรณาธิการของฉันที่ฉันเลือกที่จะเลือกการกระทำก่อนหน้านี้และสควอชในภายหลัง เมื่อฉันบันทึก git กล่าวว่า: ข้อผิดพลาด: ไม่สามารถสถิติ ' ชื่อไฟล์ ': ปฏิเสธการอนุญาต ไม่สามารถใช้sha1 สำหรับการคอมมิชชันในภายหลัง ... บรรทัดข้อความเริ่มต้นสำหรับการคอมมิทนั้น ขณะนี้: git logไม่กระทำการปรากฏขึ้นเมื่อฉันทำ git status บอกฉันว่า "ไม่ได้อยู่ที่สาขาใดเลย" หนึ่งไฟล์ถูกแสดงรายการที่ถูกแก้ไขและในดัชนีและสองไฟล์ถูกแสดงว่าไม่ได้ติดตาม ความมุ่งมั่นครั้งแรกของฉันมีเพียงไฟล์เดียว (ฉันคิดว่า) และความมุ่งมั่นที่สองของฉันมีโหลที่ดี เกิดอะไรขึ้น!? ฉันจะแก้ไขได้อย่างไร
343 git  git-rebase 

5
แก้ไขการคอมมิทใน Git หรือไม่
มีวิธีในการเปลี่ยนข้อความจากการกระทำในภายหลัง: git commit --amend # for the most recent commit git rebase --interactive master~2 # but requires *parent* คุณสามารถเปลี่ยนข้อความการส่งข้อความของการส่งข้อความครั้งแรก (ซึ่งไม่มีพาเรนต์) ได้อย่างไร

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