Mẹo thao tác với thay đổi với git add
Git
59
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.
238 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
75 13
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 hơn 3 năm trước
75 13
White
45 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 hơn 3 năm trước
45 15
White
41 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 hơn 4 năm trước
41 7
Bài viết liên quan
White
2 0
Hôm nay group review một cái tài liệu về version control với mấy đồng nghiệp, một người bạn bảo: Cái đó có gì đâu mà ông viết có vẻ khó khăn vậy,...
Long Nguyễn Xuân viết 10 tháng trước
2 0
White
12 0
Làm việc với git submodule (Ảnh) Đôi lúc ta cần phải sử dụng các repo khác như là một module của dự án hiện tại, nhưng ta lại muốn quản lý nó riê...
Tân Nguyễn viết 12 tháng trước
12 0
White
53 8
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 hơn 4 năm trước
53 8
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
43 bài viết.
238 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á!