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

"branch" เป็นคำที่ใช้ในระบบควบคุมเวอร์ชันเพื่อแสดงบรรทัดการพัฒนาที่เป็นอิสระ พื้นที่เก็บข้อมูลอาจมีหนึ่งสาขาขึ้นไปทั้งนี้ขึ้นอยู่กับระบบ มีการรวมสาขาเมื่อการเปลี่ยนแปลงจำเป็นต้องเผยแพร่จากสาขาหนึ่งไปยังสาขาอื่น

6
ชื่อสาขาเทียบกับที่เก็บหลายแห่ง
ขณะนี้เรากำลังใช้การโค่นล้มบน codebase ที่ค่อนข้างใหญ่ แต่ละรีลีสได้รับสาขาของตัวเองและการแก้ไขจะดำเนินการกับลำต้นและย้ายไปยังสาขาที่ปล่อยโดยใช้svnmerge.py ฉันเชื่อว่าถึงเวลาแล้วที่จะต้องไปสู่การควบคุมแหล่งที่มาที่ดีขึ้นและฉันเคยเล่นกับ Mercurial มาระยะหนึ่งแล้ว ดูเหมือนว่าจะมีโรงเรียนสองแห่งที่จัดการโครงสร้างการเปิดตัวดังกล่าวโดยใช้ Mercurial แต่ละรีลีสแต่ละรายการจะได้รับ repo ของตัวเองและทำการแก้ไขกับสาขารีลีสและพุชไปยังสาขาหลัก (และสาขารีลีสอื่น ๆ ที่ใหม่กว่า) หรือใช้สาขาที่มีชื่อภายในที่เก็บเดียว (หรือสำเนาที่ตรงกันหลายชุด) ไม่ว่าในกรณีใดดูเหมือนว่าฉันอาจใช้บางอย่างเช่นการปลูกถ่ายเพื่อเปลี่ยนเชอร์รี่พิคเพื่อรวมไว้ในสาขาที่วางจำหน่าย ฉันถามคุณ; ข้อดีของแต่ละวิธีคืออะไร?

3
คำเหล่านี้หมายความว่าอย่างไรใน Git: Repository, fork, branch, clone, track
ฉันไม่ชัดเจนเกี่ยวกับความหมายที่นี่ ทั้งหมดนี้เกี่ยวกับสำเนา / ตัวแปรของหน่วยรหัส + ประวัติ แต่ที่ผ่านมาฉันไม่แน่ใจว่าจะพูดได้ โครงสร้างตรรกะนี้มีการอธิบายอยู่ที่ไหนสักแห่งหรือไม่?
130 git  branch  clone 

7
ฉันจะจัดการความขัดแย้งกับโมดูลย่อย git ได้อย่างไร
ฉันมี superproject คอมไพล์ที่อ้างถึงโมดูลย่อยหลายโมดูลและฉันกำลังพยายามล็อกขั้นตอนการทำงานเพื่อให้สมาชิกโปรเจ็กต์ที่เหลือของฉันทำงานได้ สำหรับคำถามนี้ช่วยบอก superproject ของฉันเรียกว่าsuperyและ submodule subbyที่เรียกว่า (จากนั้นเป็นการลดความซับซ้อนของสิ่งที่ฉันกำลังพยายามทำ ... ฉันไม่ได้ใช้กิ่งก้านสำหรับเวอร์ชันจริงๆ แต่ฉันคิดว่ามันจะง่ายที่สุดในการจัดวางเป็นคำถาม) สาขาหลักของฉันsuperyมีแท็กv1.0ของโครงการ git ที่subbyอ้างถึงเป็นโมดูลย่อย สาขาของsuperyเรียกone.oneและเปลี่ยนการอ้างอิงของ submodule ที่จะชี้ไปที่แท็กของv1.1subby ฉันสามารถทำงานในแต่ละสาขาเหล่านี้ได้โดยไม่มีข้อติดขัด แต่ถ้าฉันพยายามอัปเดตone.oneสาขาด้วยการเปลี่ยนแปลงจากmasterสาขาฉันได้รับความขัดแย้งบางอย่างและฉันไม่สามารถแก้ไขได้อย่างไร โดยทั่วไปหลังจากทำงานgit pull . masterในsubbyสาขาไประยะหนึ่งดูเหมือนว่าจะสร้างโมดูลย่อยเพิ่มเติม ก่อนที่จะดึง / รวมฉันได้รับคำตอบที่ต้องการgit submoduleจากone.oneสาขา: $ git checkout master $ git submodule qw3rty...321e subby (v1.0) $ git checkout one.one $ git submodule asdfgh...456d subby (v1.1) แต่หลังจากดึงมันจะเพิ่มโมดูลย่อยเพิ่มเติมเมื่อฉันเรียกใช้git submodule: …

