aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git word-diff: đọc thay đổi từng từ trong một dòng tài liệu dài

Suong Nguyen by Suong Nguyen
11/11/2026
in Hướng dẫn
0
585
SHARES
3.2k
VIEWS
Summarize with ChatGPTShare to Facebook

Một đoạn README dài một dòng chỉ đổi một thời hạn, nhưng diff thông thường tô cả dòng cũ và dòng mới. Bạn có thể đọc kỹ hai dòng, hoặc yêu cầu Git thể hiện phần khác nhau ở mức từ để định vị chỗ cần review nhanh hơn.

Bài này dùng git diff --word-diff=plain trên một repository tạm. Không sửa repository đang làm việc, không tạo remote và không đẩy commit. Mục tiêu là đọc thay đổi, không thay thế kiểm thử ý nghĩa của tài liệu.

Điều kiện và phạm vi

Ví dụ đã chạy bằng Git 2.54.0 ngày 11/11/2026, với cấu hình Git hệ thống và global được cô lập cho fixture kiểm tra. Các lệnh dưới đây phù hợp shell Bash và tạo dữ liệu minh họa trong thư mục tạm mới.

Tài liệu Git mô tả cách tách từ mặc định theo khoảng trắng. Chế độ plain đánh dấu phần bỏ bằng [-...-] và phần thêm bằng {+...+}. Vì dấu phân cách không được escape khi đã xuất hiện trong đầu vào, output có thể mơ hồ. Đừng dùng định dạng này làm giao thức phân tích dữ liệu tự động.

1. Tạo thay đổi nhỏ trong một dòng dài

demo_dir=$(mktemp -d)
git -C "$demo_dir" init -q
printf '%s\n' 'Review the draft within three working days.' > "$demo_dir/guide.txt"
git -C "$demo_dir" add guide.txt
git -C "$demo_dir" -c user.name='Demo' -c user.email='[email protected]' commit -qm 'Add guide'
printf '%s\n' 'Review the draft within five working days.' > "$demo_dir/guide.txt"
git -C "$demo_dir" --no-pager diff --no-color -- guide.txt
git -C "$demo_dir" --no-pager diff --no-color --word-diff=plain -- guide.txt

Trong fixture, unified diff có một dòng bỏ và một dòng thêm. Word diff cho dòng nội dung Review the draft within [-three-]{+five+} working days.. Bạn thấy ngay phần đổi thời hạn mà không cần đoán từ vị trí con trỏ.

Lệnh chỉ đọc diff không stage file và không tạo commit mới. Sau khi xem, git -C "$demo_dir" status --short vẫn thể hiện file bị sửa trong working tree. Việc chuyển cách trình bày không thay đổi bản chất dữ liệu đang review.

2. Chọn đúng hai phía trước khi đổi cách hiển thị

git -C "$demo_dir" add guide.txt
git -C "$demo_dir" --no-pager diff --no-color --word-diff=plain -- guide.txt
git -C "$demo_dir" --no-pager diff --no-color --cached --word-diff=plain -- guide.txt

Sau khi stage, lệnh diff đầu trong block này không có nội dung vì working tree và index giống nhau. Lệnh có --cached vẫn cho thay đổi từ three sang five, do nó so index với HEAD. Fixture đã xác nhận cả hai điều kiện đó.

Đây là điểm cần kiểm tra trước khi kết luận “Git không thấy thay đổi”. Tùy chọn word-diff chỉ đổi cách diễn đạt khác biệt. Nó không tự chọn giúp bạn working tree, index hay hai commit mà bạn muốn đối chiếu.

3. Khi thay đổi nằm trong một từ

Nếu đổi một mã như task-123 sang task-124, tách từ theo khoảng trắng có thể đánh dấu cả mã. Bạn có thể thử tùy chọn --word-diff-regex=. để coi từng ký tự khớp regex như một đơn vị so sánh.

Trong lần review thật, hãy bắt đầu với cách mặc định rồi mới thêm regex khi cần. Regex tùy chỉnh có thể bỏ qua những phần không khớp khỏi việc xác định khác biệt. Nếu regex chỉ khớp chữ và số, dấu câu quan trọng có thể không được trình bày như bạn mong đợi.

Bài này không chạy fixture Unicode theo grapheme, diff driver tùy chỉnh hay thuật toán riêng. Đừng suy ra rằng một ký tự regex luôn tương đương một ký tự người dùng nhìn thấy trong mọi ngôn ngữ.

Kiểm tra kết quả và dọn fixture

Đọc cả câu sau khi xem phần đánh dấu: đổi three thành five có đúng quyết định sản phẩm không? Word diff giúp tìm chỗ đổi, không thể xác nhận chính sách thời hạn. Với tài liệu lớn, kiểm tra thêm heading, liên kết và các đoạn lân cận.

Thư mục thử nằm tại giá trị của demo_dir; bạn có thể mở nó để xem file và xóa riêng thư mục đó khi đã xong. Không thay đường dẫn bằng repository thật để “thử nhanh” những thao tác stage hoặc commit. Bài không cần lệnh reset, clean hay thay lịch sử.

Kết luận

Word diff hữu ích khi một dòng dài chỉ đổi vài từ. Chọn đúng phạm vi so sánh, hiểu dấu đánh dấu và luôn đọc lại ý nghĩa cả câu trước khi duyệt.

Nguồn tham khảo

  • Git: git-diff và word-diff

Tags: Code reviewDocumentationGit
SummarizeShare234
Suong Nguyen

Suong Nguyen

Related Stories

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git log –follow: đọc tiếp lịch sử của một file sau khi đổi tên

by Suong Nguyen
10/11/2026
0

Dựng ba commit để so sánh log theo đường dẫn hiện tại với log --follow và tìm lại phần lịch sử trước lần đổi tên file.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git revert: tạo commit đảo thay đổi cũ và giữ phần việc đến sau

by Suong Nguyen
09/11/2026
0

Thực hành revert một commit bật tính năng trong repository tạm, xác nhận commit mới được thêm và thay đổi độc lập đến sau vẫn còn.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git clean: xem trước file sẽ xóa và phân biệt -x với -X

by Suong Nguyen
08/11/2026
0

Thực hành git clean trong repository tạm để đọc dry-run, nhận biết file ignored và giới hạn thao tác vào một thư mục cụ thể.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git diff A..B và A…B: so hai snapshot hay phần nhánh B thay đổi?

by Suong Nguyen
07/11/2026
0

Tạo hai nhánh cùng tiến lên để thấy vì sao diff hai đầu nhánh có thể chứa thay đổi chỉ xuất hiện ở main.

0 0 votes
Article Rating
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • React Native: thông báo nội dung đổi cho TalkBack bằng accessibilityLiveRegion
  • Promise.finally: return giá trị mới có thay kết quả của chuỗi không?
  • Android TextUtils.isEmpty không loại chuỗi toàn khoảng trắng

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • Phỏng vấn
  • React Native
  • Uncategorized

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply