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

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


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

20
Git ปฏิเสธที่จะรวมประวัติที่ไม่เกี่ยวข้องกับ rebase
ในระหว่างgit rebase origin/developmentข้อความแสดงข้อผิดพลาดต่อไปนี้จะแสดงจาก Git: fatal: refusing to merge unrelated histories Error redoing merge 1234deadbeef1234deadbeef เวอร์ชัน Git ของฉันคือ 2.9.0 มันใช้งานได้ดีในรุ่นก่อนหน้า ฉันจะดำเนินการต่อการลดลงนี้ต่อเนื่องเพื่อให้ประวัติศาสตร์ที่ไม่เกี่ยวข้องกับการบังคับธงแนะนำในรุ่นใหม่ได้อย่างไร
2146 git  rebase 

5
git cherry-pick กล่าวว่า“ … 38c74d เป็นการผสาน แต่ไม่มีการเลือกตัวเลือก -m”
ฉันทำการเปลี่ยนแปลงบางอย่างในสาขาหลักของฉันและต้องการนำทวนเหล่านั้น เมื่อฉันเลือกเชอร์รี่ต่อไปนี้ฉันจะติด fd9f578 เมื่อ git พูดว่า: $ git cherry-pick fd9f578 fatal: Commit fd9f57850f6b94b7906e5bbe51a0d75bf638c74d is a merge but no -m option was given. คอมไพล์กำลังพยายามบอกอะไรกับฉันและเลือกสิ่งที่ถูกต้องกับการใช้เชอร์รี่ที่นี่? สาขาหลักจะรวมถึงการเปลี่ยนแปลงไฟล์ที่ได้รับการแก้ไขในสาขาอัปสตรีมดังนั้นฉันแน่ใจว่าจะมีข้อขัดแย้งในการผสานบางอย่าง แต่สิ่งเหล่านั้นไม่ได้เลวร้ายเกินกว่าที่จะทำให้ตรงได้ ฉันรู้ว่าต้องเปลี่ยนแปลงอะไรบ้าง สิ่งเหล่านี้คือความมุ่งมั่นที่ฉันต้องการนำมาใช้ e7d4cff added some comments... 23e6d2a moved static strings... 44cc65a incorporated test ... 40b83d5 whoops delete whitspace... 24f8a50 implemented global.c... 43651c3 cleaned up ... …
518 git  merge  rebase  cherry-pick 


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

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

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 

8
ลบโฟลเดอร์และเนื้อหาออกจากประวัติของ git / GitHub
ฉันทำงานที่เก็บข้อมูลในบัญชี GitHub ของฉันและนี่เป็นปัญหาที่ฉันสะดุด โปรเจ็กต์ Node.js พร้อมโฟลเดอร์ที่ติดตั้งแพ็กเกจ npm สองสามตัว แพ็คเกจอยู่ในnode_modulesโฟลเดอร์ เพิ่มโฟลเดอร์นั้นไปยังที่เก็บ git และผลักรหัสไปที่ github (ไม่ได้คิดเกี่ยวกับส่วนของ npm ในเวลานั้น) รับรู้ว่าคุณไม่จำเป็นต้องใช้โฟลเดอร์นั้นเพื่อเป็นส่วนหนึ่งของรหัส ลบโฟลเดอร์นั้นแล้วผลักออก ในกรณีดังกล่าวขนาดของ repo git รวมอยู่ที่ประมาณ6MBซึ่งโค้ดจริง (ทั้งหมดยกเว้นโฟลเดอร์นั้น) มีขนาดประมาณ300 KBเท่านั้น ตอนนี้สิ่งที่ฉันกำลังมองหาในที่สุดคือวิธีการกำจัดรายละเอียดของโฟลเดอร์แพ็คเกจจากประวัติของ git ดังนั้นหากใครบางคนลอกแบบพวกเขาไม่ต้องดาวน์โหลดประวัติมูลค่า 6mb ที่ไฟล์จริงเท่านั้นที่พวกเขาจะได้รับ ณ ค่าคอมมิชชันล่าสุดจะเป็น 300KB ฉันค้นหาวิธีแก้ปัญหาที่เป็นไปได้สำหรับสิ่งนี้และลองใช้ทั้งสองวิธี ลบไฟล์ออกจากที่เก็บ git (ประวัติ) http://help.github.com/remove-sensitive-data/ https://gist.github.com/1588371 สรุปสาระสำคัญดูเหมือนว่ามันทำงานที่ไหนหลังจากที่เรียกใช้สคริปต์ก็แสดงให้เห็นว่ามันได้รับการกำจัดของโฟลเดอร์นั้นและหลังจากนั้นมันก็แสดงให้เห็นว่า 50 commits ที่แตกต่างกันได้รับการแก้ไข แต่มันก็ไม่ให้ฉันกดรหัสนั้น เมื่อฉันพยายามที่จะผลักดันมันก็กล่าวว่าBranch up to dateแต่แสดงให้เห็นว่า 50 git …
318 git  github  rebase  git-rebase 

