เช็คเอาต์คอมไพล์ Eclipse (aka, ย้อนกลับ)


139

เป็นไปได้ที่จะทำเทียบเท่าgit checkoutจากภายใน Eclipse โดยใช้ปลั๊กอิน EGit?

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

ฉันไม่พบรายการเมนูใด ๆ ภายใต้ทีมที่ดูเหมือนจะเช็คเอาต์หรือย้อนกลับ ฉันใช้ EGit 0.6.0


6
คอมไพล์ครับ! มันจะไม่แสดงสิ่งที่คุณกำลังจะเปลี่ยนกลับก่อนที่คุณจะเปลี่ยนกลับ การโค่นล้มจะให้หน้าต่างการยืนยันที่ดีพร้อมรายการไฟล์ที่คุณกำลังจะเปลี่ยนกลับ ดังนั้นคุณสามารถเลือกสิ่งที่คุณต้องการเปลี่ยนหรือยกเลิกได้ทันที อัปยศในคอมไพล์ที่ทรงพลังที่สุด
JohnPristine

5
@JohnPristine ปลั๊กอินคอมไพล์ Eclipse (เช่นนั้น) เป็นปลั๊กอินที่จะแสดงหน้าต่างยืนยันแทนที่จะเป็นคอมไพล์เอง
Brad Cupit

คลิกขวาไฟล์ที่คุณต้องการเปลี่ยนกลับจากนั้นเลือก "เขียนทับ" และฉันเห็นด้วย Git ดูด
DhafirNz

ในปี 2559 eGit เวอร์ชัน 4.5.0 ฉันไม่เห็น 'เขียนทับ' ดูเหมือนว่าจะเป็น 'แทนที่ด้วย ... ' 'การแก้ไขส่วนหัว'
Ed Randall

คำตอบ:


274

ซึ่งสามารถทำได้ผ่านเมนูบริบท "แทนที่ด้วย / ไฟล์ในดัชนี Git" ในไฟล์ในมุมมองแพคเกจ


5
เกิดอะไรขึ้นถ้าไฟล์ไม่มีอยู่ในพื้นที่ทำงาน (ยัง / อีกต่อไป)?
zedoo

@zedoo หากไฟล์ไม่มีอยู่เปิดมุมมอง "Git Staging" ให้คลิกขวาที่ไฟล์ที่ถูกลบในรายการ "Unstaged Changes" และเลือก "แทนที่ด้วย HEAD Revision"
Vlasta Dolejs

42

คุณสามารถทำได้โดยการรีเซ็ต (ยาก) ในเมนูบริบทของโครงการให้เลือกทีม> รีเซ็ตเป็น ... เลือก "HEAD" และ "Hard" เป็นประเภทรีเซ็ต

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


ฉันเพิ่งค้นพบวิธีที่ยากลำบากในการคอมมิทยังทำสิ่งเดียวกัน - คอมมิทไฟล์ทั้งหมดแทนที่จะเป็นไฟล์ที่เลือก
Steve Kuo

ถูกต้อง แต่อย่างน้อยคุณสามารถยกเลิกการเลือกไฟล์ในกล่องโต้ตอบการกระทำ ... Btw: ฉันได้ยื่นข้อผิดพลาดสำหรับการตั้งค่า bugs.eclipse.org/bugs/show_bug.cgi?id=295423
simon

5
การสนับสนุน Git ใน Eclipse นั้นด้อยกว่า CVS และ SVN เพราะสิ่งนี้! ฟังก์ชั่น "แทนที่ด้วยล่าสุดจากหัว" ของ CVS เป็นสิ่งสำคัญสำหรับฉัน
kosoant

@kosoant Eclipse สามารถทำได้ด้วย Git เช่นกัน ดูคำตอบนี้
Brad Cupit

3
เขาถามอย่างชัดเจนเกี่ยวกับการคืนค่าไฟล์เดียวไม่ใช่ทั้งหมด
Zofren

18

ในเวอร์ชัน Eclipse: 3.7.0

ใน "มุมมองการซิงโครไนซ์ทีม" -> คลิกขวาที่ไฟล์ / โฟลเดอร์ในมุมมองซิงโครไนซ์ -> เขียนทับ


นี่เป็นหนึ่งในวิธีที่ง่ายที่สุดในการแสดง มีป๊อปอัปเพื่อยืนยันว่าคุณต้องการแทนที่การเปลี่ยนแปลงในเครื่องของคุณ
Karidrgn

นี่เป็นการลบไฟล์ใหม่การเปลี่ยนแปลงแบบไม่สเตจซึ่งเป็นสิ่งที่ฉันต้องการ
Katu

12