7
ความแตกต่างระหว่าง fork และ branch บน github
ถ้าฉันแยกโปรเจ็กต์ที่โฮสต์บน github ฉันคีบกิ่งทั้งหมดหรือไม่ ฉันจะรู้ได้อย่างไรว่าส้อมของฉันอิงกับสาขาใด? กล่าวอีกนัยหนึ่งว่าสาขาใดจะถูกดาวน์โหลดไปยังพีซีของฉัน

3
Git: แสดงรายการการเปลี่ยนแปลงที่ไม่ได้ผสานทั้งหมดในคอมไพล์
การสร้างสาขาสำหรับหัวข้อต่างๆและไม่ได้ลบออกเป็นประจำเมื่อฉันไม่ต้องการอีกต่อไปตอนนี้ฉันมีสาขาประมาณ 50 สาขา;) ฉันพยายามลบสาขาและบางสาขามีการเปลี่ยนแปลงที่ยังไม่ได้ผสาน สิ่งที่ฉันต้องการคือความสามารถในการดูว่ามีการเปลี่ยนแปลงอะไรบ้างในสาขาใด ๆ ใน repo ของฉันที่ไม่ได้อยู่ในต้นแบบ มีวิธีทำไหม ขอบคุณล่วงหน้า.
127 git  branch 

8
จะ 'git pull' เข้าไปในสาขาที่ไม่ใช่สาขาปัจจุบันได้อย่างไร?
เมื่อคุณเรียกใช้git pullในสาขาก็มักจะดึงจากmaster origin/masterฉันอยู่ในสาขาอื่นที่เรียกว่าnewbranchแต่ฉันต้องการเรียกใช้คำสั่งที่ทำgit pullจากorigin/masterเข้าmasterแต่ฉันไม่สามารถเรียกใช้git checkoutเพื่อเปลี่ยนสาขาที่เลือกได้จนกว่าการดึงจะเสร็จสมบูรณ์ มีวิธีทำไหม? เพื่อให้พื้นหลังบางส่วนพื้นที่เก็บข้อมูลจะจัดเก็บเว็บไซต์ ฉันได้ทำการเปลี่ยนแปลงบางอย่างในและใช้งานพวกเขาโดยการเปลี่ยนเว็บไซต์เพื่อnewbranch newbranchตอนนี้การเปลี่ยนแปลงเหล่านั้นได้รวมเข้ากับmasterสาขาแล้วฉันกำลังพยายามเปลี่ยนเว็บไซต์กลับไปที่masterสาขาด้วย ณ จุดนี้newbranchและorigin/masterเหมือนกัน แต่masterล้าหลังorigin/masterและจำเป็นต้องได้รับการอัปเดต ปัญหาคือถ้าฉันทำแบบดั้งเดิม: $ git checkout master # Uh oh, production website has now reverted back to old version in master $ git pull # Website is now up to date again ฉันต้องการบรรลุเช่นเดียวกับด้านบน ( git checkout master && git pull) …
126 git  branch  git-branch 

4
Mercurial move เปลี่ยนสาขาใหม่
ฉันมีการเปลี่ยนแปลงหลายอย่างที่ฉันยอมรับกับที่เก็บในเครื่องของฉัน แต่ยังไม่ได้รับการผลักดัน เนื่องจากฟีเจอร์ใช้เวลานานกว่าที่คาดไว้ฉันจึงต้องการสลับการเปลี่ยนแปลงเหล่านี้ไปยังสาขาที่มีชื่อก่อนที่ฉันจะพุช ฉันจะทำเช่นนี้ได้อย่างไร?
124 mercurial  branch 

