จะเปลี่ยนกลับไปใช้ 'master' ด้วย git ได้อย่างไร?


135

ฉันได้ทำการกระทำครั้งแรกของฉัน จากนั้นสร้างสาขา (สมมติว่า branch1)

ในสาขานี้ฉันได้สร้างไดเร็กทอรี 'ตัวอย่าง' และยอมรับ ใน GitHub ฉันเห็นสาขาใหม่ของฉันและ 'ตัวอย่าง' ไดเรกทอรีใหม่ที่ฉันได้เพิ่มเข้าไป

ตอนนี้ฉันสงสัยว่าฉันจะ 'ซิงค์' กลับไปเป็นมาสเตอร์ได้อย่างไร ดังนั้นให้ลบโฟลเดอร์ 'ตัวอย่าง' (เนื่องจากไม่มีอยู่ในต้นแบบ)

แก้ไข: find . -type d -empty -exec touch {}/.gitignore \; ได้งาน

คำตอบ:


239

คุณต้องชำระเงินที่สาขา:

git checkout master

ดูแผ่นโกง Gitสำหรับข้อมูลเพิ่มเติม

แก้ไข: โปรดทราบว่าคอมไพล์ไม่ได้จัดการไดเร็กทอรีว่างดังนั้นคุณจะต้องจัดการด้วยตนเอง หากไดเรกทอรีของคุณว่างเปล่าให้ลบออกโดยตรง


"เป็นหลักแล้ว" แต่ไดเรกทอรี "ตัวอย่าง" ของฉันยังคงอยู่ที่นั่น ฉันต้องการซิงค์กับมาสเตอร์ (จึงไม่มีโฟลเดอร์นี้เนื่องจากไม่มีอยู่ในสาขาหลัก)
ดิสโก้

# ในสาขาหลักไม่มีอะไรให้กระทำ (ไดเรกทอรีการทำงานสะอาด)
ดิสโก้

@Disco: ผมเคยมีปัญหานี้ before-- git checkout branch1ถ้ามันแน่นอนไม่ได้ติดตามในดัชนีคุณก็สามารถลบไดเรกทอรีทั้งในประเทศและคุณจะได้รับมันกลับมาเมื่อคุณ
Platinum Azure

1
อืมแย่เกินไป; ไม่มีตัวเลือกสำหรับสิ่งนั้น? ฉันไม่สามารถติดตามไดเร็กทอรีในหัวของฉันได้
Disco

6

ตามGit Cheatsheetคุณต้องสร้างสาขาก่อน

git branch [branchName]

แล้ว

git checkout [branchName]

2
ฉันคิดว่าคุณสามารถตรวจสอบคำถามอีกครั้งได้
eli

2

สำหรับการลบสาขาคุณต้องซ่อนการเปลี่ยนแปลงที่ทำในสาขาหรือคุณต้องยอมรับการเปลี่ยนแปลงที่คุณทำในสาขา ทำตามขั้นตอนด้านล่างหากคุณทำการเปลี่ยนแปลงใด ๆ ในสาขาปัจจุบัน

  1. git stash หรือ git commit -m "XXX"
  2. git checkout master
  3. git branch -D merchantApi

หมายเหตุ: ขั้นตอนข้างต้นจะลบสาขาในเครื่อง


1

ฉันพยายามคิดว่าจะเกิดอะไรขึ้นที่นั่น มีอะไรในโฟลเดอร์ "ตัวอย่าง" ของคุณหรือไม่ Git ไม่ติดตามโฟลเดอร์ว่าง

หากคุณแยกสาขาและเปลี่ยนไปยังสาขาใหม่ของคุณจากนั้นสร้างโฟลเดอร์ใหม่และปล่อยให้ว่างเปล่าจากนั้นทำการ "คอมมิต -a" คุณจะไม่ได้รับโฟลเดอร์ใหม่นั้นในการคอมมิต

ซึ่งหมายความว่าไม่มีการติดตามซึ่งหมายความว่าการตรวจสอบสาขาอื่นจะไม่ลบออก


git เริ่มต้นไดเร็กทอรีของฉัน (/ home / dev) จากนั้นฉันทำการ "กระทำ -a" และส่งไปที่ github จากนั้นฉันก็สร้างสาขาใหม่ สร้างไดเร็กทอรี 'ตัวอย่าง' โดยมีไฟล์บางไฟล์อยู่ภายในและกำหนดสาขา ตอนนี้ฉันต้องการกลับไปที่ขั้นตอนเริ่มต้น (หลัก) โดยไม่มีไดเร็กทอรี 'ตัวอย่าง' ที่ฉันสร้างในสาขาใหม่
ดิสโก้

นอกจากนี้ในสาขาหลักยังไม่มีไดเร็กทอรี 'ตัวอย่าง' (ตามที่ฉันเห็นใน github)
ดิสโก้

อัปเดต: ฉันมีโฟลเดอร์ว่างหนึ่งโฟลเดอร์ภายในไดเร็กทอรีตัวอย่าง นี่คือสาเหตุที่ยังคงแสดงไดเร็กทอรี วิธีกำจัดมันโดยใช้ git
Disco

คุณไม่ทำ git ไม่รู้เกี่ยวกับมัน เพียงแค่ลบมัน การตรวจสอบมาสเตอร์ควรลบไฟล์ใด ๆ ที่อยู่ในสาขา แต่ไม่ใช่ในมาสเตอร์ออกจากไดเร็กทอรีการทำงานของคุณ
Dan Ray

1

จะพาไปที่สาขาต้นแบบ.

git checkout master

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

git checkout [the name of the branch you want to switch to]

ในการสร้างสาขาใหม่ให้ใช้-bเช่นนี้ (ไม่ต้องสนใจวงเล็บเหลี่ยมมันเป็นเพียงจุดประสงค์ในการเน้นเท่านั้น)

git checkout -b [the name of the branch you want to create]

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