ความเป็นไปได้อีกอย่างก็คือการใช้มุมมอง Git Staging :

  • เปิดมุมมองGit Stagingโดยกด Ctrl + 3 หรือ Command + 3 แล้วพิมพ์
    staging
  • ในกรณีที่มุมมองไม่ได้แสดงที่เก็บข้อมูลของคุณให้คลิกที่โครงการหรือไฟล์
  • ตอนนี้คุณควรจะเห็นไฟล์ที่คุณปรับเปลี่ยนในunstaged เปลี่ยนแปลงส่วน
  • คลิกสองครั้งที่ไฟล์ที่ไม่มีการจัดฉาก
  • ตอนนี้คุณจะเห็นมุมมองการเปรียบเทียบกับเวอร์ชันของคุณทางด้านซ้ายและเวอร์ชันก่อนการเปลี่ยนแปลงทางด้านขวา

ตอนนี้หากต้องการยกเลิกการเปลี่ยนแปลงบางอย่างในไฟล์ให้ทำดังต่อไปนี้:

  • ในมุมมองการเปรียบเทียบให้เลือกหนึ่งในสายการเปลี่ยนแปลงของคุณ
  • เลือกรายการแถบเครื่องมือคัดลอกการเปลี่ยนแปลงปัจจุบันจากขวาไปซ้าย

สิ่งนี้จะทำให้ด้านซ้ายสอดคล้องกับด้านขวาสำหรับการเปลี่ยนแปลงนี้ บันทึกไฟล์เพื่อเลิกทำการเลิกทำ

หากต้องการเลิกทำการเปลี่ยนแปลงทั้งหมดของคุณ:

  • ในมุมมอง staging คลิกขวาที่ไฟล์ที่ไม่มีการจัดฉาก
  • เลือกแทนที่ด้วยไฟล์ในดัชนี Git

คุณสามารถเลือกไฟล์ที่ไม่มีการจัดเก็บมากกว่าหนึ่งไฟล์จากนั้นคลิกขวา


ฉันสงสัยว่าทำไมคำตอบนี้จึงมีคะแนนน้อยลง ฉันต้องการทำเครื่องหมายที่ดีที่สุด; จะไม่ได้คิดว่าตัวเอง ขอบคุณ @robinst
HarsH

11

ย้อนกลับไฟล์เดียวโดยไปที่ หน้าต่าง> แสดงมุมมอง> อื่น ๆ > การจัดเตรียม Git> การเปลี่ยนแปลงที่ไม่จัดเตรียม

เลือกไฟล์ที่คุณต้องการเปลี่ยนกลับ คลิกขวาและเลือกแทนที่ด้วยการแก้ไข HEAD

โปรดทราบว่าขั้นตอนนี้ไม่สามารถเลิกทำได้

(ฉันใช้ Eclipse เวอร์ชั่น: 3.7.2 Egit เวอร์ชั่น 2.3.1.201302201838-r)


7

สำหรับการคืนค่าคุณสามารถคลิกขวาที่ไฟล์ / ไดเรกทอรีที่คุณต้องการจากนั้นเลือกแทนที่ด้วย -> รุ่น HEAD


การใช้กับปลั๊กอิน Git ใด ๆ ใน Eclipse หรือไม่? มันทำงานได้ดีกับ Egit
johnnieb

อัปเดต: ใน Eclipse Mars และ Luna SR2 (builtin Git) มันทำงานเช่นนี้
Mag

4

เปิดการซิงโครไนซ์ทีม ค้นหาไฟล์และคลิกขวา -> เขียนทับ

UPDATE

ใน Eclipse Luna (4.4.2) เปิดการซิงโครไนซ์ทีม ค้นหาไฟล์และคลิกขวา -> "เปลี่ยนกลับ ... "


3

มีการใช้งานจริง แต่อาจไม่ชัดเจน:

  • ตรวจสอบให้แน่ใจว่าเปิดใช้งาน quickdiff ด้วยการแก้ไข git และพื้นฐานของ quickdiff คือ HEAD (นี่คือค่าเริ่มต้น)
  • เปิดไฟล์ที่คุณต้องการเปลี่ยนกลับ
  • เลือกทุกอย่าง (Ctrl-A)
  • คลิกขวาในแถบ quickdiff
  • เลือก "ยกเลิกการเลือก"
  • บันทึก

btw, ย้อนกลับใน git lingo หมายถึงการสร้างคอมมิทใหม่เพื่อย้อนการคอมมิชชันก่อนหน้านี้


หากต้องการทำงานกับ quickdiff ที่นี่เป็นคำแนะนำแบบย่อ: wiki.eclipse.org/EGit/User_Guide/State#Quickdiff
Valentin Despa

1

วิธีแปลงไฟล์ทั้งหมดเป็นข้อมูลในที่เก็บ:

คลิกที่โฟลเดอร์ที่คุณต้องการแก้ไขและไปที่ GitStaging ป้อนคำอธิบายรูปภาพที่นี่

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