ฉันจะยอมรับการเปลี่ยนแปลงบางอย่างกับไฟล์ แต่ไม่ใช่ไฟล์อื่นใน VSCode ได้อย่างไร


139

VSCode มีการรวมคอมไพล์ที่ยอดเยี่ยม แต่ฉันไม่สามารถหาวิธีทำการคอมมิตบางส่วนได้ โดยทั่วไปฉันต้องการสามารถเลือกการเปลี่ยนแปลงเฉพาะในไฟล์ของฉันและจัดลำดับการเปลี่ยนแปลงโดยไม่ต้องจัดเตรียมไฟล์ทั้งหมด ฟังก์ชันนี้รองรับโดย git CLI, Github native apps และ Atom plugins

ส่วนใหญ่ให้แน่ใจว่าฉันไม่ได้พลาดเพียงบางสิ่งบางอย่างก่อนที่จะเปิดตั๋วสำหรับมัน

คำตอบ:


212
  • เปิดมุมมอง Source Control จากนั้นคลิกไฟล์ที่เปลี่ยนแปลงเพื่อเปิดการเปรียบเทียบ

  • เลือกเส้นที่คุณต้องการแสดง

  • คลิก '...' Stage Selected Rangesแล้ว

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


45
ในกรณีที่มีคนอื่นสับสนเหมือนฉัน: ภาพหน้าจอนี้หมายถึง···ที่มุมขวาบนของตัวแก้ไขไม่ใช่···ที่ด้านบนของแผง git ทางด้านซ้าย
waldyrious

4
หากสิ่งนี้ส่งกลับข้อผิดพลาด " Git: Illegal value forline " แสดงว่ามีรายงานสองสามครั้งใน GitHub แต่ก็ยังไม่ได้รับการแก้ไข ในกรณีนี้เพียงแค่สลับ "มุมมองแบบอินไลน์" ก็จะใช้งานได้ ที่มา
Marc.2377

2
ดังที่ได้กล่าวไว้โดย @Dimitris คำสั่งนี้อยู่ใน Command Palette ด้วยดังนั้นคุณไม่จำเป็นต้องอยู่ในมุมมอง Source Control
eatcrayons

2
โปรดทราบว่าขั้นตอนนี้ทั้งบรรทัดหากคุณต้องการจัดลำดับส่วนของบรรทัดฉันเดาว่ามันกลับไปที่get add -iการแก้ไขแบบโต้ตอบ ...
Zarepheth

97

⚡สรุปทุกอย่างในโพสต์นี้ด้วย gif

  1. ตรวจสอบว่าคุณอยู่ในมุมมองตัวควบคุมแหล่งที่มาเพื่อใช้คุณลักษณะนี้
  2. เลือกช่วงของรหัส
  3. เปิด···ที่มุมขวาบนของตัวแก้ไข (ไม่ใช่···ที่ด้านบนของแผงคอมไพล์ทางด้านซ้าย)
  4. คุณยังสามารถกดCOMMAND (⌘)+ K+ COMMAND (⌘)+ Sเพื่อเปิดแป้นพิมพ์ลัดและค้นหาrangeแล้วตั้งค่าแป้นพิมพ์ลัดสำหรับการดำเนินการนี้

VSCode Range เลือก Commit

ความสงบ! ✌️


ยากที่จะเลือกบรรทัดที่ถูกลบ
duXing

45

ปรับปรุง: ตุลาคม 2017:ใน VSCode ล่าสุด ณ ตุลาคม 2017 (รุ่น 1.18) คุณสามารถจริงเส้นขั้นตอนที่เฉพาะเจาะจงเรื่องง่ายเช่นเดียวกับที่คุณจะทำมันด้วย git add -pCLI คุณต้องคลิกที่เส้นแก้ไขจากด้านข้างเช่นดูความแตกต่างและนำไปใช้หรือไม่

ดูการเปลี่ยนแปลงที่รอดำเนินการและดำเนินการบางส่วนในตัวแก้ไข


5
มีสองสิ่งที่ขาดหายไป ... คุณไม่สามารถแยก hunks และคุณไม่สามารถแก้ไข hunks ด้วยตนเองได้ ... :(
Robert Koritnik

12

ตัวเลือกนี้ถูกย้ายไปที่จานสี:

shift + command + P และพิมพ์ "stage selected range"


ดูเหมือนจะไม่ทำงานเมื่ออยู่ในโหมดกลุ่ม
baxx

@baxx ทำไมถึงคาดหวังแบบนั้น?
tejasvi88

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