Có thể git-checkout một dòng thay vì toàn bộ tệp không?


86

Nếu tôi đã sửa đổi một số dòng của một tệp được phiên bản, liệu có thể hoàn tác các thay đổi của một dòng bằng dòng lệnh không?

Giống như tôi sẽ làm cho toàn bộ tệp với:

git checkout /path/to/file.extension

nhưng làm điều gì đó như, nói

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

điều này có khả thi không?

Câu trả lời:


124

Bạn có thể sử dụng git checkout -pđể xem từng phần nhỏ riêng lẻ và quyết định xem nên kiểm tra chúng hay để nguyên (và điều đó cũng cần một đối số đường dẫn tùy chọn nếu bạn muốn thu hẹp nó hơn nữa).


Phương pháp này cung cấp các phần quá lớn, thay vì các dòng ... :(
betontalpfa

46

Để giải thích rõ hơn câu trả lời của Matt, hãy git checkout --patch -- <path argument>bắt đầu một chế độ tương tác với các tùy chọn sau:

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

Các y n secác tùy chọn là một nơi tốt để bắt đầu.

Xem thêm:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.