4
รวมสาขากับลำต้น
ใช้ TortoiseSVN ฉันต้องทำการเปลี่ยนแปลงที่เคยทำในสาขาหนึ่งแล้วรวมเข้ากับลำต้น ฉันเป็นผู้พัฒนาโครงการนี้เพียงคนเดียวดังนั้นฉันจึงรู้ว่า trunk ไม่ได้เปลี่ยนแปลง ฉันกำลังเรียนรู้ SVN เพื่อให้ทีมของฉันสามารถใช้งานได้ในที่สุด โดยพื้นฐานแล้วฉันต้องการให้ลำต้นของฉันมีลักษณะเหมือนกิ่งก้าน ในโลกก่อน svn ฉันจะคัดลอกไฟล์ในโฟลเดอร์สาขาของฉันลบไฟล์ในโฟลเดอร์ trunk จากนั้นคัดลอก branch ไปยัง trunk ใน TortoiseSVN ฉันได้พยายามReintegrate a branch, และMerge a range of revisions Merge two different treesดูเหมือนว่าไม่มีอะไรที่จะเปลี่ยนลำต้นได้จริง ฉันได้ลองแตกกิ่งก้านที่ด้านบนของลำต้นแล้วด้วย สิ่งนี้ทำให้ฉันมีข้อผิดพลาดโดยบอกว่ามีลำต้นอยู่แล้ว

9
Git push: "จุดกำเนิด" ที่ร้ายแรงดูเหมือนจะไม่ใช่ที่เก็บ git - ร้ายแรงไม่สามารถอ่านจากที่เก็บระยะไกลได้ "
ฉันรู้ว่ามีการถามคำถามที่คล้ายกันนี้แล้ว แต่ฉันเชื่อว่าปัญหาของฉันเกิดจากความผิดพลาดที่ฉันได้ทำไปก่อนหน้านี้ดังนั้นจึงแตกต่างออกไปให้ฉันอธิบาย ทุกอย่างทำงานได้อย่างราบรื่นอย่างที่ฉันทำได้: git add . ไฟล์ทั้งหมดจากที่เก็บในเครื่องของฉัน git commit -m "message here" เพื่อเพิ่มข้อความในการกระทำของฉัน git push origin master เพื่ออัปโหลดไฟล์ของฉันไปยัง GitHub git push heroku master เพื่ออัปโหลดไฟล์ของฉันไปยัง Heroku อย่างไรก็ตามในบางจุดฉันได้สร้างสาขาใหม่ที่เรียกว่าในพื้นที่add-calendar-modelในกรณีที่ขั้นตอนต่อไปของการพัฒนาแอปจะไปทางทิศใต้ ... ... ซึ่งเป็นสิ่งที่เกิดขึ้น อย่างไรก็ตามแม้จะพยายามหลายครั้งฉันก็ไม่ได้รับรหัสเริ่มต้นนั่นคือรหัสจากก่อนที่ฉันจะสร้างสาขาใหม่ - จากmasterสาขาไปยังที่เก็บในเครื่องของฉัน ดังนั้นฉันจึงตัดสินใจลบไฟล์ทั้งหมดด้วยตนเองจากที่เก็บในเครื่องและสาขาgit cloneของฉันmasterจาก GitHub ด้วยวิธีนี้ฉันได้ไฟล์ทั้งหมดกลับคืนมา แต่ตอนนี้ฉันไม่สามารถพุชไปยังที่เก็บระยะไกลได้อีก ทุกครั้งที่ฉันพยายามเรียกใช้git push origin add-calendar-modelหรือgit push origin masterฉันได้รับข้อผิดพลาดต่อไปนี้: fatal: 'origin' does not appear to …

4
svn: วิธีสร้างสาขาจากการแก้ไขลำตัวบางส่วน
การดำเนินการต่อไปนี้จะสร้างสาขาจากการแก้ไขส่วนหัวของลำต้นเท่านั้น ฉันจะสร้างสาขาจากการแก้ไขเฉพาะได้อย่างไร ขอบคุณ $ svn copy http://svn.example.com/repos/calc/trunk \ http://svn.example.com/repos/calc/branches/my-calc-branch \ -m "Creating a private branch of /calc/trunk."
116 svn  branch 

9
จะยกเลิกการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับสาขาได้อย่างไร?
ฉันทำงานในสาขา (กล่าวคือdesign) และฉันได้ทำการเปลี่ยนแปลงหลายอย่าง แต่ฉันจำเป็นต้องทิ้งมันทั้งหมดและรีเซ็ตให้ตรงกับเวอร์ชันที่เก็บ ฉันคิดว่าgit checkout designจะทำ แต่มันบอกว่าฉันอยู่ในสาขาแล้วdesignและฉันมีไฟล์ที่แก้ไข 3 ไฟล์ ฉันจะยกเลิกการเปลี่ยนแปลงเหล่านั้นและรับสาขาได้อย่างไรในขณะนี้บนเซิร์ฟเวอร์ระยะไกล
116 git  branch  rollback 

