เป็นไปได้ไหมที่จะ git-checkout บรรทัดเดียวแทนที่จะเป็นทั้งไฟล์


88

หากฉันแก้ไขไฟล์เวอร์ชันหลายบรรทัดเป็นไปได้ไหมที่จะเลิกทำการเปลี่ยนแปลงของบรรทัดตามบรรทัดคำสั่ง

เช่นเดียวกับที่ฉันทำกับทั้งไฟล์ด้วย:

git checkout /path/to/file.extension

แต่ทำอะไรบางอย่างเช่นพูด

git checkout /path/to/file.extension --line 10

เป็นไปได้ไหม

คำตอบ:


126

คุณสามารถใช้git checkout -pเพื่อดูกลุ่มก้อนแต่ละตัวและตัดสินใจว่าจะตรวจสอบหรือปล่อยให้เป็นไปตามที่เป็นอยู่ (และจะใช้อาร์กิวเมนต์พา ธ ที่เป็นทางเลือกเช่นกันหากคุณต้องการ จำกัด ให้แคบลงอีก)


วิธีนี้ให้ชิ้นส่วนที่ใหญ่เกินไปแทนที่จะเป็นเส้น ... :(
betontalpfa

47

ในการอธิบายรายละเอียดเกี่ยวกับคำตอบของ Matt ให้git checkout --patch -- <path argument>เริ่มโหมดโต้ตอบด้วยตัวเลือกต่อไปนี้:

y - stage this hunk
n - do not stage this hunk

q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk

s - split the current hunk into smaller hunks
e - manually edit the current hunk

? - print help

y n sและeตัวเลือกที่ดีสำหรับการเริ่มต้น

ดูสิ่งนี้ด้วย:

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