Mẹo thao tác với thay đổi với git add
Git
51
White

Lơi Rệ viết ngày 25/08/2015

Bạn có một branch với rất nhiều file được thêm hay thay đổi và bạn muốn git add chúng và nhóm chúng theo từng commit riêng biệt, cách nào hiệu quả nhất?

Mỗi người một kiểu, có người thì dùng các GUI client như GitUp, GitX, Tower để xem các thay đổi rồi nhóm và di chuyển chúng vào staging, còn một số thì vẫn trung thành với CLI đơn thuần với git diffgit add một cách thủ công. Tôi có biết một mẹo đơn giản giúp ai đang phải lặp đi lặp lại bước diff và add trên thông qua lệnh đơn giản:

git add . --patch

Lệnh này sẽ lặp qua tất cả các file mà bạn đã thay đổi và sẽ thông báo lên màn hình thay đổi và hỏi bạn muốn làm gì với các thay đổi đó

vd:

$ git add . --patch
diff --git a/README.md b/README.md
index 26d1882..ddf8523 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 ## Dự án trồng người

-Tôi yêu PHP
+Tôi yêu Ruby

Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? 

Có thể thấy ở trên là git sẽ hỏi bạn có các câu trả lời sau [y,n,q,a,d,/,j,J,g,e,?].

Nếu bạn đồng ý muốn stage file này thì chỉ cần nhập vào y, không thì n.

Hoặc bạn thấy là cần có thay đổi nội dung thì nhập vào e (edit)

Nếu bạn muốn stage thay đổi này và tất cả các thay đổi khác của file thì dùng lệnh a (all)

Và nếu bạn phát hiện thay đổi này là do một ai đó lén lút thay đổi khi bạn đi ra ngoài ăn trưa thì có thể dùng lệnh d để xoá thay đổi này.

Còn nếu bạn muốn thoát hắt khỏi công đoạn này thì chỉ cần dùng tứ khoá q (quit)

Nếu bạn thay đổi 2 file, bạn có thể bỏ qua file và nhảy tới file tiếp bằng lệnh j (jump).

Thêm vào nữa lệnh g cho phép liệt kê các thay đổi (hunk) ra màn hình để bạn chọn nhảy tới:

Stage this hunk [y,n,q,a,d,/,k,K,g,e,?]? g
  1:  -1,6 +1,6          -Tôi yêu PHP
  2:  -46,4 +46,4        -Tôi chẳng thấy có vấn đề gì cho tất cả mọi code vào 1 file
go to which hunk? 

Cuối cùng là lệnh quan trọng nhất, lệnh ?, sẽ liệt kê các lựa chọn với chú thích, nếu bí thì hãy gọi lệnh này :)

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Lơi Rệ

43 bài viết.
206 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
65 12
Sự sống còn của các công ty kỹ thuật phụ thuộc vào nguồn nhân lực chất xám của họ. Thế nên rất thiết yếu cho việc đầu tư xây dựng team có khả năng ...
Lơi Rệ viết gần 2 năm trước
65 12
White
38 7
Trời se se lạnh, Melbourne chuyển mùa, ngồi trong quán cafe bắt đầu một ngày làm việc mới với suy nghĩ tại sao các bạn Việt Nam không muốn tham gia...
Lơi Rệ viết gần 3 năm trước
38 7
White
36 15
Thế nào là làm việc từ xa? Internet, một trong những phát minh vĩ đại nhất của con người thế kỷ 20. Công nghệ này xoả bỏ rào cản vật lý giữa các n...
Lơi Rệ viết 2 năm trước
36 15
Bài viết liên quan
White
48 7
Tôi xin tổng hợp các cách dùng git stash tôi hay sử dụng Lưu lại thay đổi Git stash được sử dụng khi muốn lưu lại các thay đổi chưa commit, thườ...
BB viết gần 3 năm trước
48 7
White
10 2
Xin chào các bạn. Chắc hẳn mỗi chúng ta đều đã từng phát triển app sử dụng API của bên thứ 3, và chắc mọi người đều biết là hầu hết các API service...
Hải Nguyễn viết 1 năm trước
10 2
White
5 7
Thông thường một feature mới thường được làm trên một nhánh (branch) riêng và thường xuyên pull các cập nhật từ nhánh master trong quá trình đấy. S...
Lơi Rệ viết hơn 2 năm trước
5 7
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
43 bài viết.
206 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!