ลบสาขาใน Bitbucket


136

ฉันได้สร้างสาขามากมายในที่เก็บของเรา สาขาเหล่านั้นมีไว้สำหรับการทดสอบก่อนที่จะถูกดึงไปยังต้นแบบ ตอนนี้ฉันเห็นมันมากมายในรายการและพวกเขาจะไม่ใช้มันอีก จะลบสาขาเหล่านั้นไปยัง Bitbucket โดยตรงได้อย่างไร?

คำตอบ:


226

หากสาขาเป็นเฉพาะในพื้นที่คุณสามารถใช้-dหากสาขานั้นถูกรวมเข้าด้วยกันเช่น

git branch -d branch-name

หากสาขามีรหัสที่คุณไม่เคยวางแผนที่จะรวมให้ใช้-Dแทน

หากสาขาอยู่ใน repo ต้นน้ำ (บน Bitbucket) คุณสามารถลบการอ้างอิงระยะไกลโดย

git push origin :branch-name

นอกจากนี้หากคุณอยู่บนเว็บไซต์ Bitbucket คุณสามารถลบสาขาที่คุณผลักดันได้โดยไปที่แท็บสาขาคุณลักษณะภายใต้Commitsบนไซต์ คุณจะพบไอคอนจุดไข่ปลา คลิกที่แล้วเลือกสาขาลบ ต้องแน่ใจว่าคุณต้องการยกเลิกการเปลี่ยนแปลงทั้งหมดที่นั่น!

ป้อนคำอธิบายภาพที่นี่


2
ถ้าฉันเรียกใช้ 'git branch -r' ฉันสังเกตเห็นว่า BB ไม่ได้ลบสาขาออกจากเซิร์ฟเวอร์ ไม่ปรากฏใน GUI อีกต่อไป แต่จะแสดงบนเซิร์ฟเวอร์ git
jersey bean

37

สำหรับการลบสาขาออกจาก Bitbucket

  1. ไปที่ภาพรวม (ที่เก็บของคุณ> สาขาในแถบด้านข้างทางซ้าย)
  2. คลิกจำนวนสาขา (ซึ่งจะแสดงรายชื่อสาขา)
  3. คลิกที่สาขาที่คุณต้องการลบ
  4. ที่มุมบนขวาให้คลิกจุด 3 จุด (นอกเหนือจากปุ่มผสาน)
  5. มีตัวเลือก "ลบสาขา" หากคุณมีสิทธิ์

1
'ภาพรวม' อยู่ที่ไหน? หากคุณหมายถึงแหล่งที่มาฉันไม่เห็นตัวเลือก 'ลบสาขา' ภายใต้ ...
niico

7
ขั้นตอนที่ 1 ควรเป็น "ไปที่ repo ของคุณแล้วคลิก" สาขา "ในแถบด้านข้างทางซ้าย"
Noumenon

19

นอกจากคำตอบที่ได้รับจาก @Marcus แล้วคุณยังสามารถลบสาขาระยะไกลผ่านทาง:

git push [remote-name] --delete [branch-name] 

8

ในBitbucketไปที่สาขาในเมนูด้านซ้ายมือ

  1. เลือกสาขาของคุณที่คุณต้องการลบ
  2. ไปที่คอลัมน์การดำเนินการคลิกที่จุดสามจุด (... ) แล้วเลือกลบ

7

ฉันสามารถลบสาขาส่วนใหญ่ของฉันได้ แต่มีสาขาหนึ่งเป็นแบบนี้และฉันไม่สามารถลบได้:

ป้อนคำอธิบายภาพที่นี่

กลับกลายเป็นคนที่ได้ตั้งBranch permissionsภายใต้และจากที่นั่นไม่ได้ตรวจสอบSettings Allow deleting this branchหวังว่านี่จะช่วยใครบางคนได้

ป้อนคำอธิบายภาพที่นี่

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

ป้อนคำอธิบายภาพที่นี่


จะหา "การตั้งค่า" ได้ที่ไหน ฉันต้องลบสาขาหลักหรือไฟล์ทั้งหมดในนั้น ฉันต้องทำอย่างไร?

3

ขั้นตอนที่ 1: เข้าสู่ระบบในBitbucket

ขั้นตอนที่ 2: เลือกที่เก็บของคุณในรายการที่เก็บ ป้อนคำอธิบายภาพที่นี่

ขั้นตอนที่ 3: เลือกสาขาในเมนูด้านซ้ายมือ ป้อนคำอธิบายภาพที่นี่

ขั้นตอนที่ 4: จุดเคอร์เซอร์ที่สาขาคลิกที่จุดสามจุด (... ) เลือกลบ (ดูในภาพร้อง) ป้อนคำอธิบายภาพที่นี่


2

