ปรับปรุง
หมายเหตุ: เดิมคำตอบนี้เขียนขึ้นโดยคำนึงถึง SourceTree รุ่นเก่ากว่าสำหรับ Windows และตอนนี้ล้าสมัยแล้ว
ดูคำตอบใหม่ของฉันสำหรับเวอร์ชันปัจจุบันของ SourceTree สำหรับ Windows 1.5.2.0 ฉันทิ้งคำตอบนี้ไว้เพื่อจุดประสงค์ทางประวัติศาสตร์
คำตอบเดิม
ในขณะที่ฉันอยู่บน Windows ฉันไม่มีเครื่องมือบรรทัดคำสั่งและฉันรู้วิธีใช้อย่างใดอย่างหนึ่ง :( มันเป็นวิธีเดียวที่จะแยกออกได้หรือไม่ GUI ไม่ครอบคลุมฟังก์ชั่นของ git ทั้งหมด - โปสเตอร์ต้นฉบับ
เกี่ยวกับ Git GUIs, ไม่มีพวกเขาไม่ได้ครอบคลุมทุกฟังก์ชั่นของ Git พวกเขาไม่ได้มาใกล้ ฉันขอแนะนำให้คุณตรวจสอบคำตอบอย่างใดอย่างหนึ่งในฉันจะแก้ไขข้อความกระทำผิดใน Git ได้อย่างไร? Git มีความยืดหยุ่นเพียงพอที่จะมีโซลูชั่นหลายตัว ... จากบรรทัดคำสั่ง
SourceTree อาจมาพร้อมกับ msysgit bash shell แล้วหรืออาจใช้เชลล์คำสั่งมาตรฐานของ Windows ได้ คุณเปิดแบบฟอร์มขึ้นมา SourceTree ด้วยการคลิกที่ปุ่ม Terminal:
คุณตั้งค่าว่า TerminalTree ใดที่ใช้ (bash หรือ Windows) ที่นี่:
วิธีหนึ่งในการแก้ปัญหาใน SourceTree
ดังที่กล่าวมานี่เป็นวิธีหนึ่งที่คุณสามารถทำได้ใน SourceTree เมื่อคุณพูดถึงในความคิดเห็นที่คุณไม่รังเกียจ "ย้อนกลับไปสู่การกระทำผิดพลาด" (ซึ่งฉันถือว่าคุณหมายถึงการรีเซ็ตซึ่งเป็นการดำเนินการที่แตกต่างกันใน Git) จากนั้นนี่คือขั้นตอน:
- ทำการฮาร์ดรีเซ็ตใน SourceTree เป็นการกระทำที่ไม่ดีโดยการคลิกขวาที่มันแล้วเลือก
Reset current branch to this commit
และเลือกตัวเลือกฮาร์ดรีเซ็ตจากรายการแบบหล่นลง
- คลิกปุ่ม Commit จากนั้น
- คลิกที่ช่องทำเครื่องหมายที่ด้านล่างว่า "แก้ไขการกระทำล่าสุด"
- ทำการเปลี่ยนแปลงที่คุณต้องการกับข้อความจากนั้นคลิกกระทำอีกครั้ง Voila!
เกี่ยวกับความคิดเห็นนี้ :
ถ้ามันเป็นไปไม่ได้เพราะมันถูกส่งไปยัง Bitbucket แล้วฉันจะไม่คิดสร้างที่เก็บใหม่และเริ่มต้นใหม่
นี่หมายความว่าคุณเป็นคนเดียวที่ทำงานกับ repo หรือไม่? สิ่งนี้มีความสำคัญเพราะมันไม่สำคัญที่จะเปลี่ยนประวัติของ repo (เช่นแก้ไขการกระทำ) โดยไม่ทำให้เกิดปัญหากับผู้ทำงานร่วมกัน อย่างไรก็ตามสมมติว่าคุณเป็นคนเดียวที่ทำงานใน repo ดังนั้นสิ่งต่อไปที่คุณอยากทำคือบังคับให้ผลักดันประวัติการเปลี่ยนแปลงของคุณไปยังรีโมท
อย่างไรก็ตามโปรดระวังเพราะนั่นเป็นเพราะคุณได้ทำการรีเซ็ตที่ผิดไปจากการกระทำที่ผิดพลาดจากนั้นการบังคับให้คุณทำให้งานทั้งหมดที่เกิดขึ้นก่อนหน้านี้หายไป หากไม่เป็นไรคุณอาจต้องใช้คำสั่งต่อไปนี้ที่บรรทัดคำสั่งเพื่อทำการบังคับแบบพุชเนื่องจากฉันไม่พบตัวเลือกให้ทำใน SourceTree:
git push remote-repo head -f
นอกจากนี้ยังถือว่า BitBucket จะช่วยให้คุณสามารถบังคับไปยัง repo
คุณควรเรียนรู้วิธีการใช้ Git จากบรรทัดคำสั่งอย่างไรก็ตามมันจะทำให้คุณมีความเชี่ยวชาญใน Git มากขึ้น #ProTip ใช้ msysgit และเปิดโหมด Quick Edit ในคุณสมบัติเทอร์มินัลเพื่อให้คุณสามารถดับเบิลคลิกเพื่อเน้นบรรทัดข้อความคลิกขวาเพื่อคัดลอกและคลิกขวาอีกครั้งเพื่อวาง มันค่อนข้างเร็ว