3
ฉันจะทำให้การส่งต่ออย่างรวดเร็วถูกปิดโดยปริยายในคอมไพล์หรือไม่?
ฉันไม่สามารถคิดถึงเวลาที่ฉันจะใช้git mergeมากกว่าgit rebaseและไม่ต้องการให้มีการแสดง มีวิธีการกำหนดค่า git ให้ส่งต่ออย่างรวดเร็วโดยค่าเริ่มต้นหรือไม่ ความจริงที่ว่ามี--ffตัวเลือกที่ดูเหมือนจะบ่งบอกว่ามีวิธี แต่ฉันไม่สามารถหาได้ในเอกสาร

15
แทรกการกระทำก่อนที่จะคอมมิทใน Git?
ฉันถามก่อนเกี่ยวกับวิธีการสควอชสองคอมมิชชันในที่เก็บคอมไพล์ ในขณะที่วิธีแก้ปัญหานั้นค่อนข้างน่าสนใจและไม่เหมือนกับการแปรปรวนทางใจเหมือนกับสิ่งอื่น ๆ ในคอมไพล์พวกเขายังคงได้รับความเจ็บปวดหากคุณจำเป็นต้องทำตามขั้นตอนซ้ำหลายครั้งในการพัฒนาโครงการของคุณ ดังนั้นฉันควรจะผ่านความเจ็บปวดเพียงครั้งเดียวและจากนั้นสามารถใช้การปฏิเสธแบบโต้ตอบมาตรฐานได้ตลอดไป สิ่งที่ฉันต้องการจะทำคือการมีความมุ่งมั่นเริ่มต้นว่างเปล่าที่มีอยู่เพียงเพื่อวัตถุประสงค์ในการเป็นคนแรก ไม่มีรหัสไม่มีอะไรเลย เพียงแค่สละพื้นที่เพื่อให้สามารถเป็นฐานสำหรับการรีบูต คำถามของฉันคือการมีที่เก็บข้อมูลที่มีอยู่ฉันจะดำเนินการเกี่ยวกับการใส่ข้อมูลคอมมิชชันใหม่ที่ว่างเปล่าไว้ก่อนหน้าแรกและเปลี่ยนคนอื่นให้ส่งต่อได้อย่างไร

5
Hg: วิธีทำ rebase เช่น rebase ของคอมไพล์
ใน Git ฉันสามารถทำสิ่งนี้: 1. เริ่มทำงานกับคุณสมบัติใหม่: $ git co -b newfeature-123 # (สาขาการพัฒนาคุณลักษณะท้องถิ่น) ทำไม่กี่กระทำ (M, N, O) ปรมาจารย์ A --- B --- C \ newfeature-123 M --- N --- O 2. ดึงการเปลี่ยนแปลงใหม่จากต้นแบบต้นน้ำ: $ git pull (อัปเดตข้อมูลหลักด้วย ff-commits) ปรมาจารย์ A --- B --- C --- D --- E --- F \ newfeature-123 …
207 git  mercurial  dvcs  rebase 

8
รวมสองคอมมิตแรกของที่เก็บ Git หรือไม่?
สมมติว่าคุณมีประวัติที่มีทั้งสามยอมรับA, BและC : A-B-C ฉันต้องการรวมทั้งสองกระทำAและBกับหนึ่งกระทำAB : AB-C ฉันเหนื่อย git rebase -i A ซึ่งเปิดตัวแก้ไขของฉันด้วยเนื้อหาต่อไปนี้: pick e97a17b B pick asd314f C ฉันเปลี่ยนสิ่งนี้เป็น squash e97a17b B pick asd314f C จากนั้น Git 1.6.0.4 พูดว่า: Cannot 'squash' without a previous commit มีวิธีหรือเป็นไปไม่ได้?

5
การรีบูตการคอมไพล์ Git
ใช้กรณีต่อไปนี้: ฉันมีงานในสาขาหัวข้อและตอนนี้ฉันพร้อมที่จะรวมกลับไปเป็นหลัก: * eb3b733 3 [master] [origin/master] | * b62cae6 2 [topic] |/ * 38abeae 1 ฉันดำเนินการผสานจากต้นแบบแก้ไขข้อขัดแย้งและตอนนี้ฉันมี: * 8101fe3 Merge branch 'topic' [master] |\ | * b62cae6 2 [topic] * | eb3b733 3 [origin/master] |/ * 38abeae 1 ตอนนี้การผสานใช้เวลาพอสมควรดังนั้นฉันจึงทำการดึงข้อมูลอีกครั้งและสังเกตว่าสาขาต้นแบบระยะไกลมีการเปลี่ยนแปลงใหม่: * 8101fe3 Merge branch 'topic' [master] |\ | * b62cae6 2 …

3
git rebase ติดตาม 'ท้องถิ่น' และ 'ระยะไกล'
เมื่อทำการ git rebase ฉันมักจะมีปัญหาในการหาสิ่งที่เกิดขึ้นกับ 'local' และ 'remote' เมื่อแก้ไขข้อขัดแย้ง บางครั้งฉันก็รู้สึกว่าพวกเขาสลับข้างจากคนหนึ่งไปยังอีกคนหนึ่ง อาจเป็น (แน่นอน) เพราะฉันยังไม่เข้าใจ เมื่อทำการรีบูตใครคือ 'ท้องถิ่น' และใครคือ 'ระยะไกล' (ฉันใช้ P4Merge เพื่อแก้ไขข้อขัดแย้ง)
174 git  conflict  rebase 

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