หากคุณใช้ pycharm IDE สำหรับการพัฒนาและคุณได้เพิ่ม Git เข้าไปแล้ว คุณสามารถลบสาขาระยะไกลจาก pycharm ได้โดยตรง จาก VCS แถบเครื่องมือ -> Git -> สาขา -> เลือกสาขา -> และลบ มันจะลบออกจากเซิร์ฟเวอร์ git ระยะไกล


2

ฉันได้เขียนสคริปต์เล็ก ๆ นี้เมื่อจำนวนสาขาใน repo ของฉันเกินหลายร้อย ฉันไม่รู้เกี่ยวกับวิธีการอื่น ๆ (กับ CLI) ดังนั้นฉันจึงตัดสินใจใช้ซีลีเนียมโดยอัตโนมัติ เพียงแค่เปิดเว็บไซต์ Bitbucket ไปที่ Branches เลื่อนหน้าลงไปจนสุดแล้วคลิกที่เมนูตัวเลือกสาขาทั้งหมด -> คลิกปุ่มลบ -> คลิกใช่ สามารถปรับแต่งให้คงสาขา N (100 - ค่าเริ่มต้น) สุดท้ายและข้ามสาขาที่มีชื่อเฉพาะได้ (master, develop - default, อาจมากกว่านี้) หากสิ่งนี้เหมาะกับคุณคุณสามารถลองวิธีนั้นได้

https://github.com/globad/remove-old-branches

สิ่งที่คุณต้องมีคือโคลนที่เก็บดาวน์โหลด Chrome-webdriver เวอร์ชันที่เหมาะสมป้อนค่าคงที่ไม่กี่อย่างเช่น URL ไปยังที่เก็บของคุณและเรียกใช้สคริปต์

รหัสง่ายพอที่จะเข้าใจ หากคุณมีคำถามใด ๆ โปรดเขียนความคิดเห็น / สร้างปัญหา


1

ลองใช้คำสั่งนี้มันจะล้างสาขาทั้งหมดที่รวมเข้ากับdevelopสาขา

for i in `git branch -r --merged origin/develop| grep origin | grep -v '>' \
   | grep -v master | grep -v develop | sed -E "s|^ *origin/||g"`; \
do \
   git push origin $i --delete; \
done

0

ในAndroid Studioตัวเลือกจะอยู่ที่มุมขวาของ IDE:

  • เปลี่ยน / ชำระเงินสาขาในพื้นที่อื่น
  • ลบสาขาภายในที่ไม่ต้องการ (เช่น v0.0.1 ... )
  • ลบสาขาที่ห่างไกลที่ไม่พึงประสงค์ (เช่นต้นกำเนิด / v0.0.1 ... ) - ขั้นตอนนี้จะลบสาขาใน BitBucket ถ้าสาขาจะไม่สามารถป้องกันได้ที่จะถูกลบและพวกเขาจะไม่ได้เป็นสาขาหลัก

0

หากคุณชอบความสนุกสนานคุณสามารถไปที่หน้ารายชื่อสาขาของคุณ (เช่นรวม) และเรียกใช้ในคอนโซลจาวาสคริปต์:

document.querySelectorAll('tr td div a:first-child').forEach(function(item) { fetch('https://bitbucket.org/snippets/new?owner=<yourprofilenick>', {'credentials': 'same-origin'}).then((response) => {return response.text()}).then(function(string) { return /'csrfmiddlewaretoken' value='(.*)'/g.exec(string)[1] }).then(function(csrf) { if (!~item.innerText.indexOf('/')) return; 
 fetch(`https://bitbucket.org/!api/2.0/repositories/<your_organization_path>/refs/branches/${item.innerText}`, {headers: {"x-csrftoken": csrf}, credentials: "same-origin", method: 'DELETE'}).then(() => console.log(`${item.innerText} DELETED!`)) }) })

ก่อนออกวิ่ง

  • แทนที่<yourprofilenick>ด้วย BitBucket nick ของคุณ
  • แทนที่<your_organization_path>ด้วยเส้นทางองค์กรของคุณ

มันทำงานอย่างไร

ก่อนอื่นเราต้องมีเพจที่มีโทเค็น CSRF ในแหล่งที่มาของเพจดังนั้นฉันจึงเลือก:

https://bitbucket.org/snippets/new?owner=<yourprofilenick>

จากนั้นสำหรับแต่ละสาขา (ในรายชื่อสาขา) จะได้รับโทเค็น CSRF และลบสาขานั้น

ระวัง

อย่าลืมป้องกันสาขาที่ละเอียดอ่อนก่อนที่จะลบในการตั้งค่า repo

จะไม่ลบสาขาหลัก

ข้อมูลเพิ่มเติม

คุณต้องเข้าสู่ระบบ

จะลบเฉพาะสาขาที่มองเห็นได้ในหน้านั้น (ดังนั้นหากต้องการลบสาขาที่เหลือคุณต้องไปที่หน้าถัดไป)

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