2011-07-26 37 views
19

Khi tôi muốn chia nhỏ một tệp mới thành nhiều lần commit, tôi có thể và sau đó tương tác với các đường dây sân khấu bằng cách sử dụng git gui. Khi tôi thực hiện một sai lầm trong khi dàn dựng, tuy nhiên, git gui sẽ không cho phép tôi unstage dòng cá nhân bởi vì nó là một tập tin mới (mà có vẻ như một lỗi cho tôi). Tất nhiên tôi luôn có thể unstage toàn bộ tập tin và bắt đầu lại, nhưng tôi tự hỏi liệu có một cách hiệu quả hơn để làm như vậy.Cách nhanh nhất để unstage các phần của một tập tin mới trong git là gì?

Tôi đang sử dụng git 1.7.5.


Để làm rõ, câu hỏi này là cụ thể cho mới aka untracked file!

Trả lời

1

Sử dụng fugitive bạn có thể dễ dàng thực hiện việc này. Chỉ cần gọi lệnh :Gdiff và sau đó là giai đoạn và unstage bất cứ điều gì bạn muốn. Bạn thậm chí có thể chỉnh sửa trực tiếp tệp chỉ mục. Tất nhiên, giải pháp này đòi hỏi bạn phải khá thoải mái với vimvimdiff ...

6

Từ kiểu dòng lệnh:

git reset -p 

này sẽ cho phép bạn hunks selectivelty unstage từ chỉ số sử dụng Command- tiêu chuẩn giao diện dòng để quản lý hunks .. Đây là đối diện của git add -p.

CẬP NHẬT

OK, nó sẽ xuất hiện mà bạn không thể có lựa chọn giai đoạn khác nhau hunks khi tập tin là mới. Cho rằng git-gui và trình soạn thảo tiêu chuẩn git hunk đều không cho phép điều này, nó có lẽ là không thể.

1

Tôi chỉ gặp vấn đề tương tự: Tôi vừa mới cam kết một tệp mới và tôi muốn bỏ bớt một số dòng trong tệp đó và có những dòng đó dưới dạng cam kết riêng biệt. Các giải pháp tôi làm việc ra là:

  • Start trên các cam kết rằng thêm tập tin mới
  • Tháo dòng bạn muốn unstage trong file nguồn, giai đoạn những thay đổi đó và git commit -m 'REVERTME'
  • Tạo mới cam kết rằng hoàn nguyên cam kết mới nhất: git revert HEAD
  • Sử dụng cam kết mới đầu tiên, và reword cam kết hoàn nguyên mới nhất là .
0

Một cách dễ dàng khác để sắp xếp việc này là cắt mọi thứ ra khỏi tệp ngoại trừ một dòng mà bạn muốn trong lần commit đầu tiên. Giai đoạn nó và sau đó thêm trở lại phần còn lại của tập tin. Từ đó, bạn có thể đặt các đoạn/đường như bình thường

Các vấn đề liên quan