8
ฉันจะเปลี่ยนชื่อสาขา 'master' ของ Git เป็น 'release' ได้อย่างไร
เราต้องการบังคับใช้นโยบายใหม่สำหรับโครงการของเราที่ตอนนี้สาขาหลักถูกเรียกว่าสาขาเผยแพร่เพื่อให้แน่ใจว่าสาขานี้จะใช้งานได้ชัดเจนยิ่งขึ้น โดยธรรมชาติแล้วเราจะมีการพัฒนาและเผยแพร่สาขาผู้สมัครด้วยเช่นกัน ฉันเข้าใจว่าฉันสามารถเปลี่ยนชื่อสาขาหลักในเครื่องได้โดยใช้สิ่งต่อไปนี้: git branch -m master release อย่างไรก็ตามนั่นเป็นเพียงในพื้นที่เท่านั้น แม้ว่าฉันจะดันสิ่งนี้ไปที่รีโมต HEAD ก็ยังชี้ไปที่สาขาหลักระยะไกล ฉันต้องการกำจัดสาขาหลักอย่างสมบูรณ์และทำให้สาขาท้องถิ่นเริ่มต้นเมื่อโคลนเริ่มต้นปล่อย ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร? ดูเหมือนว่าเนื่องจากต้นทางอยู่บนเซิร์ฟเวอร์Gitoriousฉันจึงได้รับข้อผิดพลาดในการลบสาขาหลัก ฉันกำลังพยายามดูว่าสามารถเปลี่ยนแปลงได้หรือไม่เพื่อให้สาขาเริ่มต้นคือ 'release'

3
ยอมรับการเปลี่ยนแปลงไปยังสาขาอื่นที่ไม่ใช่สาขาที่เช็คเอาต์ในปัจจุบันด้วยการโค่นล้ม
ฉันได้ทำการตรวจสอบโค้ดจากสายการพัฒนาและพบว่าการเปลี่ยนแปลงที่ทำอาจทำลายการเปลี่ยนแปลงและจำเป็นต้องย้ายไปยังสาขาทดลองก่อนที่จะยอมรับโครงสร้างการพัฒนาหลัก อย่างไรก็ตามฉันไม่ได้ตรวจสอบสาขาทดลองและฉันไม่ต้องการสูญเสียการเปลี่ยนแปลงที่ทำไปแล้ว มีวิธีที่จะยอมรับการเปลี่ยนแปลงในโฟลเดอร์การทำงานไปยังสาขาอื่นนอกเหนือจากที่เช็คเอาต์ไว้หรือไม่

6
เหตุใดฉันจึงควรใช้แท็กเทียบกับสาขารุ่น / รุ่นเบต้าในการกำหนดเวอร์ชัน
ฉันใช้ git มาประมาณหนึ่งปีแล้วและต้องการใช้การแท็กเพื่อให้แท็กคอมมิตในเวอร์ชันต่างๆ ฉันพบข้อมูลมากมายเกี่ยวกับคำสั่งที่จะใช้ในการทำงานกับแท็ก แต่สิ่งที่ฉันอยากรู้คือทำไมต้องใช้การแท็กเลยถ้าฉันสามารถสร้างสาขาใหม่ที่เรียกว่า1.1.0และไม่ต้องวุ่นวายใจโดยรวม ชุดคำสั่ง git ใหม่? ต้องมีเหตุผลที่ดีหลายประการในการติดแท็กแทนที่จะแยกเป็นสาขา แต่ฉันอยากรู้ว่าข้อดีเหล่านั้นคืออะไร
114 git  branch  git-tag 

1
git remote prune - ไม่แสดงกิ่งก้านที่ถูกตัดออกมากเท่าที่ฉันคาดไว้
จากหน้าคน: Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in "remotes/<name>". ดังนั้นฉันจึงเอากิ่งก้านออกโดยใช้ git push origin :staleStuff แล้วก็วิ่ง git remote prune origin อย่างไรก็ตามมีการตัดกิ่งในท้องถิ่นเพียงสาขาเดียว สาขาเหล่านี้บางแห่งสร้างขึ้นโดยฉันบางสาขาโดยเพื่อนร่วมงาน นี่แสดงว่าฉันไม่ได้ติดตามสาขาเหล่านั้นอย่างถูกต้องตั้งแต่แรกหรือไม่?

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