]> git.ipfire.org Git - thirdparty/git.git/blobdiff - po/vi.po
l10n: vi: Updated translation for 2.45
[thirdparty/git.git] / po / vi.po
index d673745ac5b73adc8b2743b53cdfaba9936f2ff4..965e79e96580fa2b2ce69cc04c60e1a159dd4acb 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -2,32 +2,33 @@
 # Bản dịch tiếng Việt dành cho GIT-CORE.
 # This file is distributed under the same license as the git-core package.
 # https://raw.githubusercontent.com/git-l10n/git-po/pot/main/po/git.pot
+# Copyright (C) 2012-2022, Translation Project, Vietnamese Team <http://translationproject.org/team/vi.html>
+# Copyright (C) 2024, Vũ Tiến Hưng <newcomerminecraft@gmail.com>
 # Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2012.
 # Đoàn Trần Công Danh <congdanhqx@gmail.com>, 2020.
 # Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2022.
+# Vũ Tiến Hưng <newcomerminecraft@gmail.com>, 2024.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: git v2.37.0\n"
+"Project-Id-Version: git 2.45\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2022-06-21 20:20+0000\n"
-"PO-Revision-Date: 2022-06-25 08:37+0700\n"
-"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
-"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2024-04-25 18:57+0000\n"
+"PO-Revision-Date: 2024-04-28 14:01+0700\n"
+"Last-Translator: Vũ Tiến Hưng <newcomerminecraft@gmail.com>\n"
+"Language-Team: Vietnamese <https://github.com/Nekosha/git-po>\n"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0\n"
-"X-Language-Team-Website: <http://translationproject.org/team/vi.html>\n"
-"X-Generator: Gtranslator 42.0\n"
 
 #, c-format
 msgid "Huh (%s)?"
 msgstr "Hả (%s)?"
 
 msgid "could not read index"
-msgstr "không thể đọc bảng mục lục"
+msgstr "không thể đọc chỉ mục"
 
 msgid "binary"
 msgstr "nhị phân"
@@ -43,31 +44,31 @@ msgstr "Cập nhật"
 
 #, c-format
 msgid "could not stage '%s'"
-msgstr "không thể đưa “%s” lên bệ phóng"
+msgstr "không thể đưa '%s' lên bệ phóng"
 
 msgid "could not write index"
-msgstr "không thể ghi bảng mục lục"
+msgstr "không thể ghi chỉ mục"
 
-#, c-format, perl-format
+#, c-format
 msgid "updated %d path\n"
 msgid_plural "updated %d paths\n"
 msgstr[0] "đã cập nhật %d đường dẫn\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "note: %s is untracked now.\n"
-msgstr "chú ý: %s giờ đã bỏ theo dõi.\n"
+msgstr "chú ý: đã bỏ theo dõi %s.\n"
 
 #, c-format
 msgid "make_cache_entry failed for path '%s'"
-msgstr "make_cache_entry gặp lỗi đối với đường dẫn “%s”"
+msgstr "make_cache_entry gặp lỗi đối với đường dẫn '%s'"
 
 msgid "Revert"
 msgstr "Hoàn nguyên"
 
 msgid "Could not parse HEAD^{tree}"
-msgstr "Không thể phân tích cú pháp HEAD^{tree}"
+msgstr "Không hiểu cú pháp HEAD^{tree}"
 
-#, c-format, perl-format
+#, c-format
 msgid "reverted %d path\n"
 msgid_plural "reverted %d paths\n"
 msgstr[0] "đã hoàn nguyên %d đường dẫn\n"
@@ -77,33 +78,33 @@ msgid "No untracked files.\n"
 msgstr "Không có tập tin nào chưa được theo dõi.\n"
 
 msgid "Add untracked"
-msgstr "Thêm các cái chưa được theo dõi"
+msgstr "Thêm các tập tin chưa được theo dõi"
 
-#, c-format, perl-format
+#, c-format
 msgid "added %d path\n"
 msgid_plural "added %d paths\n"
 msgstr[0] "đã thêm %d đường dẫn\n"
 
 #, c-format
 msgid "ignoring unmerged: %s"
-msgstr "bỏ qua những thứ chưa hòa trộn: %s"
+msgstr "bỏ qua những tập tin chưa hòa trộn: %s"
 
 #, c-format
 msgid "Only binary files changed.\n"
-msgstr "Chỉ có các tập tin nhị phân là thay đổi.\n"
+msgstr "Chỉ có các tập tin nhị phân thay đổi.\n"
 
 #, c-format
 msgid "No changes.\n"
 msgstr "Không có thay đổi nào.\n"
 
 msgid "Patch update"
-msgstr "Cập nhật miếng vá"
+msgstr "Cập nhật bản vá"
 
 msgid "Review diff"
-msgstr "Xem xét lại diff"
+msgstr "Xem xét lại thay đổi"
 
 msgid "show paths with changes"
-msgstr "hiển thị đường dẫn với các thay đổi"
+msgstr "hiển thị các đường dẫn có thay đổi"
 
 msgid "add working tree state to the staged set of changes"
 msgstr ""
@@ -116,10 +117,10 @@ msgstr ""
 "bản HEAD"
 
 msgid "pick hunks and update selectively"
-msgstr "chọn các “khúc” và cập nhật có tuyển chọn"
+msgstr "chọn các khúc và cập nhật có lựa chọn"
 
 msgid "view diff between HEAD and index"
-msgstr "xem khác biệt giữa HEAD và mục lục"
+msgstr "xem khác biệt giữa HEAD và chỉ mục"
 
 msgid "add contents of untracked files to the staged set of changes"
 msgstr ""
@@ -139,7 +140,7 @@ msgid "select multiple ranges"
 msgstr "chọn nhiều vùng"
 
 msgid "select item based on unique prefix"
-msgstr "chọn mục dựa trên tiền tố duy nhất"
+msgstr "chọn mục dựa trên tiền tố độc nhất"
 
 msgid "unselect specified items"
 msgstr "bỏ chọn các mục đã cho"
@@ -151,7 +152,7 @@ msgid "(empty) finish selecting"
 msgstr "(để trống) hoàn tất chọn lựa"
 
 msgid "select a numbered item"
-msgstr "tùy chọn mục bằng số"
+msgstr "lựa chọn mục bằng số"
 
 msgid "(empty) select nothing"
 msgstr "(để trống) không chọn gì"
@@ -172,25 +173,25 @@ msgid "path"
 msgstr "đường-dẫn"
 
 msgid "could not refresh index"
-msgstr "không thể đọc lại bảng mục lục"
+msgstr "không thể đọc lại chỉ mục"
 
 #, c-format
 msgid "Bye.\n"
 msgstr "Tạm biệt.\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "Stage mode change [y,n,q,a,d%s,?]? "
-msgstr "Thay đổi chế độ bệ phóng [y,n,q,a,d%s,?]? "
+msgstr "Đưa lên bệ phóng thay đổi chế độ [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Stage deletion [y,n,q,a,d%s,?]? "
-msgstr "Xóa khỏi bệ phóng [y,n,q,a,d%s,?]? "
+msgstr "Đưa lên bệ phóng thao tác xoá [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Stage addition [y,n,q,a,d%s,?]? "
-msgstr "Thêm vào bệ phóng [y,n,q,a,d%s,?]? "
+msgstr "Đưa lên bệ phóng thao tác thêm [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Stage this hunk [y,n,q,a,d%s,?]? "
 msgstr "Đưa lên bệ phóng khúc này [y,n,q,a,d%s,?]? "
 
@@ -198,7 +199,7 @@ msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "staging."
 msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức được đánh dấu "
+"Nếu bản vá được áp dụng hoàn toàn, khúc đã sửa sẽ ngay lập tức được đánh dấu "
 "để chuyển lên bệ phóng."
 
 msgid ""
@@ -210,24 +211,23 @@ msgid ""
 msgstr ""
 "y - đưa lên bệ phóng khúc này\n"
 "n - đừng đưa lên bệ phóng khúc này\n"
-"q - thoát; đừng đưa lên bệ phóng khúc này cũng như bất kỳ cái nào còn lại\n"
+"q - thoát; đừng đưa lên bệ phóng khúc này hay bất kỳ cái nào còn lại\n"
 "a - đưa lên bệ phóng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng đưa lên bệ phóng khúc này cũng như bất kỳ cái nào còn lại trong tập "
-"tin\n"
+"d - đừng đưa lên bệ phóng khúc này hay bất kỳ cái nào còn lại trong tập tin\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "Stash mode change [y,n,q,a,d%s,?]? "
-msgstr "Thay đổi chế độ tạm cất đi [y,n,q,a,d%s,?]? "
+msgstr "Tạm cất thay đổi chế độ [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Stash deletion [y,n,q,a,d%s,?]? "
-msgstr "Xóa tạm cất [y,n,q,a,d%s,?]? "
+msgstr "Tạm cất thao tác xoá [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Stash addition [y,n,q,a,d%s,?]? "
-msgstr "Thêm vào tạm cất [y,n,q,a,d%s,?]? "
+msgstr "Tạm cất thao tác thêm [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Stash this hunk [y,n,q,a,d%s,?]? "
 msgstr "Tạm cất khúc này [y,n,q,a,d%s,?]? "
 
@@ -235,7 +235,7 @@ msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "stashing."
 msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức được đánh dấu "
+"Nếu bản vá được áp dụng hoàn toàn, khúc đã sửa sẽ ngay lập tức được đánh dấu "
 "để tạm cất."
 
 msgid ""
@@ -247,23 +247,23 @@ msgid ""
 msgstr ""
 "y - tạm cất khúc này\n"
 "n - đừng tạm cất khúc này\n"
-"q - thoát; đừng tạm cất khúc này cũng như bất kỳ cái nào còn lại\n"
+"q - thoát; đừng tạm cất khúc này hay bất kỳ cái nào còn lại\n"
 "a - tạm cất khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng tạm cất khúc này cũng như bất kỳ cái nào còn lại trong tập tin\n"
+"d - đừng tạm cất khúc này hay bất kỳ cái nào còn lại trong tập tin\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "Unstage mode change [y,n,q,a,d%s,?]? "
-msgstr "Thay đổi chế độ bỏ ra khỏi bệ phóng [y,n,q,a,d%s,?]? "
+msgstr "Bỏ ra khỏi bệ phóng thay đổi chế độ [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Unstage deletion [y,n,q,a,d%s,?]? "
-msgstr "Xóa bỏ việc bỏ ra khỏi bệ phóng [y,n,q,a,d%s,?]? "
+msgstr "Bỏ ra khỏi bệ phóng thao tác xoá [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Unstage addition [y,n,q,a,d%s,?]? "
-msgstr "Thêm vào việc bỏ ra khỏi bệ phóng [y,n,q,a,d%s,?]? "
+msgstr "Bỏ ra khỏi bệ phóng thao tác thêm [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Unstage this hunk [y,n,q,a,d%s,?]? "
 msgstr "Bỏ ra khỏi bệ phóng khúc này [y,n,q,a,d%s,?]? "
 
@@ -271,7 +271,7 @@ msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "unstaging."
 msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức được đánh dấu "
+"Nếu bản vá được áp dụng hoàn toàn, khúc đã sửa sẽ ngay lập tức được đánh dấu "
 "để bỏ ra khỏi bệ phóng."
 
 msgid ""
@@ -283,33 +283,32 @@ msgid ""
 msgstr ""
 "y - đưa ra khỏi bệ phóng khúc này\n"
 "n - đừng đưa ra khỏi bệ phóng khúc này\n"
-"q - thoát; đừng đưa ra khỏi bệ phóng khúc này cũng như bất kỳ cái nào còn "
-"lại\n"
+"q - thoát; đừng đưa ra khỏi bệ phóng khúc này hay bất kỳ cái nào còn lại\n"
 "a - đưa ra khỏi bệ phóng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng đưa ra khỏi bệ phóng khúc này cũng như bất kỳ cái nào còn lại trong "
-"tập tin\n"
+"d - đừng đưa ra khỏi bệ phóng khúc này hay bất kỳ cái nào còn lại trong tập "
+"tin\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "Apply mode change to index [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng thay đổi chế độ cho mục lục [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thay đổi chế độ vào chỉ mục [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Apply deletion to index [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng việc xóa vào mục lục [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thao tác xóa vào chỉ mục [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Apply addition to index [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng các thêm vào mục lục [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thao tác thêm vào chỉ mục [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Apply this hunk to index [y,n,q,a,d%s,?]? "
-msgstr "Áo dụng khúc này vào mục lục [y,n,q,a,d%s,?]? "
+msgstr "Áo dụng khúc này vào chỉ mục [y,n,q,a,d%s,?]? "
 
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "applying."
 msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức được đánh dấu "
+"Nếu bản vá được áp dụng hoàn toàn, khúc đã sửa sẽ ngay lập tức được đánh dấu "
 "để áp dụng."
 
 msgid ""
@@ -319,25 +318,25 @@ msgid ""
 "a - apply this hunk and all later hunks in the file\n"
 "d - do not apply this hunk or any of the later hunks in the file\n"
 msgstr ""
-"y - áp dụng khúc này vào mục lục\n"
-"n - đừng áp dụng khúc này vào mục lục\n"
-"q - thoát; đừng áp dụng khúc này cũng như bất kỳ cái nào còn lại\n"
+"y - áp dụng khúc này vào chỉ mục\n"
+"n - đừng áp dụng khúc này vào chỉ mục\n"
+"q - thoát; đừng áp dụng khúc này hay bất kỳ cái nào còn lại\n"
 "a - áp dụng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng áp dụng khúc này cũng như bất kỳ cái nào sau này trong tập tin\n"
+"d - đừng áp dụng khúc này hay bất kỳ cái nào sau này trong tập tin\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? "
-msgstr "Loại bỏ các thay đổi chế độ từ cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Loại bỏ thay đổi chế độ khỏi cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? "
-msgstr "Loại bỏ việc xóa khỏi cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Loại bỏ thao tác xóa khỏi cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Discard addition from worktree [y,n,q,a,d%s,?]? "
-msgstr "Thêm các loại bỏ khỏi cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Loại bỏ thao tác thêm khỏi cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? "
 msgstr "Loại bỏ khúc này khỏi cây làm việc [y,n,q,a,d%s,?]? "
 
@@ -345,7 +344,7 @@ msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "discarding."
 msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức được đánh dấu "
+"Nếu bản vá được áp dụng hoàn toàn, khúc đã sửa sẽ ngay lập tức được đánh dấu "
 "để loại bỏ."
 
 msgid ""
@@ -357,25 +356,25 @@ msgid ""
 msgstr ""
 "y - loại bỏ khúc này khỏi cây làm việc\n"
 "n - đừng loại bỏ khúc khỏi cây làm việc\n"
-"q - thoát; đừng loại bỏ khúc này cũng như bất kỳ cái nào còn lại\n"
+"q - thoát; đừng loại bỏ khúc này hay bất kỳ cái nào còn lại\n"
 "a - loại bỏ khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng loại bỏ khúc này cũng như bất kỳ cái nào sau này trong tập tin\n"
+"d - đừng loại bỏ khúc này hay bất kỳ cái nào sau này trong tập tin\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Loại bỏ thay đổi chế độ từ mục lục và cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Loại bỏ thay đổi chế độ khỏi chỉ mục và cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Loại bỏ việc xóa khỏi mục lục và cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Loại bỏ thao tác xóa khỏi chỉ mục và cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Thêm các loại bỏ từ mục lục và cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Loại bỏ thao tác thêm khỏi chỉ mục và cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Loại bỏ khúc này khỏi mục lục và cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Loại bỏ khúc này khỏi chỉ mục và cây làm việc [y,n,q,a,d%s,?]? "
 
 msgid ""
 "y - discard this hunk from index and worktree\n"
@@ -384,27 +383,27 @@ msgid ""
 "a - discard this hunk and all later hunks in the file\n"
 "d - do not discard this hunk or any of the later hunks in the file\n"
 msgstr ""
-"y - loại bỏ khúc này khỏi mục lục và cây làm việc\n"
-"n - đừng loại bỏ khúc khỏi mục lục và cây làm việc\n"
-"q - thoát; đừng loại bỏ khúc này cũng như bất kỳ cái nào còn lại\n"
+"y - loại bỏ khúc này khỏi chỉ mục và cây làm việc\n"
+"n - đừng loại bỏ khúc khỏi chỉ mục và cây làm việc\n"
+"q - thoát; đừng loại bỏ khúc này hay bất kỳ cái nào còn lại\n"
 "a - loại bỏ khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng loại bỏ khúc này cũng như bất kỳ cái nào sau này trong tập tin\n"
+"d - đừng loại bỏ khúc này hay bất kỳ cái nào sau này trong tập tin\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng thay đổi chế độ cho mục lục và cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thay đổi chế độ cho chỉ mục và cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng việc xóa vào mục lục và cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thao tác xóa vào chỉ mục và cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng thêm vào mục lục và cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thao tác thêm vào chỉ mục và cây làm việc [y,n,q,a,d%s,?]? "
 
-#, c-format, perl-format
+#, c-format
 msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng khúc này vào mục lục và cây làm việc [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng khúc này vào chỉ mục và cây làm việc [y,n,q,a,d%s,?]? "
 
 msgid ""
 "y - apply this hunk to index and worktree\n"
@@ -413,11 +412,27 @@ msgid ""
 "a - apply this hunk and all later hunks in the file\n"
 "d - do not apply this hunk or any of the later hunks in the file\n"
 msgstr ""
-"y - áp dụng khúc này vào mục lục và cây làm việc\n"
-"n - đừng áp dụng khúc vào mục lục và cây làm việc\n"
-"q - thoát; đừng áp dụng khúc này cũng như bất kỳ cái nào còn lại\n"
+"y - áp dụng khúc này vào chỉ mục và cây làm việc\n"
+"n - đừng áp dụng khúc vào chỉ mục và cây làm việc\n"
+"q - thoát; đừng áp dụng khúc này hay bất kỳ cái nào còn lại\n"
 "a - áp dụng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng áp dụng khúc này cũng như bất kỳ cái nào sau này trong tập tin\n"
+"d - đừng áp dụng khúc này hay bất kỳ cái nào sau này trong tập tin\n"
+
+#, c-format
+msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thay đổi chế độ cho cây làm việc [y,n,q,a,d%s,?]? "
+
+#, c-format
+msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thao tác xóa cho cây làm việc [y,n,q,a,d%s,?]? "
+
+#, c-format
+msgid "Apply addition to worktree [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng thao tác thêm cho cây làm việc [y,n,q,a,d%s,?]? "
+
+#, c-format
+msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? "
+msgstr "Áp dụng khúc này vào cây làm việc [y,n,q,a,d%s,?]? "
 
 msgid ""
 "y - apply this hunk to worktree\n"
@@ -428,36 +443,32 @@ msgid ""
 msgstr ""
 "y - áp dụng khúc này vào cây làm việc\n"
 "n - đừng áp dụng khúc vào cây làm việc\n"
-"q - thoát; đừng áp dụng khúc này cũng như bất kỳ cái nào còn lại\n"
+"q - thoát; đừng áp dụng khúc này hay bất kỳ cái nào còn lại\n"
 "a - áp dụng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng áp dụng khúc này cũng như bất kỳ cái nào sau này trong tập tin\n"
+"d - đừng áp dụng khúc này hay bất kỳ cái nào sau này trong tập tin\n"
 
 #, c-format
 msgid "could not parse hunk header '%.*s'"
-msgstr "không thể phân tích cú pháp phần đầu của khúc “%.*s”"
-
-#, c-format
-msgid "could not parse colored hunk header '%.*s'"
-msgstr "không thể phân tích cú pháp phần đầu khúc đã tô màu “%.*s”"
+msgstr "không thể đọc phần đầu của khúc '%.*s'"
 
 msgid "could not parse diff"
-msgstr "không thể phân tích cú pháp khác biệt"
+msgstr "không thể đọc diff"
 
 msgid "could not parse colored diff"
-msgstr "không thể phân tích khác biệt được tô màu"
+msgstr "không thể đọc diff có màu"
 
 #, c-format
 msgid "failed to run '%s'"
-msgstr "gặp lỗi khi chạy “%s”"
+msgstr "gặp lỗi khi chạy '%s'"
 
 msgid "mismatched output from interactive.diffFilter"
-msgstr "đầu ra không khớp từ interactive.diffFilter"
+msgstr "đầu ra không khớp nhau từ interactive.diffFilter"
 
 msgid ""
 "Your filter must maintain a one-to-one correspondence\n"
 "between its input and output lines."
 msgstr ""
-"Bộ lọc của bạn phải duy trì một quan hệ một-đến-một\n"
+"Bộ lọc của bạn phải duy trì quan hệ một-một\n"
 "giữa các dòng đầu vào và đầu ra của nó."
 
 #, c-format
@@ -465,7 +476,7 @@ msgid ""
 "expected context line #%d in\n"
 "%.*s"
 msgstr ""
-"cần dòng ngữ cảnh #%d trong\n"
+"cần dòng ngữ cảnh số %d trong\n"
 "%.*s"
 
 #, c-format
@@ -481,51 +492,42 @@ msgstr ""
 "%.*s"
 
 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
-msgstr "Chế độ sửa khúc bằng tay -- xem ở đáy để có hướng dẫn sử dụng nhanh.\n"
+msgstr ""
+"Chế độ sửa khúc bằng tay -- xem ở dưới để có hướng dẫn sử dụng nhanh.\n"
 
 #, c-format
 msgid ""
 "---\n"
 "To remove '%c' lines, make them ' ' lines (context).\n"
 "To remove '%c' lines, delete them.\n"
-"Lines starting with %c will be removed.\n"
+"Lines starting with %s will be removed.\n"
 msgstr ""
 "---\n"
-"Để gỡ bỏ dòng “%c”, sửa chúng thành những dòng “ ” (ngữ cảnh).\n"
-"Để gõ bỏ dòng “%c”, xóa chúng đi.\n"
-"Những dòng bắt đầu bằng %c sẽ bị loại bỏ.\n"
+"Để gỡ bỏ dòng '%c', sửa chúng thành những dòng ' ' (ngữ cảnh).\n"
+"Để gõ bỏ dòng '%c', xóa chúng đi.\n"
+"Những dòng bắt đầu bằng %s sẽ bị loại bỏ.\n"
 
-#. #-#-#-#-#  git-add--interactive.perl.po  #-#-#-#-#
-#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
 msgid ""
 "If it does not apply cleanly, you will be given an opportunity to\n"
 "edit again.  If all lines of the hunk are removed, then the edit is\n"
 "aborted and the hunk is left unchanged.\n"
 msgstr ""
-"Nếu miếng vá không được áp dụng sạch sẽ, bạn sẽ có một cơ hội\n"
-"Ä\91á»\83 sá»­a lần nữa. Nếu má»\8di dòng của khúc bá»\8b xóa bá»\8f, thế thì những\n"
-"sửa dổi sẽ bị loại bỏ, và khúc vẫn giữ nguyên.\n"
+"Nếu bản vá không được áp dụng hoàn toàn, bạn sẽ có cơ hội\n"
+"Ä\91á»\83 sá»­a lại. Nếu má»\8di dòng của khúc bá»\8b xóa bá»\8f, thì những\n"
+"sửa đổi sẽ bị loại bỏ, và khúc vẫn giữ nguyên.\n"
 
 msgid "could not parse hunk header"
-msgstr "không thể phân tích cú pháp phần đầu khúc"
+msgstr "không hiểu cú pháp phần đầu khúc"
 
 msgid "'git apply --cached' failed"
-msgstr "“git apply --cached” gặp lỗi"
+msgstr "'git apply --cached' gặp lỗi"
 
-#. #-#-#-#-#  add-patch.c.po  #-#-#-#-#
 #. TRANSLATORS: do not translate [y/n]
 #. The program will only accept that input at this point.
 #. Consider translating (saying "no" discards!) as
 #. (saying "n" for "no" discards!) if the translation
 #. of the word "no" does not start with n.
 #.
-#. #-#-#-#-#  git-add--interactive.perl.po  #-#-#-#-#
-#. TRANSLATORS: do not translate [y/n]
-#. The program will only accept that input
-#. at this point.
-#. Consider translating (saying "no" discards!) as
-#. (saying "n" for "no" discards!) if the translation
-#. of the word "no" does not start with n.
 msgid ""
 "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
 msgstr ""
@@ -533,7 +535,7 @@ msgstr ""
 "bỏ!) [y/n]? "
 
 msgid "The selected hunks do not apply to the index!"
-msgstr "Các khúc đã chọn không được áp dụng vào bảng mục lục!"
+msgstr "Các khúc đã chọn không được áp dụng vào chỉ mục!"
 
 msgid "Apply them to the worktree anyway? "
 msgstr "Vẫn áp dụng chúng cho cây làm việc? "
@@ -550,6 +552,7 @@ msgid ""
 "/ - search for a hunk matching the given regex\n"
 "s - split the current hunk into smaller hunks\n"
 "e - manually edit the current hunk\n"
+"p - print the current hunk\n"
 "? - print help\n"
 msgstr ""
 "j - để lại khúc này là chưa quyết định, xem khúc chưa quyết định kế tiếp\n"
@@ -557,9 +560,10 @@ msgstr ""
 "k - để lại khúc này là chưa quyết định, xem khúc chưa quyết định kế trước\n"
 "K - để lại khúc này là chưa quyết định, xem khúc kế trước\n"
 "g - chọn một khúc muốn tới\n"
-"/ - tìm một khúc khớp với biểu thức chính quy đưa ra\n"
+"/ - tìm một khúc khớp với biểu thức chính quy\n"
 "s - chia khúc hiện tại thành các khúc nhỏ hơn\n"
 "e - sửa bằng tay khúc hiện hành\n"
+"p - in ra khúc hiện hành\n"
 "? - hiển thị trợ giúp\n"
 
 msgid "No previous hunk"
@@ -569,48 +573,48 @@ msgid "No next hunk"
 msgstr "Không có khúc kế tiếp"
 
 msgid "No other hunks to goto"
-msgstr "Không còn khúc nào để mà nhảy đến"
+msgstr "Không còn khúc nào để nhảy đến"
 
 msgid "go to which hunk (<ret> to see more)? "
-msgstr "nhảy đến khúc nào (<ret> để xem thêm)? "
+msgstr "nhảy đến khúc nào (<Enter> để xem thêm)? "
 
 msgid "go to which hunk? "
 msgstr "nhảy đến khúc nào? "
 
 #, c-format
 msgid "Invalid number: '%s'"
-msgstr "Số không hợp lệ: “%s”"
+msgstr "Số không hợp lệ: '%s'"
 
 #, c-format
 msgid "Sorry, only %d hunk available."
 msgid_plural "Sorry, only %d hunks available."
-msgstr[0] "Rất tiếc, chỉ có sẵn %d khúc."
+msgstr[0] "Chỉ có %d khúc."
 
 msgid "No other hunks to search"
-msgstr "Không còn khúc nào để mà tìm kiếm"
+msgstr "Không còn khúc nào để tìm kiếm"
 
 msgid "search for regex? "
-msgstr "tìm kiếm cho biểu thức chính quy? "
+msgstr "tìm kiếm cho biểu thức chính quy (regex)? "
 
 #, c-format
 msgid "Malformed search regexp %s: %s"
-msgstr "Định dạng tìm kiếm của biểu thức chính quy không đúng %s: %s"
+msgstr "Định dạng tìm kiếm của biểu thức chính quy (regex) bất thường %s: %s"
 
 msgid "No hunk matches the given pattern"
 msgstr "Không thấy khúc nào khớp mẫu đã cho"
 
 msgid "Sorry, cannot split this hunk"
-msgstr "Rất tiếc, không thể chia nhỏ khúc này"
+msgstr "Không thể chia nhỏ khúc này"
 
 #, c-format
 msgid "Split into %d hunks."
-msgstr "Chi nhỏ thành %d khúc."
+msgstr "Chia nhỏ thành %d khúc."
 
 msgid "Sorry, cannot edit this hunk"
-msgstr "Rất tiếc, không thể sửa khúc này"
+msgstr "Không thể sửa khúc này"
 
 msgid "'git apply' failed"
-msgstr "“git apply” gặp lỗi"
+msgstr "'git apply' gặp lỗi"
 
 #, c-format
 msgid ""
@@ -621,47 +625,41 @@ msgstr ""
 "Tắt lời nhắn này bằng \"git config advice.%s false\""
 
 #, c-format
-msgid "%shint: %.*s%s\n"
-msgstr "%sgợi ý: %.*s%s\n"
+msgid "%shint:%s%.*s%s\n"
+msgstr "%sgợi ý:%s%.*s%s\n"
 
 msgid "Cherry-picking is not possible because you have unmerged files."
 msgstr ""
-"Cherry-picking là không thể thực hiện bởi vì bạn có những tập tin chưa được "
-"hòa trộn."
+"Không thể thực hiện cherry-pick vì bạn có những tập tin chưa được hòa trộn."
 
 msgid "Committing is not possible because you have unmerged files."
 msgstr ""
-"Không thể thực hiện chuyển giao được bởi vì bạn có những tập tin chưa được "
-"hòa trộn."
+"Không thể thực hiện chuyển giao vì bạn có những tập tin chưa được hòa trộn."
 
 msgid "Merging is not possible because you have unmerged files."
 msgstr ""
-"Không thể thực hiện hòa trộn bởi vì bạn có những tập tin chưa được hòa trộn."
+"Không thể thực hiện hòa trộn vì bạn có những tập tin chưa được hòa trộn."
 
 msgid "Pulling is not possible because you have unmerged files."
-msgstr ""
-"Không thể thực hiện kéo về bởi vì bạn có những tập tin chưa được hòa trộn."
+msgstr "Không thể thực hiện kéo về vì bạn có những tập tin chưa được hòa trộn."
 
 msgid "Reverting is not possible because you have unmerged files."
 msgstr ""
-"Không thể thực hiện hoàn nguyên bởi vì bạn có những tập tin chưa được hòa "
-"trộn."
+"Không thể thực hiện hoàn nguyên vì bạn có những tập tin chưa được hòa trộn."
 
-#, c-format
-msgid "It is not possible to %s because you have unmerged files."
+msgid "Rebasing is not possible because you have unmerged files."
 msgstr ""
-"Việc này không thể thực hiện với %s bởi vì bạn có những tập tin chưa được "
-"hòa trộn."
+"Không thể thực hiện hoàn nguyên vì bạn có những tập tin chưa được hòa trộn."
 
 msgid ""
 "Fix them up in the work tree, and then use 'git add/rm <file>'\n"
 "as appropriate to mark resolution and make a commit."
 msgstr ""
-"Sửa chúng trong cây làm việc, và sau đó dùng lệnh “git add/rm <tập-tin>”\n"
-"dành riêng cho việc đánh dấu cần giải quyết và tạo lần chuyển giao."
+"Sửa chúng trong cây làm việc, và sau đó dùng lệnh 'git add/rm <tập-tin>'\n"
+"để chọn cách giải quyết và tiến hành chuyển giao."
 
 msgid "Exiting because of an unresolved conflict."
-msgstr "Thoát ra bởi vì xung đột không thể giải quyết."
+msgstr "Thoát vì không thể giải quyết xung đột."
 
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "Bạn chưa kết thúc việc hòa trộn (MERGE_HEAD vẫn tồn tại)."
@@ -670,10 +668,27 @@ msgid "Please, commit your changes before merging."
 msgstr "Vui lòng chuyển giao các thay đổi trước khi hòa trộn."
 
 msgid "Exiting because of unfinished merge."
-msgstr "Thoát ra bởi vì việc hòa trộn không hoàn tất."
+msgstr "Thoát vì việc hòa trộn còn dang dở."
+
+msgid ""
+"Diverging branches can't be fast-forwarded, you need to either:\n"
+"\n"
+"\tgit merge --no-ff\n"
+"\n"
+"or:\n"
+"\n"
+"\tgit rebase\n"
+msgstr ""
+"Không thể chuyển-tiếp-nhanh các nhánh phân kỳ, bạn cần dùng:\n"
+"\n"
+"\tgit merge --no-ff\n"
+"\n"
+"hoặc:\n"
+"\n"
+"\tgit rebase\n"
 
 msgid "Not possible to fast-forward, aborting."
-msgstr "Thực hiện lệnh chuyển-tiếp-nhanh là không thể được, đang bỏ qua."
+msgstr "Không thể chuyển-tiếp-nhanh, đang huỷ lệnh."
 
 #, c-format
 msgid ""
@@ -683,7 +698,7 @@ msgid ""
 msgstr ""
 "Các đường dẫn và/hoặc đặc tả đường dẫn sau đây khớp với các đường dẫn tồn "
 "tại\n"
-"bên ngoài định nghĩa “sparse-checkout” của bạn, vì vậy sẽ không\n"
+"bên ngoài định nghĩa 'sparse-checkout' của bạn, vì vậy sẽ không\n"
 "cập nhật trong chỉ mục:\n"
 
 msgid ""
@@ -693,7 +708,7 @@ msgid ""
 msgstr ""
 "Nếu bạn có ý định cập nhật các mục như vậy, hãy thử một trong các mục sau:\n"
 "* Sử dụng tùy chọn --sparse.\n"
-"* Vô hiệu hóa hoặc sửa đổi các quy tắc thưa thớt."
+"* Vô hiệu hóa hoặc sửa đổi sparse rules (luật thưa)."
 
 #, c-format
 msgid ""
@@ -716,14 +731,14 @@ msgid ""
 "false\n"
 "\n"
 msgstr ""
-"Chú ý: đang chuyển sang “%s”.\n"
+"Chú ý: đang chuyển sang '%s'.\n"
 "\n"
-"Bạn đang ở tình trạng “detached HEAD”. Bạn có thể xem qua, tạo các thay\n"
-"đổi thử nghiệm và chuyển giao chúng, bạn có thể loại bỏ bất kỳ lần chuyển\n"
-"giao nào trong tình trạng này mà không cần đụng chạm đến bất kỳ nhánh nào\n"
+"Bạn đang ở tình trạng 'detached HEAD'. Bạn có thể xem qua, tạo và\n"
+"chuyển giao các thay đổi thử nghiệm, và bạn có thể loại bỏ các lần chuyển\n"
+"giao trong trạng thái này mà không ảnh hưởng đến bất kỳ nhánh nào\n"
 "bằng cách chuyển trở lại một nhánh.\n"
 "\n"
-"Nếu bạn muốn tạo một nhánh mới để giữ lại các lần chuyển giao bạn tạo,\n"
+"Nếu bạn muốn tạo một nhánh mới để giữ lại các lần chuyển giao đã tạo,\n"
 "bạn có thể làm thế (ngay bây giờ hay sau này) bằng cách dùng tùy chọn\n"
 "dòng lệnh -c. Ví dụ:\n"
 "\n"
@@ -736,19 +751,41 @@ msgstr ""
 "Tắt hướng dẫn này bằng cách đặt biến advice.detachedHead thành false\n"
 "\n"
 
+#, c-format
+msgid ""
+"The following paths have been moved outside the\n"
+"sparse-checkout definition but are not sparse due to local\n"
+"modifications.\n"
+msgstr ""
+"Các đường dẫn sau đã được di chuyển ra ngoài định nghĩa\n"
+"sparse-checkout nhưng không còn thuộc loại sparse (thưa) vì có\n"
+"thay đổi nội bộ.\n"
+
+msgid ""
+"To correct the sparsity of these paths, do the following:\n"
+"* Use \"git add --sparse <paths>\" to update the index\n"
+"* Use \"git sparse-checkout reapply\" to apply the sparsity rules"
+msgstr ""
+"Để sửa lại đúng loại sprase (thưa) của các tập này, hãy thực hiện:\n"
+"* Chạy \"git add --sparse <đường-dẫn>\" để cập nhật chỉ mục\n"
+"* Chạy \"git sparse-checkout reapply\" để áp dụng luật thưa"
+
 msgid "cmdline ends with \\"
-msgstr "cmdline kết thúc với \\"
+msgstr "cuối dòng lệnh có \\"
 
 msgid "unclosed quote"
 msgstr "chưa có dấu nháy đóng"
 
+msgid "too many arguments"
+msgstr "có quá nhiều đối số"
+
 #, c-format
 msgid "unrecognized whitespace option '%s'"
-msgstr "không nhận ra tùy chọn về khoảng trắng “%s”"
+msgstr "không nhận ra tùy chọn về khoảng trắng '%s'"
 
 #, c-format
 msgid "unrecognized whitespace ignore option '%s'"
-msgstr "không nhận ra tùy chọn bỏ qua khoảng trắng “%s”"
+msgstr "không nhận ra tùy chọn bỏ qua khoảng trắng '%s'"
 
 #, c-format
 msgid "options '%s' and '%s' cannot be used together"
@@ -756,13 +793,17 @@ msgstr "tùy chọn '%s' và '%s' không thể dùng cùng nhau"
 
 #, c-format
 msgid "'%s' outside a repository"
-msgstr "'%s' ở ngoài một kho chứa"
+msgstr "'%s' ở ngoài kho chứa"
+
+msgid "failed to read patch"
+msgstr "gặp lỗi khi đọc bản vá"
+
+msgid "patch too large"
+msgstr "bản vá quá lớn"
 
 #, c-format
 msgid "Cannot prepare timestamp regexp %s"
-msgstr ""
-"Không thể chuẩn bị biểu thức chính qui dấu vết thời gian (timestamp regexp) "
-"%s"
+msgstr "Không thể chuẩn bị biểu thức chính quy dấu thời gian%s"
 
 #, c-format
 msgid "regexec returned %d for input: %s"
@@ -770,12 +811,11 @@ msgstr "thi hành biểu thức chính quy trả về %d cho đầu vào: %s"
 
 #, c-format
 msgid "unable to find filename in patch at line %d"
-msgstr "không thể tìm thấy tên tập tin trong miếng vá tại dòng %d"
+msgstr "không thể tìm thấy tên tập tin trong bản vá tại dòng %d"
 
 #, c-format
 msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
-msgstr ""
-"git apply: git-diff sai - cần /dev/null, nhưng lại nhận được %s trên dòng %d"
+msgstr "git apply: git-diff sai - cần /dev/null, nhưng lại có %s trên dòng %d"
 
 #, c-format
 msgid "git apply: bad git-diff - inconsistent new filename on line %d"
@@ -787,7 +827,7 @@ msgstr "git apply: git-diff sai - tên tập tin cũ không nhất quán trên d
 
 #, c-format
 msgid "git apply: bad git-diff - expected /dev/null on line %d"
-msgstr "git apply: git-diff sai - cần “/dev/null” trên dòng %d"
+msgstr "git apply: git-diff sai - cần '/dev/null' trên dòng %d"
 
 #, c-format
 msgid "invalid mode on line %d: %s"
@@ -795,7 +835,7 @@ msgstr "chế độ không hợp lệ trên dòng %d: %s"
 
 #, c-format
 msgid "inconsistent header lines %d and %d"
-msgstr "phần đầu mâu thuẫn dòng %d và %d"
+msgstr "phần đầu không nhất quán tại dòng %d và %d"
 
 #, c-format
 msgid ""
@@ -805,8 +845,8 @@ msgid_plural ""
 "git diff header lacks filename information when removing %d leading pathname "
 "components (line %d)"
 msgstr[0] ""
-"phần đầu diff cho git  thiếu thông tin tên tập tin khi gỡ bỏ đi %d trong "
-"thành phần dẫn đầu tên của đường dẫn (dòng %d)"
+"phần đầu diff cho git thiếu thông tin tên tập tin khi xoá đi %d mục dẫn đầu "
+"trong tên của đường dẫn (dòng %d)"
 
 #, c-format
 msgid "git diff header lacks filename information (line %d)"
@@ -814,11 +854,11 @@ msgstr "phần đầu diff cho git thiếu thông tin tên tập tin (dòng %d)"
 
 #, c-format
 msgid "recount: unexpected line: %.*s"
-msgstr "chi tiết: dòng không cần: %.*s"
+msgstr "recount: dòng bất thường %.*s"
 
 #, c-format
 msgid "patch fragment without header at line %d: %.*s"
-msgstr "miếng vá phân mảnh mà không có phần đầu tại dòng %d: %.*s"
+msgstr "bản vá không có phần đầu tại dòng %d: %.*s"
 
 msgid "new file depends on old contents"
 msgstr "tập tin mới phụ thuộc vào nội dung cũ"
@@ -828,7 +868,7 @@ msgstr "tập tin đã xóa vẫn còn nội dung"
 
 #, c-format
 msgid "corrupt patch at line %d"
-msgstr "miếng vá hỏng tại dòng %d"
+msgstr "bản vá hỏng tại dòng %d"
 
 #, c-format
 msgid "new file %s depends on old contents"
@@ -844,15 +884,15 @@ msgstr "** cảnh báo: tập tin %s trở nên trống rỗng nhưng không b
 
 #, c-format
 msgid "corrupt binary patch at line %d: %.*s"
-msgstr "miếng vá định dạng nhị phân sai hỏng tại dòng %d: %.*s"
+msgstr "bản vá nhị phân hỏng tại dòng %d: %.*s"
 
 #, c-format
 msgid "unrecognized binary patch at line %d"
-msgstr "miếng vá định dạng nhị phân không được nhận ra tại dòng %d"
+msgstr "bản vá nhị phân không thể nhận diện tại dòng %d"
 
 #, c-format
 msgid "patch with only garbage at line %d"
-msgstr "vá chỉ với “rác” tại dòng %d"
+msgstr "bản vá chứa 'rác' tại dòng %d"
 
 #, c-format
 msgid "unable to read symlink %s"
@@ -864,64 +904,59 @@ msgstr "không thể mở hay đọc %s"
 
 #, c-format
 msgid "invalid start of line: '%c'"
-msgstr "sai khởi đầu dòng: “%c”"
+msgstr "sai khởi đầu dòng: '%c'"
 
 #, c-format
 msgid "Hunk #%d succeeded at %d (offset %d line)."
 msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
-msgstr[0] "Khối dữ liệu #%d thành công tại %d (offset %d dòng)."
+msgstr[0] "Khối thứ %d thành công tại %d (offset %d dòng)."
 
 #, c-format
 msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
-msgstr "Ngữ cảnh bị giảm xuống còn (%ld/%ld) để áp dụng mảnh dữ liệu tại %d"
+msgstr "Ngữ cảnh bị giảm xuống còn (%ld/%ld) để áp dụng bản vá tại %d"
 
 #, c-format
 msgid ""
 "while searching for:\n"
 "%.*s"
 msgstr ""
-"trong khi đang tìm kiếm cho:\n"
+"trong khi đang tìm kiếm:\n"
 "%.*s"
 
 #, c-format
 msgid "missing binary patch data for '%s'"
-msgstr "thiếu dữ liệu của miếng vá định dạng nhị phân cho “%s”"
+msgstr "thiếu dữ liệu của bản vá nhị phân cho '%s'"
 
 #, c-format
 msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
-msgstr ""
-"không thể reverse-apply một miếng vá nhị phân mà không đảo ngược khúc thành "
-"“%s”"
+msgstr "không thể đảo ngược bản vá nhị phân mà không có khúc ngược cho '%s'"
 
 #, c-format
 msgid "cannot apply binary patch to '%s' without full index line"
 msgstr ""
-"không thể áp dụng miếng vá nhị phân thành “%s” mà không có dòng chỉ mục đầy "
-"đủ"
+"không thể áp dụng bản vá nhị phân cho '%s' mà không có dòng chỉ mục đầy đủ"
 
 #, c-format
 msgid ""
 "the patch applies to '%s' (%s), which does not match the current contents."
-msgstr ""
-"miếng vá áp dụng cho “%s” (%s), cái mà không khớp với các nội dung hiện tại."
+msgstr "bản vá áp dụng cho '%s' (%s), nhưng không khớp với nội dung hiện tại."
 
 #, c-format
 msgid "the patch applies to an empty '%s' but it is not empty"
-msgstr "miếng vá áp dụng cho một “%s” trống rỗng nhưng nó lại không trống"
+msgstr "bản vá áp dụng cho '%s' trống rỗng nhưng nó lại không trống"
 
 #, c-format
 msgid "the necessary postimage %s for '%s' cannot be read"
-msgstr "không thể đọc postimage %s cần thiết cho “%s”"
+msgstr "không thể đọc hậu ảnh %s cần thiết cho '%s'"
 
 #, c-format
 msgid "binary patch does not apply to '%s'"
-msgstr "miếng vá định dạng nhị phân không được áp dụng cho “%s”"
+msgstr "bản vá nhị phân không được áp dụng cho '%s'"
 
 #, c-format
 msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
 msgstr ""
-"vá nhị phân cho “%s” tạo ra kết quả không chính xác (mong chờ %s, lại nhận "
-"%s)"
+"bản vá nhị phân cho '%s' cho ra kết quả không chính xác (cần %s, lại nhận %s)"
 
 #, c-format
 msgid "patch failed: %s:%ld"
@@ -929,7 +964,7 @@ msgstr "gặp lỗi khi vá: %s:%ld"
 
 #, c-format
 msgid "cannot checkout %s"
-msgstr "không thể lấy ra %s"
+msgstr "không thể checkout %s"
 
 #, c-format
 msgid "failed to read %s"
@@ -937,7 +972,7 @@ msgstr "gặp lỗi khi đọc %s"
 
 #, c-format
 msgid "reading from '%s' beyond a symbolic link"
-msgstr "đọc từ “%s” vượt ra ngoài liên kết mềm"
+msgstr "đọc từ '%s' đứng sau liên kết mềm"
 
 #, c-format
 msgid "path %s has been renamed/deleted"
@@ -945,41 +980,42 @@ msgstr "đường dẫn %s đã bị xóa hoặc đổi tên"
 
 #, c-format
 msgid "%s: does not exist in index"
-msgstr "%s: không tồn tại trong bảng mục lục"
+msgstr "%s: không tồn tại trong chỉ mục"
 
 #, c-format
 msgid "%s: does not match index"
-msgstr "%s: không khớp trong mục lục"
+msgstr "%s: không khớp với chỉ mục"
 
 msgid "repository lacks the necessary blob to perform 3-way merge."
-msgstr "kho thiếu đối tượng blob cần thiết để thực hiện hòa trộn “3-way”."
+msgstr ""
+"kho thiếu đối tượng blob cần thiết để thực hiện hòa trộn kiểu three-way."
 
 #, c-format
 msgid "Performing three-way merge...\n"
-msgstr "Đang thực hiện hòa trộn “3-đường”…\n"
+msgstr "Đang thực hiện hòa trộn three-way...\n"
 
 #, c-format
 msgid "cannot read the current contents of '%s'"
-msgstr "không thể đọc nội dung hiện hành của “%s”"
+msgstr "không thể đọc nội dung hiện hành của '%s'"
 
 #, c-format
 msgid "Failed to perform three-way merge...\n"
-msgstr "Gặp lỗi khi thực hiện hòa trộn kiểu “three-way”…\n"
+msgstr "Gặp lỗi khi thực hiện hòa trộn kiểu three-way...\n"
 
 #, c-format
 msgid "Applied patch to '%s' with conflicts.\n"
-msgstr "Đã áp dụng miếng vá %s với các xung đột.\n"
+msgstr "Áp dụng bản vá '%s' còn các xung đột.\n"
 
 #, c-format
 msgid "Applied patch to '%s' cleanly.\n"
-msgstr "Đã áp dụng miếng vá %s một cách sạch sẽ.\n"
+msgstr "Áp dụng bản vá %s một cách hoàn toàn.\n"
 
 #, c-format
 msgid "Falling back to direct application...\n"
-msgstr "Đang trở lại ứng dụng chi phối…\n"
+msgstr "Đang trở về cách áp dụng trực tiếp..\n"
 
 msgid "removal patch leaves file contents"
-msgstr "loại bỏ miếng vá để lại nội dung tập tin"
+msgstr "bản vá để lại tập tin còn nội dung"
 
 #, c-format
 msgid "%s: wrong type"
@@ -991,15 +1027,15 @@ msgstr "%s có kiểu %o, cần %o"
 
 #, c-format
 msgid "invalid path '%s'"
-msgstr "đường dẫn không hợp lệ “%s”"
+msgstr "đường dẫn không hợp lệ '%s'"
 
 #, c-format
 msgid "%s: already exists in index"
-msgstr "%s: đã có từ trước trong bảng mục lục"
+msgstr "%s: đã sẵn có trong chỉ mục"
 
 #, c-format
 msgid "%s: already exists in working directory"
-msgstr "%s: đã sẵn có trong thư mục đang làm việc"
+msgstr "%s: đã sẵn có trong thư mục làm việc"
 
 #, c-format
 msgid "new mode (%o) of %s does not match old mode (%o)"
@@ -1011,15 +1047,15 @@ msgstr "chế độ mới (%o) của %s không khớp với chế độ cũ (%o)
 
 #, c-format
 msgid "affected file '%s' is beyond a symbolic link"
-msgstr "tập tin chịu tác động “%s” vượt ra ngoài liên kết mềm"
+msgstr "tập tin chịu tác động '%s' đứng sau liên kết mềm"
 
 #, c-format
 msgid "%s: patch does not apply"
-msgstr "%s: miếng vá không được áp dụng"
+msgstr "%s: bản vá không được áp dụng"
 
 #, c-format
 msgid "Checking patch %s..."
-msgstr "Đang kiểm tra miếng vá %s…"
+msgstr "Đang kiểm tra bản vá %s..."
 
 #, c-format
 msgid "sha1 information is lacking or useless for submodule %s"
@@ -1027,35 +1063,35 @@ msgstr "thông tin sha1 thiếu hoặc không dùng được cho mô-đun %s"
 
 #, c-format
 msgid "mode change for %s, which is not in current HEAD"
-msgstr "thay đổi chế độ cho %s, cái mà không phải là HEAD hiện tại"
+msgstr "thay đổi chế độ cho %s, nhưng nó không nằm trong HEAD hiện tại"
 
 #, c-format
 msgid "sha1 information is lacking or useless (%s)."
-msgstr "thông tin sha1 còn thiếu hay không dùng được(%s)."
+msgstr "thông tin sha1 còn thiếu hay không dùng được (%s)."
 
 #, c-format
 msgid "could not add %s to temporary index"
-msgstr "không thể thêm %s vào chỉ mục tạm thời"
+msgstr "không thể thêm %s vào chỉ mục tạm"
 
 #, c-format
 msgid "could not write temporary index to %s"
-msgstr "không thể ghi mục lục tạm vào %s"
+msgstr "không thể ghi chỉ mục tạm vào %s"
 
 #, c-format
 msgid "unable to remove %s from index"
-msgstr "không thể gỡ bỏ %s từ mục lục"
+msgstr "không thể gỡ bỏ %s từ chỉ mục"
 
 #, c-format
 msgid "corrupt patch for submodule %s"
-msgstr "miếng vá sai hỏng cho mô-đun-con %s"
+msgstr "bản vá hỏng cho mô-đun-con %s"
 
 #, c-format
 msgid "unable to stat newly created file '%s'"
-msgstr "không thể lấy thống kê về tập tin %s mới hơn đã được tạo"
+msgstr "không thể stat tập tin '%s' mới tạo"
 
 #, c-format
 msgid "unable to create backing store for newly created file %s"
-msgstr "không thể tạo “kho lưu đằng sau” cho tập tin được tạo mới hơn %s"
+msgstr "không thể tạo 'backing store' cho tập tin mới tạo %s"
 
 #, c-format
 msgid "unable to add cache entry for %s"
@@ -1063,19 +1099,19 @@ msgstr "không thể thêm mục nhớ đệm cho %s"
 
 #, c-format
 msgid "failed to write to '%s'"
-msgstr "gặp lỗi khi ghi vào “%s”"
+msgstr "gặp lỗi khi ghi vào '%s'"
 
 #, c-format
 msgid "closing file '%s'"
-msgstr "đang đóng tập tin “%s”"
+msgstr "đang đóng tập tin '%s'"
 
 #, c-format
 msgid "unable to write file '%s' mode %o"
-msgstr "không thể ghi vào tập tin “%s” chế độ %o"
+msgstr "không thể ghi vào tập tin '%s' chế độ %o"
 
 #, c-format
 msgid "Applied patch %s cleanly."
-msgstr "Đã áp dụng miếng vá %s một cách sạch sẽ."
+msgstr "Đã áp dụng bản vá %s một cách hoàn toàn."
 
 msgid "internal error"
 msgstr "lỗi nội bộ"
@@ -1083,43 +1119,43 @@ msgstr "lỗi nội bộ"
 #, c-format
 msgid "Applying patch %%s with %d reject..."
 msgid_plural "Applying patch %%s with %d rejects..."
-msgstr[0] "Đang áp dụng miếng vá %%s với %d lần từ chối…"
+msgstr[0] "Đang áp dụng bản vá %%s với %d lần từ chối..."
 
 #, c-format
-msgid "truncating .rej filename to %.*s.rej"
-msgstr "đang cắt ngắn tên tập tin .rej thành %.*s.rej"
+msgid "cannot open %s"
+msgstr "không thể mở '%s'"
 
 #, c-format
-msgid "cannot open %s"
-msgstr "không mở được “%s”"
+msgid "cannot unlink '%s'"
+msgstr "không thể unlink '%s'"
 
 #, c-format
 msgid "Hunk #%d applied cleanly."
-msgstr "Khối nhớ #%d được áp dụng gọn gàng."
+msgstr "Khúc #%d được áp dụng hoàn toàn."
 
 #, c-format
 msgid "Rejected hunk #%d."
-msgstr "Đoạn dữ liệu #%d bị từ chối."
+msgstr "Khúc #%d bị từ chối."
 
 #, c-format
 msgid "Skipped patch '%s'."
-msgstr "Bỏ qua đường dẫn “%s”."
+msgstr "Bỏ qua đường dẫn '%s'."
 
 msgid "No valid patches in input (allow with \"--allow-empty\")"
 msgstr ""
-"Không có miếng vá hợp lệ nào trong đầu vào (cho phép với \"--allow-empty\")"
+"Không có bản vá hợp lệ nào trong đầu vào (cho phép với \"--allow-empty\")"
 
 msgid "unable to read index file"
-msgstr "không thể đọc tập tin lưu bảng mục lục"
+msgstr "không thể đọc tập tin chỉ mục"
 
 #, c-format
 msgid "can't open patch '%s': %s"
-msgstr "không thể mở miếng vá “%s”: %s"
+msgstr "không thể mở bản vá '%s': %s"
 
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
-msgstr[0] "đã chấm dứt %d lỗi khoảng trắng"
+msgstr[0] "đã xử lý %d lỗi khoảng trắng"
 
 #, c-format
 msgid "%d line adds whitespace errors."
@@ -1132,7 +1168,7 @@ msgid_plural "%d lines applied after fixing whitespace errors."
 msgstr[0] "%d dòng được áp dụng sau khi sửa các lỗi khoảng trắng."
 
 msgid "Unable to write new index file"
-msgstr "Không thể ghi tập tin lưu bảng mục lục mới"
+msgstr "Không thể ghi tập tin chỉ mục mới"
 
 msgid "don't apply changes matching the given path"
 msgstr "không áp dụng các thay đổi khớp với đường dẫn đã cho"
@@ -1144,52 +1180,46 @@ msgid "num"
 msgstr "số"
 
 msgid "remove <num> leading slashes from traditional diff paths"
-msgstr "gỡ bỏ <số> dấu gạch chéo dẫn đầu từ đường dẫn diff cổ điển"
+msgstr "gỡ bỏ <số> dấu gạch chéo dẫn đầu từ đường dẫn diff"
 
 msgid "ignore additions made by the patch"
-msgstr "lờ đi phần bổ xung được tạo ra bởi miếng vá"
+msgstr "bỏ qua các bổ sung trong bản vá"
 
 msgid "instead of applying the patch, output diffstat for the input"
-msgstr ""
-"thay vì áp dụng một miếng vá, kết xuất kết quả từ lệnh diffstat cho đầu ra"
+msgstr "thay vì áp dụng bản vá, xuất kết quả diffstat cho đầu vào"
 
 msgid "show number of added and deleted lines in decimal notation"
-msgstr ""
-"hiển thị số lượng các dòng được thêm vào và xóa đi theo ký hiệu thập phân"
+msgstr "hiển thị số lượng các dòng được thêm vào và xóa đi theo hệ thập phân"
 
 msgid "instead of applying the patch, output a summary for the input"
-msgstr "thay vì áp dụng một miếng vá, kết xuất kết quả cho đầu vào"
+msgstr "thay vì áp dụng bản vá, xuất tóm tắt kết quả cho đầu vào"
 
 msgid "instead of applying the patch, see if the patch is applicable"
-msgstr "thay vì áp dụng miếng vá, hãy xem xem miếng vá có thích hợp không"
+msgstr "thay vì áp dụng bản vá, xem xem bản vá có thích hợp không"
 
 msgid "make sure the patch is applicable to the current index"
-msgstr "hãy chắc chắn là miếng vá thích hợp với bảng mục lục hiện hành"
+msgstr "kiểm tra chắc chắn là bản vá thích hợp với chỉ mục hiện hành"
 
 msgid "mark new files with `git add --intent-to-add`"
-msgstr "đánh dấu các tập tin mới với “git add --intent-to-add”"
+msgstr "đánh dấu các tập tin mới với 'git add --intent-to-add'"
 
 msgid "apply a patch without touching the working tree"
-msgstr "áp dụng một miếng vá mà không động chạm đến cây làm việc"
+msgstr "áp dụng bản vá mà không động chạm đến cây làm việc"
 
 msgid "accept a patch that touches outside the working area"
-msgstr "chấp nhận một miếng vá mà không động chạm đến cây làm việc"
+msgstr "chấp nhận bản vá có động chạm đến ngoài cây làm việc"
 
 msgid "also apply the patch (use with --stat/--summary/--check)"
-msgstr ""
-"đồng thời áp dụng miếng vá (dùng với tùy chọn --stat/--summary/--check)"
+msgstr "đồng thời áp dụng bản vá (dùng với tùy chọn --stat/--summary/--check)"
 
 msgid "attempt three-way merge, fall back on normal patch if that fails"
-msgstr ""
-"thử hòa trộn kiểu three-way, quay lại dán bình thường nếu không thể thực "
-"hiện được"
+msgstr "thử hòa trộn kiểu three-way, quay lại kiểu bình thường nếu thất bại"
 
 msgid "build a temporary index based on embedded index information"
-msgstr ""
-"xây dựng bảng mục lục tạm thời trên cơ sở thông tin bảng mục lục được nhúng"
+msgstr "xây dựng chỉ mục tạm thời dựa trên thông tin chỉ mục được nhúng"
 
 msgid "paths are separated with NUL character"
-msgstr "các đường dẫn bị ngăn cách bởi ký tự NULL"
+msgstr "các đường dẫn được ngăn cách bởi ký tự NULL"
 
 msgid "ensure at least <n> lines of context match"
 msgstr "đảm bảo rằng có ít nhất <n> dòng ngữ cảnh khớp"
@@ -1198,22 +1228,22 @@ msgid "action"
 msgstr "hành động"
 
 msgid "detect new or modified lines that have whitespace errors"
-msgstr "tìm thấy một dòng mới hoặc bị sửa đổi mà nó có lỗi do khoảng trắng"
+msgstr "tìm thấy dòng mới hoặc dòng bị sửa đổi có lỗi khoảng trắng"
 
 msgid "ignore changes in whitespace when finding context"
-msgstr "lờ đi sự thay đổi do khoảng trắng gây ra khi tìm ngữ cảnh"
+msgstr "bỏ qua sự thay đổi do khoảng trắng gây ra khi tìm ngữ cảnh"
 
 msgid "apply the patch in reverse"
-msgstr "áp dụng miếng vá theo chiều ngược"
+msgstr "áp dụng bản vá theo chiều ngược"
 
 msgid "don't expect at least one line of context"
 msgstr "đừng hy vọng có ít nhất một dòng ngữ cảnh"
 
 msgid "leave the rejected hunks in corresponding *.rej files"
-msgstr "để lại khối dữ liệu bị từ chối trong các tập tin *.rej tương ứng"
+msgstr "để lại khối bị từ chối trong các tập tin *.rej tương ứng"
 
 msgid "allow overlapping hunks"
-msgstr "cho phép chồng khối nhớ"
+msgstr "cho phép chồng khối"
 
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr ""
@@ -1226,65 +1256,69 @@ msgid "root"
 msgstr "gốc"
 
 msgid "prepend <root> to all filenames"
-msgstr "treo thêm <root> vào tất cả các tên tập tin"
+msgstr "thêm <gốc> vào trước tất cả các tên tập tin"
 
 msgid "don't return error for empty patches"
-msgstr "đừng trả về lỗi khi các miếng vá trống rỗng"
+msgstr "đừng trả về lỗi khi các bản vá trống rỗng"
 
 #, c-format
 msgid "cannot stream blob %s"
-msgstr "không thể stream blob “%s”"
+msgstr "không thể stream blob '%s'"
 
 #, c-format
 msgid "unsupported file mode: 0%o (SHA1: %s)"
 msgstr "chế độ tập tin không được hỗ trợ: 0%o (SHA1: %s)"
 
+#, c-format
+msgid "deflate error (%d)"
+msgstr "lỗi giải nén (%d)"
+
 #, c-format
 msgid "unable to start '%s' filter"
-msgstr "không thể bắt đầu bộ lọc “%s”"
+msgstr "không thể khởi chạy bộ lọc '%s'"
 
 msgid "unable to redirect descriptor"
-msgstr "không thể chuyển hướng mô tả"
+msgstr "không thể chuyển hướng vào/ra"
 
 #, c-format
 msgid "'%s' filter reported error"
-msgstr "bộ lọc “%s” đã báo cáo lỗi"
+msgstr "bộ lọc '%s' đã báo lỗi"
 
 #, c-format
 msgid "path is not valid UTF-8: %s"
-msgstr "đường dẫn không hợp lệ UTF-8: %s"
+msgstr "đường dẫn không hợp lệ theo UTF-8: %s"
 
 #, c-format
 msgid "path too long (%d chars, SHA1: %s): %s"
 msgstr "đường dẫn quá dài (%d ký tự, SHA1: %s): %s"
 
-#, c-format
-msgid "deflate error (%d)"
-msgstr "lỗi giải nén (%d)"
-
 #, c-format
 msgid "timestamp too large for this system: %<PRIuMAX>"
-msgstr "dấu vết thời gian là quá lớn cho hệ thống này: %<PRIuMAX>"
+msgstr "dấu thời gian là quá lớn cho hệ thống này: %<PRIuMAX>"
 
 msgid "git archive [<options>] <tree-ish> [<path>...]"
-msgstr "git archive [<các tùy chọn>] <tree-ish> [</đường/dẫn>]"
+msgstr "git archive [<các tùy chọn>] <tree-ish> [</đường/dẫn>...]"
 
 msgid ""
 "git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
 msgstr ""
 "git archive --remote <kho> [--exec <lệnh>] [<các tùy chọn>] <tree-ish> [</"
-"đường/dẫn>]"
+"đường/dẫn>...]"
 
 msgid "git archive --remote <repo> [--exec <cmd>] --list"
 msgstr "git archive --remote <kho> [--exec <lệnh>] --list"
 
 #, c-format
 msgid "cannot read '%s'"
-msgstr "không thể đọc “%s”"
+msgstr "không thể đọc '%s'"
+
+#, c-format
+msgid "pathspec '%s' matches files outside the current directory"
+msgstr "đặc tả đường dẫn '%s' nằm ngoài thư mục hiện hành"
 
 #, c-format
 msgid "pathspec '%s' did not match any files"
-msgstr "đặc tả đường dẫn “%s” không khớp với bất kỳ tập tin nào"
+msgstr "đặc tả đường dẫn '%s' không khớp với bất kỳ tập tin nào"
 
 #, c-format
 msgid "no such ref: %.*s"
@@ -1292,14 +1326,11 @@ msgstr "không có tham chiếu nào như thế: %.*s"
 
 #, c-format
 msgid "not a valid object name: %s"
-msgstr "không phải là tên đối tượng hợp lệ: “%s”"
+msgstr "không phải là tên đối tượng hợp lệ: %s"
 
 #, c-format
 msgid "not a tree object: %s"
-msgstr "không phải là đối tượng cây: “%s”"
-
-msgid "current working directory is untracked"
-msgstr "thư mục làm việc hiện hành chưa được theo dõi"
+msgstr "không phải là đối tượng cây: %s"
 
 #, c-format
 msgid "File not found: %s"
@@ -1307,7 +1338,7 @@ msgstr "Không tìm thấy tập tin: %s"
 
 #, c-format
 msgid "Not a regular file: %s"
-msgstr "Không phải một tập tin thường: %s"
+msgstr "Không phải tập tin thường: %s"
 
 #, c-format
 msgid "unclosed quote: '%s'"
@@ -1315,26 +1346,26 @@ msgstr "chưa có dấu nháy đóng: '%s'"
 
 #, c-format
 msgid "missing colon: '%s'"
-msgstr "thiếu dấu hai chấm: “%s”"
+msgstr "thiếu dấu hai chấm: '%s'"
 
 #, c-format
 msgid "empty file name: '%s'"
-msgstr "tên tập tin trống rỗng: “%s”"
+msgstr "tên tập tin trống: '%s'"
 
 msgid "fmt"
-msgstr "định_dạng"
+msgstr "định-dạng"
 
 msgid "archive format"
 msgstr "định dạng lưu trữ"
 
 msgid "prefix"
-msgstr "tiền_tố"
+msgstr "tiền tố"
 
 msgid "prepend prefix to each pathname in the archive"
 msgstr "nối thêm tiền tố vào từng đường dẫn tập tin trong kho lưu"
 
 msgid "file"
-msgstr "tập_tin"
+msgstr "tập tin"
 
 msgid "add untracked file to archive"
 msgstr "thêm các tập tin không được theo dõi vào kho lưu"
@@ -1349,7 +1380,13 @@ msgid "read .gitattributes in working directory"
 msgstr "đọc .gitattributes trong thư mục làm việc"
 
 msgid "report archived files on stderr"
-msgstr "liệt kê các tập tin được lưu trữ vào stderr (đầu ra lỗi tiêu chuẩn)"
+msgstr "liệt kê các tập tin được lưu trữ ra stderr"
+
+msgid "time"
+msgstr "thời-gian"
+
+msgid "set modification time of archive entries"
+msgstr "đặt thời điểm sửa đổi của các mục nén"
 
 msgid "set compression level"
 msgstr "đặt mức nén"
@@ -1370,27 +1407,38 @@ msgid "path to the remote git-upload-archive command"
 msgstr "đường dẫn đến lệnh git-upload-archive trên máy chủ"
 
 msgid "Unexpected option --remote"
-msgstr "Gặp tùy chọn không cần --remote"
+msgstr "Gặp tùy chọn bất thường --remote"
 
 #, c-format
 msgid "the option '%s' requires '%s'"
-msgstr "tùy chọn “%s” yêu cầu “%s”"
+msgstr "tùy chọn '%s' yêu cầu '%s'"
 
 msgid "Unexpected option --output"
-msgstr "Gặp tùy chọn không cần --output"
+msgstr "Gặp tùy chọn bất thường --output"
+
+#, c-format
+msgid "extra command line parameter '%s'"
+msgstr "thừa tham số dòng lệnh '%s'"
 
 #, c-format
 msgid "Unknown archive format '%s'"
-msgstr "Không hiểu định dạng “%s”"
+msgstr "Không hiểu định dạng lưu trữ '%s'"
 
 #, c-format
 msgid "Argument not supported for format '%s': -%d"
-msgstr "Tham số không được hỗ trợ cho định dạng “%s”: -%d"
+msgstr "Tham số không được hỗ trợ cho định dạng '%s': -%d"
 
 #, c-format
 msgid "%.*s is not a valid attribute name"
 msgstr "%.*s không phải tên thuộc tính hợp lệ"
 
+msgid "unable to add additional attribute"
+msgstr "Không thể thêm thuộc tính"
+
+#, c-format
+msgid "ignoring overly long attributes line %d"
+msgstr "bỏ qua dòng thuộc tính thứ %d quá dài"
+
 #, c-format
 msgid "%s not allowed: %s:%d"
 msgstr "%s không được phép: %s:%d"
@@ -1399,16 +1447,39 @@ msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
 msgstr ""
-"Các mẫu dạng phủ định bị cấm dùng cho các thuộc tính của git\n"
-"Dùng “\\!” cho các chuỗi văn bản có dấu chấm than dẫn đầu."
+"Các mẫu dạng phủ định bị cấm dùng cho git attribute\n"
+"Dùng '\\!' cho tên có dấu chấm than dẫn đầu."
+
+#, c-format
+msgid "cannot fstat gitattributes file '%s'"
+msgstr "không thể fstat tập tin gitattributes '%s'"
+
+#, c-format
+msgid "ignoring overly large gitattributes file '%s'"
+msgstr "bỏ qua tập tin gitattributes quá lớn '%s'"
+
+#, c-format
+msgid "ignoring overly large gitattributes blob '%s'"
+msgstr "bỏ qua blob gitattributes quá lớn '%s'"
+
+msgid "bad --attr-source or GIT_ATTR_SOURCE"
+msgstr "--attr-source hoặc GIT_ATTR_SOURCE sai"
+
+#, c-format
+msgid "unable to stat '%s'"
+msgstr "không thể stat '%s'"
+
+#, c-format
+msgid "unable to read %s"
+msgstr "không thể đọc %s"
 
 #, c-format
 msgid "Badly quoted content in file '%s': %s"
-msgstr "Nội dung được trích dẫn sai trong tập tin “%s”: %s"
+msgstr "Nội dung được trích dẫn sai trong tập tin '%s': %s"
 
 #, c-format
 msgid "We cannot bisect more!\n"
-msgstr "Chúng tôi không bisect thêm nữa!\n"
+msgstr "Không bisect thêm nữa!\n"
 
 #, c-format
 msgid "Not a valid commit name %s"
@@ -1419,16 +1490,16 @@ msgid ""
 "The merge base %s is bad.\n"
 "This means the bug has been fixed between %s and [%s].\n"
 msgstr ""
-"Hòa trộn trên %s là sai.\n"
-"Điều đó có nghĩa là lỗi đã được sửa chữa giữa %s và [%s].\n"
+"Gốc hòa trộn trên %s là sai.\n"
+"Có nghĩa là lỗi đã được sửa chữa giữa %s và [%s].\n"
 
 #, c-format
 msgid ""
 "The merge base %s is new.\n"
 "The property has changed between %s and [%s].\n"
 msgstr ""
-"Hòa trộn trên %s là mới.\n"
-"Gần như chắc chắn là có thay đổi giữa %s và [%s].\n"
+"Gốc hòa trộn trên %s là mới.\n"
+"Đã có thay đổi thuộc tính giữa %s và [%s].\n"
 
 #, c-format
 msgid ""
@@ -1436,7 +1507,7 @@ msgid ""
 "This means the first '%s' commit is between %s and [%s].\n"
 msgstr ""
 "Hòa trộn trên %s là %s.\n"
-"Điều đó có nghĩa là lần chuyển giao “%s” đầu tiên là giữa %s và [%s].\n"
+"Có nghĩa là lần chuyển giao '%s' đầu tiên là giữa %s và [%s].\n"
 
 #, c-format
 msgid ""
@@ -1445,7 +1516,7 @@ msgid ""
 "Maybe you mistook %s and %s revs?\n"
 msgstr ""
 "Một số điểm xét duyệt %s không phải tổ tiên của điểm xét duyệt %s.\n"
-"git bisect không thể làm việc đúng đắn trong trường hợp này.\n"
+"git bisect không thể làm việc đúng trong trường hợp này.\n"
 "Liệu có phải bạn nhầm lẫn các điểm %s và %s không?\n"
 
 #, c-format
@@ -1454,14 +1525,13 @@ msgid ""
 "So we cannot be sure the first %s commit is between %s and %s.\n"
 "We continue anyway."
 msgstr ""
-"hòa trộn trên cơ sở giữa %s và [%s] phải bị bỏ qua.\n"
-"Do vậy chúng tôi không thể chắc lần chuyển giao đầu tiên %s là giữa %s và "
-"%s.\n"
-"Chúng tôi vẫn cứ tiếp tục."
+"gốc hòa trộn giữa %s và [%s] phải bị bỏ qua.\n"
+"Do vậy không thể chắc chắn lần chuyển giao %s đầu tiên là giữa %s và %s.\n"
+"Vẫn tiếp tục."
 
 #, c-format
 msgid "Bisecting: a merge base must be tested\n"
-msgstr "Bisecting: nền hòa trộn cần phải được kiểm tra\n"
+msgstr "Đang bisect: gốc hòa trộn cần phải được kiểm tra\n"
 
 #, c-format
 msgid "a %s revision is needed"
@@ -1469,11 +1539,15 @@ msgstr "cần một điểm xét duyệt %s"
 
 #, c-format
 msgid "could not create file '%s'"
-msgstr "không thể tạo tập tin “%s”"
+msgstr "không thể tạo tập tin '%s'"
+
+#, c-format
+msgid "unable to start 'show' for object '%s'"
+msgstr "không thể khởi chạy 'show' cho đối tượng '%s'"
 
 #, c-format
 msgid "could not read file '%s'"
-msgstr "không thể đọc tập tin “%s”"
+msgstr "không thể đọc tập tin '%s'"
 
 msgid "reading bisect refs failed"
 msgstr "việc đọc tham chiếu bisect gặp lỗi"
@@ -1487,13 +1561,13 @@ msgid ""
 "No testable commit found.\n"
 "Maybe you started with bad path arguments?\n"
 msgstr ""
-"Không tìm thấy lần chuyển giao kiểm tra được nào.\n"
+"Không tìm thấy lần chuyển giao nào kiểm tra được.\n"
 "Có lẽ bạn bắt đầu với các tham số đường dẫn sai?\n"
 
 #, c-format
 msgid "(roughly %d step)"
 msgid_plural "(roughly %d steps)"
-msgstr[0] "(ước chừng %d bước)"
+msgstr[0] "(cần khoảng chừng %d bước)"
 
 #. TRANSLATORS: the last %s will be replaced with "(roughly %d
 #. steps)" translation.
@@ -1501,13 +1575,10 @@ msgstr[0] "(ước chừng %d bước)"
 #, c-format
 msgid "Bisecting: %d revision left to test after this %s\n"
 msgid_plural "Bisecting: %d revisions left to test after this %s\n"
-msgstr[0] "Bisecting: còn %d điểm xét duyệt để kiểm sau %s này\n"
+msgstr[0] "Bisecting: còn %d điểm xét duyệt để kiểm tra %s\n"
 
 msgid "--contents and --reverse do not blend well."
-msgstr "tùy chọn --contents và --reverse không được trộn vào nhau."
-
-msgid "cannot use --contents with final commit object name"
-msgstr "không thể dùng --contents với tên đối tượng chuyển giao cuối cùng"
+msgstr "tùy chọn --contents và --reverse không nên đi với nhau."
 
 msgid "--reverse and --first-parent together require specified latest commit"
 msgstr ""
@@ -1519,16 +1590,16 @@ msgstr "cài đặt việc di chuyển qua các điểm xét duyệt gặp lỗi
 msgid ""
 "--reverse --first-parent together require range along first-parent chain"
 msgstr ""
-"cùng sử dụng --reverse --first-parent yêu cầu vùng cùng với chuỗi cha-mẹ-đầu-"
-"tiên"
+"cùng sử dụng --reverse và --first-parent yêu cầu vùng cùng với chuỗi cha-mẹ-"
+"đầu-tiên"
 
 #, c-format
 msgid "no such path %s in %s"
-msgstr "không có đường dẫn %s trong “%s”"
+msgstr "không có đường dẫn %s trong '%s'"
 
 #, c-format
 msgid "cannot read blob %s for path %s"
-msgstr "không thể đọc blob %s cho đường dẫn “%s”"
+msgstr "không thể đọc blob %s cho đường dẫn '%s'"
 
 msgid ""
 "cannot inherit upstream tracking configuration of multiple refs when "
@@ -1539,19 +1610,19 @@ msgstr ""
 
 #, c-format
 msgid "not setting branch '%s' as its own upstream"
-msgstr "không cài đặt nhánh '%s' như là thượng nguồn của nó"
+msgstr "không đặt nhánh '%s' là thượng nguồn của chính nó"
 
 #, c-format
 msgid "branch '%s' set up to track '%s' by rebasing."
-msgstr "nhánh “%s” cài đặt để theo dõi “%s” bằng cách rebase."
+msgstr "nhánh '%s' cài đặt để theo dõi '%s' bằng cách rebase."
 
 #, c-format
 msgid "branch '%s' set up to track '%s'."
-msgstr "nhánh “%s” cài đặt để theo dõi “%s”."
+msgstr "nhánh '%s' cài đặt để theo dõi '%s'."
 
 #, c-format
 msgid "branch '%s' set up to track:"
-msgstr "nhánh “%s” cài đặt để theo dõi:"
+msgstr "nhánh '%s' cài đặt để theo dõi:"
 
 msgid "unable to write upstream branch configuration"
 msgstr "không thể ghi cấu hình nhánh thượng nguồn"
@@ -1562,19 +1633,17 @@ msgid ""
 "the remote tracking information by invoking:"
 msgstr ""
 "\n"
-"Sau khi sửa nguyên nhân gây lỗi bạn có lẻ cần thử sửa\n"
+"Sau khi sửa nguyên nhân gây lỗi bạn có thể thử sửa\n"
 "thông tin theo dõi máy chủ bằng cách gọi lệnh:"
 
 #, c-format
 msgid "asked to inherit tracking from '%s', but no remote is set"
-msgstr ""
-"đã hỏi để kế thừa theo dõi từ '%s', nhưng không có máy chủ nào được đặt"
+msgstr "đã yêu cầu kế thừa theo dõi từ '%s', nhưng chưa cấu hình máy chủ nào"
 
 #, c-format
 msgid "asked to inherit tracking from '%s', but no merge configuration is set"
 msgstr ""
-"đã hỏi để kế thừa theo dõi từ '%s', nhưng không có cấu hình hòa trộn nào "
-"được đặt"
+"đã yêu cầu kế thừa theo dõi từ '%s', nhưng không có cấu hình hòa trộn nào"
 
 #, c-format
 msgid "not tracking: ambiguous information for ref '%s'"
@@ -1609,8 +1678,8 @@ msgid ""
 "different remotes' fetch refspecs map into different\n"
 "tracking namespaces."
 msgstr ""
-"Có nhiều máy chủ những cái lấy ánh xạ refspecs tham chiếu theo\n"
-"dõi máy chủ '%s':\n"
+"Có nhiều máy chủ có fetch refspec ánh xạ tới refspecs tham chiếu\n"
+"theo dõi máy chủ '%s':\n"
 "%s\n"
 "Đây thường là lỗi cấu hình.\n"
 "\n"
@@ -1620,25 +1689,29 @@ msgstr ""
 
 #, c-format
 msgid "'%s' is not a valid branch name"
-msgstr "“%s” không phải là một tên nhánh hợp lệ"
+msgstr "'%s' không phải là một tên nhánh hợp lệ"
+
+msgid "See `man git check-ref-format`"
+msgstr "Đọc `man git check-ref-format`"
 
 #, c-format
 msgid "a branch named '%s' already exists"
-msgstr "đã có nhánh mang tên “%s”"
+msgstr "đã có nhánh mang tên '%s'"
 
 #, c-format
-msgid "cannot force update the branch '%s' checked out at '%s'"
-msgstr "không thể ép buộc cập nhật nhánh “%s” đã được lấy ra tại “%s”"
+msgid "cannot force update the branch '%s' used by worktree at '%s'"
+msgstr ""
+"không thể ép buộc cập nhật nhánh '%s' đang được sử dụng tại cây làm việc '%s'"
 
 #, c-format
 msgid "cannot set up tracking information; starting point '%s' is not a branch"
 msgstr ""
-"không thể cài đặt thông tin theo dõi; điểm bắt đầu “%s” không phải là một "
+"không thể cài đặt thông tin theo dõi; điểm bắt đầu '%s' không phải là một "
 "nhánh"
 
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
-msgstr "nhánh thượng nguồn đã yêu cầu “%s” không tồn tại"
+msgstr "nhánh thượng nguồn đã yêu cầu '%s' không tồn tại"
 
 msgid ""
 "\n"
@@ -1651,95 +1724,83 @@ msgid ""
 "\"git push -u\" to set the upstream config as you push."
 msgstr ""
 "\n"
-"Nếu bạn có ý định “cải tổ” công việc của bạn trên nhánh thượng nguồn\n"
-"(upstream) cái mà đã sẵn có trên máy chủ, bạn cần chạy\n"
+"Nếu bạn có ý định bắt đầu công việc của bạn trên nhánh thượng nguồn\n"
+"(upstream) đã sẵn có trên máy chủ, bạn cần chạy\n"
 "lệnh \"git fetch\" để lấy nó về.\n"
 "\n"
-"Nếu bạn có ý định đẩy lên lên một nhánh nội bộ mới cái mà\n"
-"sẽ theo dõi bản đối chiếu máy chủ của nó, bạn cần dùng lệnh\n"
-"\"git push -u\" để đặt cấu hình thượng nguồn bạn muốn push."
+"Nếu bạn có ý định đẩy một nhánh nội bộ mới mà\n"
+"sẽ theo dõi nhánh trên máy chủ, bạn cần dùng lệnh\n"
+"\"git push -u\" để đặt cấu hình thượng nguồn khi push."
 
 #, c-format
 msgid "not a valid object name: '%s'"
-msgstr "không phải là tên đối tượng hợp lệ: “%s”"
+msgstr "không phải là tên đối tượng hợp lệ: '%s'"
 
 #, c-format
 msgid "ambiguous object name: '%s'"
-msgstr "tên đối tượng chưa rõ ràng: “%s”."
+msgstr "tên đối tượng chưa rõ ràng: '%s'."
 
 #, c-format
 msgid "not a valid branch point: '%s'"
-msgstr "không phải là một điểm nhánh hợp lệ: “%s”"
+msgstr "không phải là một điểm nhánh hợp lệ: '%s'"
 
 #, c-format
 msgid "submodule '%s': unable to find submodule"
-msgstr "mô-đun-con “%s”: không thể tìm thấy mô-đun-con"
+msgstr "mô-đun-con '%s': không thể tìm thấy mô-đun-con"
 
 #, c-format
 msgid ""
-"You may try updating the submodules using 'git checkout %s && git submodule "
-"update --init'"
+"You may try updating the submodules using 'git checkout --no-recurse-"
+"submodules %s && git submodule update --init'"
 msgstr ""
-"Bạn có thể thử cập nhật các mô-đun-con bằng cách sử dụng 'git checkout %s && "
-"git submodule update --init'"
+"Bạn có thể thử cập nhật các mô-đun-con bằng cách sử dụng 'git checkout --no-"
+"recurse-submodules %s && git submodule update --init'"
 
 #, c-format
 msgid "submodule '%s': cannot create branch '%s'"
-msgstr "mô-đun-con “%s”: không thể tạo nhánh “%s”"
-
-#, c-format
-msgid "'%s' is already checked out at '%s'"
-msgstr "“%s” đã được lấy ra tại “%s” rồi"
+msgstr "mô-đun-con '%s': không thể tạo nhánh '%s'"
 
 #, c-format
-msgid "HEAD of working tree %s is not updated"
-msgstr "HEAD của cây làm việc %s chưa được cập nhật"
+msgid "'%s' is already used by worktree at '%s'"
+msgstr "'%s' đang được sử dụng tại cây làm việc '%s'"
 
 msgid "git add [<options>] [--] <pathspec>..."
-msgstr "git add [<các tùy chọn>] [--]  <pathspec>"
+msgstr "git add [<các tùy chọn>] [--]  <pathspec>..."
 
 #, c-format
 msgid "cannot chmod %cx '%s'"
-msgstr "không thể chmod %cx “%s”"
-
-#, c-format
-msgid "unexpected diff status %c"
-msgstr "trạng thái lệnh diff không như mong đợi %c"
-
-msgid "updating files failed"
-msgstr "cập nhật tập tin gặp lỗi"
-
-#, c-format
-msgid "remove '%s'\n"
-msgstr "gỡ bỏ “%s”\n"
+msgstr "không thể chmod %cx '%s'"
 
 msgid "Unstaged changes after refreshing the index:"
-msgstr ""
-"Đưa ra khỏi bệ phóng các thay đổi sau khi làm tươi mới lại bảng mục lục:"
+msgstr "Đưa ra khỏi bệ phóng các thay đổi sau khi làm mới lại chỉ mục:"
 
-msgid "Could not read the index"
-msgstr "Không thể đọc bảng mục lục"
+msgid ""
+"the add.interactive.useBuiltin setting has been removed!\n"
+"See its entry in 'git help config' for details."
+msgstr ""
+"mục cài đặt add.interactive.useBuiltin đã không còn!\n"
+"Xem mục tin của nó trong 'git help config' để biết chi tiết."
 
-msgid "Could not write patch"
-msgstr "Không thể ghi ra miếng vá"
+msgid "could not read the index"
+msgstr "Không thể đọc chỉ mục"
 
 msgid "editing patch failed"
-msgstr "gặp lỗi khi sửa miếng vá"
+msgstr "gặp lỗi khi sửa bản vá"
 
 #, c-format
-msgid "Could not stat '%s'"
-msgstr "Không thể lấy thông tin thống kê về “%s”"
+msgid "could not stat '%s'"
+msgstr "không thể stat '%s'"
 
-msgid "Empty patch. Aborted."
-msgstr "Miếng vá trống rỗng. Nên bỏ qua."
+msgid "empty patch. aborted"
+msgstr "bản vá trống rỗng. huỷ bỏ"
 
 #, c-format
-msgid "Could not apply '%s'"
-msgstr "Không thể áp dụng miếng vá “%s”"
+msgid "could not apply '%s'"
+msgstr "không thể áp dụng bản vá '%s'"
 
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr ""
-"Các đường dẫn theo sau đây sẽ bị lờ đi bởi một trong các tập tin .gitignore "
+"Các đường dẫn theo sau đây sẽ bị bỏ qua bởi một trong các tập tin .gitignore "
 "của bạn:\n"
 
 msgid "dry run"
@@ -1752,7 +1813,7 @@ msgid "interactive picking"
 msgstr "sửa bằng cách tương tác"
 
 msgid "select hunks interactively"
-msgstr "chọn “hunks” theo kiểu tương tác"
+msgstr "chọn 'hunks' theo kiểu tương tác"
 
 msgid "edit current diff and apply"
 msgstr "sửa diff hiện nay và áp dụng nó"
@@ -1764,22 +1825,19 @@ msgid "update tracked files"
 msgstr "cập nhật các tập tin được theo dõi"
 
 msgid "renormalize EOL of tracked files (implies -u)"
-msgstr "thường hóa lại EOL của các tập tin được theo dõi (ý là -u)"
+msgstr "thường hóa lại EOL của các tập tin được theo dõi (ngụ ý -u)"
 
 msgid "record only the fact that the path will be added later"
 msgstr "chỉ ghi lại sự việc mà đường dẫn sẽ được thêm vào sau"
 
 msgid "add changes from all tracked and untracked files"
-msgstr ""
-"thêm các thay đổi từ tất cả các tập tin có cũng như không được theo dõi dấu "
-"vết"
+msgstr "thêm các thay đổi từ tất cả các tập tin dù được theo dõi hay không"
 
 msgid "ignore paths removed in the working tree (same as --no-all)"
-msgstr ""
-"lờ đi các đường dẫn bị gỡ bỏ trong cây thư mục làm việc (giống với --no-all)"
+msgstr "bỏ qua các đường dẫn bị xoá bỏ trong cây làm việc (giống với --no-all)"
 
 msgid "don't add, only refresh the index"
-msgstr "không thêm, chỉ làm tươi mới bảng mục lục"
+msgstr "không thêm, chỉ làm mới chỉ mục"
 
 msgid "just skip files which cannot be added because of errors"
 msgstr "chie bỏ qua những tập tin mà nó không thể được thêm vào bởi vì gặp lỗi"
@@ -1789,10 +1847,11 @@ msgstr ""
 "kiểm tra xem - thậm chí thiếu - tập tin bị bỏ qua trong quá trình chạy thử"
 
 msgid "allow updating entries outside of the sparse-checkout cone"
-msgstr "cho phép cập nhật các mục ở ngoài “sparse-checkout cone”"
+msgstr ""
+"cho phép cập nhật các mục ở ngoài 'sparse-checkout cone' (nón checkout thưa)"
 
 msgid "override the executable bit of the listed files"
-msgstr "ghi đè lên bít thi hành của các tập tin được liệt kê"
+msgstr "ghi đè lên executable bit (bít thực thi) của các tập tin được liệt kê"
 
 msgid "warn when adding an embedded repository"
 msgstr "cảnh báo khi thêm một kho nhúng"
@@ -1820,8 +1879,8 @@ msgstr ""
 "\n"
 "\tgit submodule add <url> %s\n"
 "\n"
-"Nếu bạn đã thêm miếng vá này chỉ là sai sót, bạn có thể xóa bỏ\n"
-"nó khỏi mục lục bằng:\n"
+"Nếu bạn đã thêm bản vá này chỉ là sai sót, bạn có thể xóa bỏ\n"
+"nó khỏi chỉ mục bằng:\n"
 "\n"
 "\tgit rm --cached %s\n"
 "\n"
@@ -1831,21 +1890,15 @@ msgstr ""
 msgid "adding embedded git repository: %s"
 msgstr "thêm cần một kho git nhúng: %s"
 
-msgid ""
-"Use -f if you really want to add them.\n"
-"Turn this message off by running\n"
-"\"git config advice.addIgnoredFile false\""
-msgstr ""
-"Sử dụng -f nếu bạn thực sự muốn thêm chúng.\n"
-"Tắt thông báo này bằng cách chạy lệnh\n"
-"\"git config advice.addIgnoredFile false\""
+msgid "Use -f if you really want to add them."
+msgstr "Dùng -f nếu bạn thực sự muốn thêm chúng"
 
 msgid "adding files failed"
 msgstr "thêm tập tin gặp lỗi"
 
 #, c-format
 msgid "--chmod param '%s' must be either -x or +x"
-msgstr "--chmod tham số “%s” phải hoặc là -x hay +x"
+msgstr "--chmod tham số '%s' phải hoặc là -x hay +x"
 
 #, c-format
 msgid "'%s' and pathspec arguments cannot be used together"
@@ -1855,21 +1908,18 @@ msgstr "'%s' và các tham số đặc tả đường dẫn không thể dùng c
 msgid "Nothing specified, nothing added.\n"
 msgstr "Không có gì được chỉ ra, không có gì được thêm vào.\n"
 
-msgid ""
-"Maybe you wanted to say 'git add .'?\n"
-"Turn this message off by running\n"
-"\"git config advice.addEmptyPathspec false\""
-msgstr ""
-"Có lẽ bạn muốn chạy “git add .”?\n"
-"Tắt thông báo này bằng cách chạy lệnh\n"
-"\"git config advice.addEmptyPathspec false\""
+msgid "Maybe you wanted to say 'git add .'?"
+msgstr "Có lẽ là bạn muốn dùng 'git add .'?"
 
 msgid "index file corrupt"
-msgstr "tập tin ghi bảng mục lục bị hỏng"
+msgstr "tập tin ghi chỉ mục bị hỏng"
+
+msgid "unable to write new index file"
+msgstr "không thể ghi tập tin chỉ mục mới"
 
 #, c-format
 msgid "bad action '%s' for '%s'"
-msgstr "thao tác sai “%s” cho “%s”"
+msgstr "thao tác sai '%s' cho '%s'"
 
 #, c-format
 msgid "invalid value for '%s': '%s'"
@@ -1877,44 +1927,44 @@ msgstr "giá trị không hợp lệ cho '%s': '%s'"
 
 #, c-format
 msgid "could not read '%s'"
-msgstr "không thể đọc “%s”"
+msgstr "không thể đọc '%s'"
 
 msgid "could not parse author script"
-msgstr "không thể phân tích cú pháp văn lệnh tác giả"
+msgstr "không hiểu cú pháp author script"
 
 #, c-format
 msgid "could not parse %s"
-msgstr "không thể phân tích cú pháp %s"
+msgstr "không hiểu cú pháp %s"
 
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
-msgstr "“%s” bị xóa bởi móc applypatch-msg"
+msgstr "'%s' bị xóa bởi móc applypatch-msg"
 
 #, c-format
 msgid "Malformed input line: '%s'."
-msgstr "Dòng đầu vào dị hình: “%s”."
+msgstr "Dòng đầu vào sai quy cách: '%s'."
 
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
-msgstr "Gặp lỗi khi sao chép ghi chú (note) từ “%s” tới “%s”"
+msgstr "Gặp lỗi khi sao chép ghi chú (note) từ '%s' tới '%s'"
 
 msgid "fseek failed"
 msgstr "fseek gặp lỗi"
 
 #, c-format
 msgid "could not open '%s' for reading"
-msgstr "không thể mở “%s” để đọc"
+msgstr "không thể mở '%s' để đọc"
 
 #, c-format
 msgid "could not open '%s' for writing"
-msgstr "không thể mở “%s” để ghi"
+msgstr "không thể mở '%s' để ghi"
 
 #, c-format
 msgid "could not parse patch '%s'"
-msgstr "không thể phân tích cú pháp “%s”"
+msgstr "không hiểu cú pháp '%s'"
 
 msgid "Only one StGIT patch series can be applied at once"
-msgstr "Chỉ có một sê-ri miếng vá StGIT được áp dụng một lúc"
+msgstr "Chỉ có một sê-ri bản vá StGIT được áp dụng một lúc"
 
 msgid "invalid timestamp"
 msgstr "dấu thời gian không hợp lệ"
@@ -1926,29 +1976,30 @@ msgid "invalid timezone offset"
 msgstr "độ lệch múi giờ không hợp lệ"
 
 msgid "Patch format detection failed."
-msgstr "Dò tìm định dạng miếng vá gặp lỗi."
+msgstr "Dò tìm định dạng bản vá gặp lỗi."
 
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "tạo thư mục \"%s\" gặp lỗi"
 
 msgid "Failed to split patches."
-msgstr "Gặp lỗi khi chia nhỏ các miếng vá."
+msgstr "Gặp lỗi khi chia nhỏ các bản vá."
 
 #, c-format
-msgid "When you have resolved this problem, run \"%s --continue\"."
-msgstr "Khi bạn đã giải quyết xong trục trặc này, hãy chạy \"%s --continue\"."
+msgid "When you have resolved this problem, run \"%s --continue\".\n"
+msgstr ""
+"Sau khi bạn đã giải quyết xong vấn đề, hãy chạy lệnh\"%s --continue\".\n"
 
 #, c-format
-msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
-msgstr ""
-"Nếu bạn muốn bỏ qua miếng vá này, hãy chạy lệnh \"%s --skip\" để thay thế."
+msgid "If you prefer to skip this patch, run \"%s --skip\" instead.\n"
+msgstr "Nếu bạn muốn bỏ qua bản vá này, hãy chạy lệnh \"%s --skip\".\n"
 
 #, c-format
-msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
+msgid ""
+"To record the empty patch as an empty commit, run \"%s --allow-empty\".\n"
 msgstr ""
-"Để ghi một miếng vá trống rỗng như một lần chuyển giao rông, \"%s --allow-"
-"empty\"."
+"Để ghi lại lần chuyển giao rỗng ứng với một bản vá rỗng, hãy chạy \"%s --"
+"allow-empty\".\n"
 
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
@@ -1956,7 +2007,7 @@ msgstr "Để phục hồi lại nhánh gốc và dừng vá, hãy chạy \"%s -
 
 msgid "Patch sent with format=flowed; space at the end of lines might be lost."
 msgstr ""
-"Miếng vá được gửi với format=flowed; khoảng trống ở cuối của các dòng có thể "
+"bản vá được gửi với format=flowed; khoảng trống ở cuối của các dòng có thể "
 "bị mất."
 
 #, c-format
@@ -1969,24 +2020,24 @@ msgstr "dòng định danh không hợp lệ: %.*s"
 
 #, c-format
 msgid "unable to parse commit %s"
-msgstr "không thể phân tích lần chuyển giao “%s”"
+msgstr "không thể đọc lần chuyển giao '%s'"
 
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
-msgstr "Kho thiếu đối tượng blob cần thiết để thực hiện “3-way merge”."
+msgstr "Kho thiếu đối tượng blob cần thiết để thực hiện '3-way merge'."
 
 msgid "Using index info to reconstruct a base tree..."
 msgstr ""
-"Sử dụng thông tin trong bảng mục lục để cấu trúc lại một cây (tree) cơ sở…"
+"Sử dụng thông tin trong chỉ mục để cấu trúc lại một cây (tree) cơ sở..."
 
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
 msgstr ""
-"Bạn đã sửa miếng vá của mình bằng cách thủ công à?\n"
-"Nó không thể áp dụng các blob đã được ghi lại trong bảng mục lục của nó."
+"Bạn đã sửa bản vá của mình bằng cách thủ công à?\n"
+"Nó không thể áp dụng các blob đã được ghi lại trong chỉ mục của nó."
 
 msgid "Falling back to patching base and 3-way merge..."
-msgstr "Đang dùng phương án dự phòng: vá bản cơ sở và “hòa trộn 3-đường”…"
+msgstr "Đang dùng phương án dự phòng: vá bản cơ sở và 'hòa trộn 3-đường'..."
 
 msgid "Failed to merge in the changes."
 msgstr "Gặp lỗi khi trộn vào các thay đổi."
@@ -2018,11 +2069,12 @@ msgstr ""
 "cả [a]: "
 
 msgid "unable to write index file"
-msgstr "không thể ghi tập tin lưu mục lục"
+msgstr "không thể ghi tập tin chỉ mục"
 
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
-msgstr "Bảng mục lục bẩn: không thể áp dụng các miếng vá (bẩn: %s)"
+msgstr ""
+"chỉ mục không sạch sẽ: không thể áp dụng các bản vá (còn không sạch: %s)"
 
 #, c-format
 msgid "Skipping: %.*s"
@@ -2033,21 +2085,21 @@ msgid "Creating an empty commit: %.*s"
 msgstr "Đang tạo một lần chuyển giao trống rỗng: %.*s"
 
 msgid "Patch is empty."
-msgstr "Miếng vá trống rỗng."
+msgstr "bản vá trống rỗng."
 
 #, c-format
 msgid "Applying: %.*s"
 msgstr "Áp dụng: %.*s"
 
 msgid "No changes -- Patch already applied."
-msgstr "Không thay đổi gì cả -- Miếng vá đã được áp dụng rồi."
+msgstr "Không thay đổi gì cả -- bản vá đã được áp dụng rồi."
 
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "Gặp lỗi khi vá tại %s %.*s"
 
 msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
-msgstr "Dùng “git am --show-current-patch=diff” để xem miếng vá bị lỗi"
+msgstr "Dùng 'git am --show-current-patch=diff' để xem bản vá bị lỗi"
 
 msgid "No changes - recorded it as an empty commit."
 msgstr "Không có thay đổi nào - được ghi thành một lần chuyển giao rỗng."
@@ -2057,7 +2109,7 @@ msgid ""
 "If there is nothing left to stage, chances are that something else\n"
 "already introduced the same changes; you might want to skip this patch."
 msgstr ""
-"Không có thay đổi nào - bạn đã quên sử dụng lệnh “git add” à?\n"
+"Không có thay đổi nào - bạn đã quên sử dụng lệnh 'git add' à?\n"
 "Nếu ở đây không có gì còn lại stage, tình cờ là có một số thứ khác\n"
 "đã sẵn được đưa vào với cùng nội dung thay đổi; bạn có lẽ muốn bỏ qua miếng "
 "vá này."
@@ -2069,38 +2121,31 @@ msgid ""
 "You might run `git rm` on a file to accept \"deleted by them\" for it."
 msgstr ""
 "Bạn vẫn có những đường dẫn chưa hòa trộn trong chỉ mục của bạn.\n"
-"Bạn nên “git add” từng tập tin với các xung đột đã được giải quyết để đánh "
+"Bạn nên 'git add' từng tập tin với các xung đột đã được giải quyết để đánh "
 "dấu chúng là thế.\n"
-"Bạn có lẽ muốn chạy “git rm“ trên một tập tin để chấp nhận \"được xóa bởi họ"
-"\" cho nó."
-
-msgid "unable to write new index file"
-msgstr "không thể ghi tập tin lưu bảng mục lục mới"
+"Bạn có lẽ muốn chạy 'git rm' trên một tập tin để chấp nhận \"được xóa bởi "
+"họ\" cho nó."
 
 #, c-format
 msgid "Could not parse object '%s'."
-msgstr "Không thể phân tích đối tượng “%s”."
+msgstr "Không thể đọc đối tượng '%s'."
 
 msgid "failed to clean index"
-msgstr "gặp lỗi khi dọn bảng mục lục"
+msgstr "gặp lỗi khi dọn chỉ mục"
 
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
 msgstr ""
-"Bạn có lẽ đã có HEAD đã bị di chuyển đi kể từ lần “am” thất bại cuối cùng.\n"
+"Bạn có lẽ đã có HEAD đã bị di chuyển đi kể từ lần 'am' thất bại cuối cùng.\n"
 "Không thể chuyển tới ORIG_HEAD"
 
 #, c-format
 msgid "failed to read '%s'"
-msgstr "gặp lỗi khi đọc “%s”"
-
-#, c-format
-msgid "options '%s=%s' and '%s=%s' cannot be used together"
-msgstr "tùy chọn '%s=%s' và '%s=%s' không thể dùng cùng nhau"
+msgstr "gặp lỗi khi đọc '%s'"
 
 msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
-msgstr "git am [<các tùy chọn>] [(<mbox>|<Maildir>)]"
+msgstr "git am [<các tùy chọn>] [(<mbox>|<Maildir>)...]"
 
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<các tùy chọn>] (--continue | --skip | --abort)"
@@ -2108,11 +2153,14 @@ msgstr "git am [<các tùy chọn>] (--continue | --skip | --abort)"
 msgid "run interactively"
 msgstr "chạy kiểu tương tác"
 
+msgid "bypass pre-applypatch and applypatch-msg hooks"
+msgstr "bỏ qua hook pre-applypatch và applypatch-msg"
+
 msgid "historical option -- no-op"
-msgstr "tùy chọn lịch sử -- không-toán-tử"
+msgstr "tùy chọn cũ -- không làm gì cả"
 
 msgid "allow fall back on 3way merging if needed"
-msgstr "cho phép quay trở lại để hòa trộn kiểu “3way” nếu cần"
+msgstr "cho phép quay trở lại để hòa trộn kiểu 3way nếu cần"
 
 msgid "be quiet"
 msgstr "im lặng"
@@ -2135,10 +2183,6 @@ msgstr "chuyển cờ -m cho git-mailinfo"
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "chuyển cờ --keep-cr cho git-mailsplit với định dạng mbox"
 
-msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
-msgstr ""
-"đừng chuyển cờ --keep-cr cho git-mailsplit không phụ thuộc vào am.keepcr"
-
 msgid "strip everything before a scissors line"
 msgstr "cắt mọi thứ trước dòng scissors"
 
@@ -2155,31 +2199,31 @@ msgid "format"
 msgstr "định dạng"
 
 msgid "format the patch(es) are in"
-msgstr "định dạng (các) miếng vá theo"
+msgstr "định dạng (các) bản vá theo"
 
 msgid "override error message when patch failure occurs"
 msgstr "đè lên các lời nhắn lỗi khi xảy ra lỗi vá nghiêm trọng"
 
 msgid "continue applying patches after resolving a conflict"
-msgstr "tiếp tục áp dụng các miếng vá sau khi giải quyết xung đột"
+msgstr "tiếp tục áp dụng các bản vá sau khi giải quyết xung đột"
 
 msgid "synonyms for --continue"
 msgstr "đồng nghĩa với --continue"
 
 msgid "skip the current patch"
-msgstr "bỏ qua miếng vá hiện hành"
+msgstr "bỏ qua bản vá hiện hành"
 
 msgid "restore the original branch and abort the patching operation"
-msgstr "phục hồi lại nhánh gốc và loại bỏ thao tác vá"
+msgstr "phục hồi lại nhánh gốc và huỷ thao tác vá"
 
 msgid "abort the patching operation but keep HEAD where it is"
-msgstr "bỏ qua thao tác vá nhưng vẫn giữ HEAD nơi nó chỉ đến"
+msgstr "huỷ thao tác vá nhưng vẫn giữ HEAD nơi nó chỉ đến"
 
 msgid "show the patch being applied"
-msgstr "hiển thị miếng vá đã được áp dụng rồi"
+msgstr "hiển thị bản vá đã được áp dụng rồi"
 
 msgid "record the empty patch as an empty commit"
-msgstr "ghi lại miếng vá trống rỗng như là một lần chuyển giao trống"
+msgstr "ghi lại bản vá trống rỗng như là một lần chuyển giao trống"
 
 msgid "lie about committer date"
 msgstr "nói dối về ngày chuyển giao"
@@ -2194,7 +2238,7 @@ msgid "GPG-sign commits"
 msgstr "Các lần chuyển giao ký-GPG"
 
 msgid "how to handle empty patches"
-msgstr "xử lý các miếng vá trống rỗng như thế nào"
+msgstr "xử lý các bản vá trống rỗng như thế nào"
 
 msgid "(internal use for git-rebase)"
 msgstr "(dùng nội bộ cho git-rebase)"
@@ -2204,10 +2248,10 @@ msgid ""
 "it will be removed. Please do not use it anymore."
 msgstr ""
 "Tùy chọn -b/--binary đã không dùng từ lâu rồi, và\n"
-"nó sẽ được bỏ đi. Xin đừng sử dụng nó thêm nữa."
+"nó sẽ được bỏ đi. Xin đừng sử dụng nó nữa."
 
 msgid "failed to read the index"
-msgstr "gặp lỗi đọc bảng mục lục"
+msgstr "gặp lỗi đọc chỉ mục"
 
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
@@ -2222,16 +2266,16 @@ msgstr ""
 "Dùng \"git am --abort\" để loại bỏ nó đi."
 
 msgid "Resolve operation not in progress, we are not resuming."
-msgstr "Thao tác phân giải không được tiến hành, chúng ta không phục hồi lại."
+msgstr "Thao tác phân giải không được tiến hành, sẽ không phục hồi lại."
 
 msgid "interactive mode requires patches on the command line"
-msgstr "chế độ tương tác yêu cầu có các miếng vá trên dòng lệnh"
+msgstr "chế độ tương tác yêu cầu có các bản vá trên dòng lệnh"
 
 msgid "git apply [<options>] [<patch>...]"
-msgstr "git apply [<các tùy chọn>] [<miếng-vá>]"
+msgstr "git apply [<các tùy chọn>] [<miếng-vá>...]"
 
 msgid "could not redirect output"
-msgstr "không thể chuyển hướng kết xuất"
+msgstr "không thể chuyển hướng đầu ra"
 
 msgid "git archive: Remote with no URL"
 msgstr "git archive: Máy chủ không có địa chỉ URL"
@@ -2247,58 +2291,53 @@ msgid "git archive: protocol error"
 msgstr "git archive: lỗi giao thức"
 
 msgid "git archive: expected a flush"
-msgstr "git archive: cần một flush (đẩy dữ liệu lên đĩa)"
-
-msgid "git bisect--helper --bisect-reset [<commit>]"
-msgstr "git bisect--helper --bisect-reset [<lần_chuyển_giao>]"
+msgstr "git archive: cần flush dữ liệu"
 
 msgid ""
-"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
-"=<term>] [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] "
-"[<paths>...]"
+"git bisect start [--term-(new|bad)=<term> --term-(old|good)=<term>]    [--no-"
+"checkout] [--first-parent] [<bad> [<good>...]] [--]    [<pathspec>...]"
 msgstr ""
-"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
-"=<term>] [--no-checkout] [--first-parent] [<bad> [<good>…]] [--] [</các/"
-"đường/dẫn>…]"
+"git bisect start [--term-(new|bad)=<term> --term-(old|good)=<term>]    [--no-"
+"checkout] [--first-parent] [<bad> [<good>...]] [--]    [<đường/dẫn>...]"
 
-msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
-msgstr "git bisect--helper --bisect-state (bad|new) [<lần_chuyển_giao>]"
+msgid "git bisect (good|bad) [<rev>...]"
+msgstr "git bisect (good|bad) [<rev>...]"
 
-msgid "git bisect--helper --bisect-state (good|old) [<rev>...]"
-msgstr "git bisect--helper --bisect-state (good|old) [<lần_chuyển_giao>…]"
+msgid "git bisect skip [(<rev>|<range>)...]"
+msgstr "git bisect skip [(<rev>|<vùng>)...]"
 
-msgid "git bisect--helper --bisect-replay <filename>"
-msgstr "git bisect--helper --bisect-replay <tên_tập_tin>"
+msgid "git bisect reset [<commit>]"
+msgstr "git bisect reset [<lần_chuyển_giao>]"
 
-msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
-msgstr "git bisect--helper --bisect-skip [(<rev>|<vùng>)…]"
+msgid "git bisect replay <logfile>"
+msgstr "git bisect replay <tên_tập tin>"
 
-msgid "git bisect--helper --bisect-run <cmd>..."
-msgstr "git bisect--helper --bisect-run <lệnh>…"
+msgid "git bisect run <cmd> [<arg>...]"
+msgstr "git bisect run <lệnh> [<đối_số>]..."
 
 #, c-format
 msgid "cannot open file '%s' in mode '%s'"
-msgstr "không thể mở tập tin “%s” ở chế độ “%s”"
+msgstr "không thể mở tập tin '%s' ở chế độ '%s'"
 
 #, c-format
 msgid "could not write to file '%s'"
-msgstr "không thể ghi vào tập tin “%s”"
+msgstr "không thể ghi vào tập tin '%s'"
 
 #, c-format
 msgid "cannot open file '%s' for reading"
-msgstr "không thể mở tập tin “%s” để đọc"
+msgstr "không thể mở tập tin '%s' để đọc"
 
 #, c-format
 msgid "'%s' is not a valid term"
-msgstr "“%s” không phải một thời hạn hợp lệ"
+msgstr "'%s' không phải một thời hạn hợp lệ"
 
 #, c-format
 msgid "can't use the builtin command '%s' as a term"
-msgstr "không thể dùng lệnh tích hợp “%s” như là một thời kỳ"
+msgstr "không thể dùng lệnh tích hợp '%s' như là một thời kỳ"
 
 #, c-format
 msgid "can't change the meaning of the term '%s'"
-msgstr "không thể thay đổi nghĩa của thời kỳ “%s”"
+msgstr "không thể thay đổi nghĩa của thời kỳ '%s'"
 
 msgid "please use two different terms"
 msgstr "vui lòng dùng hai thời kỳ khác nhau"
@@ -2309,14 +2348,14 @@ msgstr "Chúng tôi đang không bisect.\n"
 
 #, c-format
 msgid "'%s' is not a valid commit"
-msgstr "“%s” không phải một lần chuyển giao hợp lệ"
+msgstr "'%s' không phải một lần chuyển giao hợp lệ"
 
 #, c-format
 msgid ""
 "could not check out original HEAD '%s'. Try 'git bisect reset <commit>'."
 msgstr ""
-"không thể lấy ra HEAD nguyên thủy của “%s”. Hãy thử “git bisect reset <lần-"
-"chuyển-giao>."
+"không thể checkout HEAD nguyên thủy của '%s'. Hãy thử 'git bisect reset <lần-"
+"chuyển-giao>'."
 
 #, c-format
 msgid "Bad bisect_write argument: %s"
@@ -2324,11 +2363,11 @@ msgstr "Đối số bisect_write sai: %s"
 
 #, c-format
 msgid "couldn't get the oid of the rev '%s'"
-msgstr "không thể lấy oid của điểm xét duyệt “%s”"
+msgstr "không thể lấy oid của điểm xét duyệt '%s'"
 
 #, c-format
 msgid "couldn't open the file '%s'"
-msgstr "không thể mở tập tin “%s”"
+msgstr "không thể mở tập tin '%s'"
 
 #, c-format
 msgid "Invalid command: you're currently in a %s/%s bisect"
@@ -2393,7 +2432,7 @@ msgid ""
 "invalid argument %s for 'git bisect terms'.\n"
 "Supported options are: --term-good|--term-old and --term-bad|--term-new."
 msgstr ""
-"tham số không hợp lệ %s cho “git bisect terms”.\n"
+"tham số không hợp lệ %s cho 'git bisect terms'.\n"
 "Các tùy chọn hỗ trợ là: --term-good|--term-old và --term-bad|--term-new."
 
 msgid "revision walk setup failed\n"
@@ -2401,35 +2440,32 @@ msgstr "gặp lỗi cài đặt việc di chuyển qua các điểm xét duyệt
 
 #, c-format
 msgid "could not open '%s' for appending"
-msgstr "không thể mở “%s” để nối thêm"
+msgstr "không thể mở '%s' để nối thêm"
 
 msgid "'' is not a valid term"
-msgstr "” không phải một thời hạn hợp lệ"
+msgstr "'' không phải term hợp lệ"
 
 #, c-format
 msgid "unrecognized option: '%s'"
-msgstr "tùy chọn không được thừa nhận: “%s”"
+msgstr "không nhận ra tuỳ chọn: '%s'"
 
 #, c-format
 msgid "'%s' does not appear to be a valid revision"
-msgstr "“%s” không có vẻ như là một điểm xét duyệt hợp lệ"
+msgstr "'%s' không có vẻ như là một điểm xét duyệt hợp lệ"
 
 msgid "bad HEAD - I need a HEAD"
 msgstr "sai HEAD - Tôi cần một HEAD"
 
 #, c-format
 msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'."
-msgstr "lấy ra “%s” ra gặp lỗi. Hãy thử \"git bisect reset <nhánh_hợp_lệ>\"."
-
-msgid "won't bisect on cg-seek'ed tree"
-msgstr "sẽ không di chuyển nửa bước trên cây được cg-seek"
+msgstr "checkout '%s' ra gặp lỗi. Hãy thử \"git bisect reset <nhánh_hợp_lệ>\"."
 
 msgid "bad HEAD - strange symbolic ref"
 msgstr "sai HEAD - tham chiếu mềm kỳ lạ"
 
 #, c-format
 msgid "invalid ref: '%s'"
-msgstr "refspec không hợp lệ: “%s”"
+msgstr "refspec không hợp lệ: '%s'"
 
 msgid "You need to start by \"git bisect start\"\n"
 msgstr "Bạn cần khởi đầu bằng \"git bisect start\"\n"
@@ -2442,11 +2478,11 @@ msgid "Do you want me to do it for you [Y/n]? "
 msgstr "Bạn có muốn tôi thực hiện điều này cho bạn không [Y/n]? "
 
 msgid "Please call `--bisect-state` with at least one argument"
-msgstr "Hãy gọi “--bisect-state” với ít nhất một đối số"
+msgstr "Hãy gọi '--bisect-state' với ít nhất một đối số"
 
 #, c-format
 msgid "'git bisect %s' can take only one argument."
-msgstr "“git bisect %s” có thể lấy chỉ một đối số."
+msgstr "'git bisect %s' có thể lấy chỉ một đối số."
 
 #, c-format
 msgid "Bad rev input: %s"
@@ -2461,11 +2497,11 @@ msgstr "Chúng tôi không bisect."
 
 #, c-format
 msgid "'%s'?? what are you talking about?"
-msgstr "“%s”?? bạn đang nói gì thế?"
+msgstr "'%s'?? bạn đang nói gì thế?"
 
 #, c-format
 msgid "cannot read file '%s' for replaying"
-msgstr "không thể đọc tập tin “%s” để thao diễn lại"
+msgstr "không thể đọc tập tin '%s' để thao diễn lại"
 
 #, c-format
 msgid "running %s\n"
@@ -2475,97 +2511,68 @@ msgid "bisect run failed: no command provided."
 msgstr "bisect chạy gặp lỗi: không đưa ra lệnh."
 
 #, c-format
-msgid "unable to verify '%s' on good revision"
-msgstr "không thể xác nhận “%s” trên điểm xét duyệt tốt"
+msgid "unable to verify %s on good revision"
+msgstr "không thể xác nhận '%s' trên điểm xét duyệt tốt"
 
 #, c-format
 msgid "bogus exit code %d for good revision"
-msgstr "mã thoát giả %d cho điểm xét duyệt tốt"
+msgstr "mã trả về %d bất thường cho điểm xét duyệt tốt"
 
 #, c-format
-msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
-msgstr "chạy bisect gặp lỗi: mã trả về %d từ lệnh “%s” là < 0 hoặc >= 128"
+msgid "bisect run failed: exit code %d from %s is < 0 or >= 128"
+msgstr "bisect gặp lỗi: mã trả về %d từ lệnh '%s' < 0 hoặc >= 128"
 
 #, c-format
 msgid "cannot open file '%s' for writing"
-msgstr "không thể mở “%s” để ghi"
+msgstr "không thể mở '%s' để ghi"
 
 msgid "bisect run cannot continue any more"
-msgstr "bisect không thể tiếp tục thêm được nữa"
+msgstr "không thể tiếp tục bisect thêm được nữa"
 
-#, c-format
 msgid "bisect run success"
-msgstr "bisect chạy thành công"
+msgstr "bisect thành công"
 
-#, c-format
 msgid "bisect found first bad commit"
 msgstr "bisect tìm thấy lần chuyển giao sai đầu tiên"
 
 #, c-format
-msgid ""
-"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
-"code %d"
-msgstr ""
-"chạy bisect gặp lỗi: “git bisect--helper --bisect-state %s” đã thoát ra với "
-"mã lỗi %d"
-
-msgid "reset the bisection state"
-msgstr "đặt lại trạng di chuyển nửa bước"
-
-msgid "check whether bad or good terms exist"
-msgstr "kiểm tra xem các thời điểm xấu/tốt có tồn tại không"
-
-msgid "print out the bisect terms"
-msgstr "in ra các thời điểm di chuyển nửa bước"
-
-msgid "start the bisect session"
-msgstr "bắt đầu phiên di chuyển nửa bước"
-
-msgid "find the next bisection commit"
-msgstr "tìm lần chuyển giao không di chuyển phân đôi"
-
-msgid "mark the state of ref (or refs)"
-msgstr "đánh dấu trạng thái ref (hoặc refs)"
+msgid "bisect run failed: 'git bisect %s' exited with error code %d"
+msgstr "bisect gặp lỗi: 'git bisect %s' đã thoát với mã lỗi %d"
 
-msgid "list the bisection steps so far"
-msgstr "liệt kê các bước bisection đi quá xa"
-
-msgid "replay the bisection process from the given file"
-msgstr "phát lại quá trình bisection từ tệp đã cho"
-
-msgid "skip some commits for checkout"
-msgstr "bỏ qua một số lần chuyển giao để lấy ra"
-
-msgid "visualize the bisection"
-msgstr "trực quan việc di chuyển nửa bước"
-
-msgid "use <cmd>... to automatically bisect"
-msgstr "dùng <cmd>… để bisect một cách tự động"
+#, c-format
+msgid "'%s' requires either no argument or a commit"
+msgstr "'%s' không nhận đối số hay lần chuyển giao"
 
-msgid "no log for BISECT_WRITE"
-msgstr "không có nhật ký cho BISECT_WRITE"
+#, c-format
+msgid "'%s' requires 0 or 1 argument"
+msgstr "%s cần 0 hoặc 1 tham số"
 
-msgid "--bisect-reset requires either no argument or a commit"
-msgstr ""
-"--bisect-reset requires không nhận đối số cũng không nhận lần chuyển giao"
+#, c-format
+msgid "'%s' requires 0 arguments"
+msgstr "%s không cần tham số"
 
-msgid "--bisect-terms requires 0 or 1 argument"
-msgstr "--bisect-terms cần 0 hoặc 1 tham số"
+msgid "no logfile given"
+msgstr "chưa chỉ ra tập tin ghi nhật ký"
 
-msgid "--bisect-next requires 0 arguments"
-msgstr "--bisect-next cần 0 tham số"
+#, c-format
+msgid "'%s' failed: no command provided."
+msgstr "'%s' gặp lỗi: không chỉ ra lệnh."
 
-msgid "--bisect-log requires 0 arguments"
-msgstr "--bisect-log cần 0 tham số"
+msgid "need a command"
+msgstr "cần chỉ ra lệnh"
 
-msgid "no logfile given"
-msgstr "chưa chỉ ra tập tin ghi nhật ký"
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "không hiểu câu lệnh: '%s'"
 
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<các tùy chọn>] [<rev-opts>] [<rev>] [--] <tập-tin>"
 
+msgid "git annotate [<options>] [<rev-opts>] [<rev>] [--] <file>"
+msgstr "git annotate [<các tùy chọn>] [<rev-opts>] [<rev>] [--] <tập-tin>"
+
 msgid "<rev-opts> are documented in git-rev-list(1)"
-msgstr "<rev-opts> được mô tả trong tài liệu git-rev-list(1)"
+msgstr "<rev-opts> được mô tả trong git-rev-list(1)"
 
 #, c-format
 msgid "expecting a color: %s"
@@ -2576,10 +2583,10 @@ msgstr "phải kết thúc bằng một màu"
 
 #, c-format
 msgid "cannot find revision %s to ignore"
-msgstr "không thể tìm thấy điểm xét duyệt %s để mà bỏ qua"
+msgstr "không thể tìm thấy điểm xét duyệt %s để bỏ qua"
 
 msgid "show blame entries as we find them, incrementally"
-msgstr "hiển thị các mục “blame” như là chúng ta thấy chúng, tăng dần"
+msgstr "hiển thị các mục 'blame' theo thời gian, tăng dần"
 
 msgid "do not show object names of boundary commits (Default: off)"
 msgstr ""
@@ -2593,10 +2600,10 @@ msgid "show work cost statistics"
 msgstr "hiển thị thống kê công sức làm việc"
 
 msgid "force progress reporting"
-msgstr "ép buộc báo cáo tiến triển công việc"
+msgstr "ép buộc báo cáo tiến độ công việc"
 
 msgid "show output score for blame entries"
-msgstr "hiển thị kết xuất điểm số cho các mục tin “blame”"
+msgstr "hiển thị kết xuất điểm số cho các mục tin 'blame'"
 
 msgid "show original filename (Default: auto)"
 msgstr "hiển thị tên tập tin gốc (Mặc định: auto)"
@@ -2608,7 +2615,7 @@ msgid "show in a format designed for machine consumption"
 msgstr "hiển thị ở định dạng đã thiết kế cho dùng bằng máy"
 
 msgid "show porcelain format with per-line commit information"
-msgstr "hiển thị định dạng “porcelain” với thông tin chuyển giao mỗi dòng"
+msgstr "hiển thị định dạng 'porcelain' với thông tin chuyển giao mỗi dòng"
 
 msgid "use the same output mode as git-annotate (Default: off)"
 msgstr "dùng cùng chế độ xuất ra với git-annotate (Mặc định: off)"
@@ -2648,7 +2655,7 @@ msgstr "tiêu thụ thêm năng tài nguyên máy móc để tìm kiếm tốt h
 
 msgid "use revisions from <file> instead of calling git-rev-list"
 msgstr ""
-"sử dụng các điểm xét duyệt (revision) từ <tập tin> thay vì gọi “git-rev-list”"
+"sử dụng các điểm xét duyệt (revision) từ <tập tin> thay vì gọi 'git-rev-list'"
 
 msgid "use <file>'s contents as the final image"
 msgstr "sử dụng nội dung của <tập tin> như là ảnh cuối cùng"
@@ -2681,7 +2688,7 @@ msgstr ""
 #. columns.
 #.
 msgid "4 years, 11 months ago"
-msgstr "4 năm, 11 tháng trước"
+msgstr "11 tháng, 28 ngày trước"
 
 #, c-format
 msgid "file %s has only %lu line"
@@ -2705,7 +2712,7 @@ msgid "git branch [<options>] [-l] [<pattern>...]"
 msgstr "git branch [<các tùy chọn>] [-l] [<mẫu>...]"
 
 msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
-msgstr "git branch [<các tùy chọn>] [-r] (-d | -D) <tên-nhánh> "
+msgstr "git branch [<các tùy chọn>] [-r] (-d | -D) <tên-nhánh> ..."
 
 msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
 msgstr "git branch [<các tùy chọn>] (-m | -M) [<nhánh-cũ>] <nhánh-mới>"
@@ -2722,51 +2729,56 @@ msgstr "git branch [<các tùy chọn>] [-r | -a] [--format]"
 #, c-format
 msgid ""
 "deleting branch '%s' that has been merged to\n"
-"         '%s', but not yet merged to HEAD."
+"         '%s', but not yet merged to HEAD"
 msgstr ""
-"đang xóa nhánh “%s” mà nó lại đã được hòa trộn vào\n"
-"         “%s”, nhưng vẫn chưa được hòa trộn vào HEAD."
+"đang xóa nhánh '%s' đã được hòa trộn vào\n"
+"         '%s', nhưng vẫn chưa được hòa trộn vào HEAD."
 
 #, c-format
 msgid ""
 "not deleting branch '%s' that is not yet merged to\n"
-"         '%s', even though it is merged to HEAD."
+"         '%s', even though it is merged to HEAD"
 msgstr ""
-"không xóa nhánh “%s” cái mà chưa được hòa trộn vào\n"
-"         “%s”, cho dù là nó đã được hòa trộn vào HEAD."
+"không xóa nhánh '%s' chưa được hòa trộn vào\n"
+"         '%s', dù đã được hòa trộn vào HEAD."
 
 #, c-format
-msgid "Couldn't look up commit object for '%s'"
-msgstr "Không thể tìm kiếm đối tượng chuyển giao cho “%s”"
+msgid "couldn't look up commit object for '%s'"
+msgstr "Không thể tìm kiếm đối tượng chuyển giao cho '%s'"
 
 #, c-format
-msgid ""
-"The branch '%s' is not fully merged.\n"
-"If you are sure you want to delete it, run 'git branch -D %s'."
-msgstr ""
-"Nhánh “%s” không được trộn một cách đầy đủ.\n"
-"Nếu bạn thực sự muốn xóa nó, thì chạy lệnh “git branch -D %s”."
+msgid "the branch '%s' is not fully merged"
+msgstr "nhánh '%s' chưa được hoà trộn."
+
+#, c-format
+msgid "If you are sure you want to delete it, run 'git branch -D %s'"
+msgstr "Nếu bạn thực sự muốn xóa nó, hãy chạy lệnh 'git branch -D %s'."
 
-msgid "Update of config-file failed"
-msgstr "Cập nhật tập tin cấu hình gặp lỗi"
+msgid "update of config-file failed"
+msgstr "cập nhật tập tin cấu hình gặp lỗi"
 
 msgid "cannot use -a with -d"
 msgstr "không thể dùng tùy chọn -a với -d"
 
-msgid "Couldn't look up commit object for HEAD"
-msgstr "Không thể tìm kiếm đối tượng chuyển giao cho HEAD"
+#, c-format
+msgid "cannot delete branch '%s' used by worktree at '%s'"
+msgstr "chông thể xóa nhánh '%s' đang được sử dụng tại cây làm việc '%s'"
 
 #, c-format
-msgid "Cannot delete branch '%s' checked out at '%s'"
-msgstr "Không thể xóa nhánh “%s” đã được lấy ra tại “%s”"
+msgid "remote-tracking branch '%s' not found"
+msgstr "không tìm thấy nhánh theo dõi máy chủ '%s'."
 
 #, c-format
-msgid "remote-tracking branch '%s' not found."
-msgstr "không tìm thấy nhánh theo dõi máy chủ “%s”."
+msgid ""
+"branch '%s' not found.\n"
+"Did you forget --remote?"
+msgstr ""
+"không tìm thấy nhánh '%s'.\n"
+"Bạn có quên dùng --remote không?"
 
 #, c-format
-msgid "branch '%s' not found."
-msgstr "không tìm thấy nhánh “%s”."
+msgid "branch '%s' not found"
+msgstr "không tìm thấy nhánh '%s'."
 
 #, c-format
 msgid "Deleted remote-tracking branch %s (was %s).\n"
@@ -2774,10 +2786,10 @@ msgstr "Đã xóa nhánh theo dõi máy chủ \"%s\" (từng là %s).\n"
 
 #, c-format
 msgid "Deleted branch %s (was %s).\n"
-msgstr "Nhánh “%s” đã bị xóa (từng là %s)\n"
+msgstr "Nhánh '%s' đã bị xóa (từng là %s)\n"
 
 msgid "unable to parse format string"
-msgstr "không thể phân tích chuỗi định dạng"
+msgstr "không thể đọc chuỗi định dạng"
 
 msgid "could not resolve HEAD"
 msgstr "không thể phân giải HEAD"
@@ -2787,56 +2799,62 @@ msgid "HEAD (%s) points outside of refs/heads/"
 msgstr "HEAD (%s) chỉ bên ngoài của refs/heads/"
 
 #, c-format
-msgid "Branch %s is being rebased at %s"
-msgstr "Nhánh %s đang được cải tổ lại tại %s"
+msgid "branch %s is being rebased at %s"
+msgstr "Nhánh %s đang được cải tổ tại %s"
 
 #, c-format
-msgid "Branch %s is being bisected at %s"
-msgstr "Nhánh %s đang được di chuyển phân đôi (bisect) tại %s"
+msgid "branch %s is being bisected at %s"
+msgstr "Nhánh %s đang được bisect tại %s"
 
-msgid "cannot copy the current branch while not on any."
-msgstr "không thể sao chép nhánh hiện hành trong khi nó chẳng ở đâu cả."
+#, c-format
+msgid "HEAD of working tree %s is not updated"
+msgstr "HEAD của cây làm việc %s chưa được cập nhật"
+
+#, c-format
+msgid "invalid branch name: '%s'"
+msgstr "tên nhánh không hợp lệ: '%s'"
 
-msgid "cannot rename the current branch while not on any."
-msgstr "không thể đổi tên nhánh hiện hành trong khi nó chẳng ở đâu cả."
+#, c-format
+msgid "no commit on branch '%s' yet"
+msgstr "vẫn chưa chuyển giao trên nhánh '%s'."
 
 #, c-format
-msgid "Invalid branch name: '%s'"
-msgstr "Tên nhánh không hợp lệ: “%s”"
+msgid "no branch named '%s'"
+msgstr "không có nhánh nào có tên '%s'."
 
-msgid "Branch rename failed"
-msgstr "Gặp lỗi khi đổi tên nhánh"
+msgid "branch rename failed"
+msgstr "gặp lỗi khi đổi tên nhánh"
 
-msgid "Branch copy failed"
-msgstr "Gặp lỗi khi sao chép nhánh"
+msgid "branch copy failed"
+msgstr "gặp lỗi khi sao chép nhánh"
 
 #, c-format
-msgid "Created a copy of a misnamed branch '%s'"
-msgstr "Ä\90ã tạo má»\99t bản sao của nhánh khuyết danh â\80\9c%sâ\80\9d"
+msgid "created a copy of a misnamed branch '%s'"
+msgstr "Ä\91ã tạo má»\99t bản sao của nhánh khuyết danh '%s'"
 
 #, c-format
-msgid "Renamed a misnamed branch '%s' away"
-msgstr "Ä\90ã Ä\91á»\95i tên nhánh khuyết danh â\80\9c%sâ\80\9d Ä\91i"
+msgid "renamed a misnamed branch '%s' away"
+msgstr "Ä\91ã Ä\91á»\95i tên nhánh khuyết danh '%s'"
 
 #, c-format
-msgid "Branch renamed to %s, but HEAD is not updated!"
-msgstr "Nhánh bị đổi tên thành %s, nhưng HEAD lại không được cập nhật!"
+msgid "branch renamed to %s, but HEAD is not updated"
+msgstr "đã đổi tên nhánh thành %s, nhưng HEAD không được cập nhật"
 
-msgid "Branch is renamed, but update of config-file failed"
-msgstr "Nhánh bị đổi tên, nhưng cập nhật tập tin cấu hình gặp lỗi"
+msgid "branch is renamed, but update of config-file failed"
+msgstr "đã đổi tên nhánh, nhưng cập nhật tập tin cấu hình gặp lỗi"
 
-msgid "Branch is copied, but update of config-file failed"
-msgstr "Nhánh đã được sao chép, nhưng cập nhật tập tin cấu hình gặp lỗi"
+msgid "branch is copied, but update of config-file failed"
+msgstr "đã sao chép nhánh, nhưng cập nhật tập tin cấu hình gặp lỗi"
 
 #, c-format
 msgid ""
 "Please edit the description for the branch\n"
 "  %s\n"
-"Lines starting with '%c' will be stripped.\n"
+"Lines starting with '%s' will be stripped.\n"
 msgstr ""
-"Viết các ghi chú cho nhánh:\n"
+"Viết các ghi chú cho nhánh\n"
 "  %s\n"
-"Những dòng được bắt đầu bằng “%c” sẽ được cắt bỏ.\n"
+"Những dòng được bắt đầu bằng '%s' sẽ được cắt bỏ.\n"
 
 msgid "Generic options"
 msgstr "Tùy chọn chung"
@@ -2866,7 +2884,7 @@ msgid "use colored output"
 msgstr "tô màu kết xuất"
 
 msgid "act on remote-tracking branches"
-msgstr "thao tác trên nhánh “remote-tracking”"
+msgstr "thao tác trên nhánh 'remote-tracking'"
 
 msgid "print only branches that contain the commit"
 msgstr "chỉ hiển thị những nhánh mà nó chứa lần chuyển giao"
@@ -2878,7 +2896,7 @@ msgid "Specific git-branch actions:"
 msgstr "Hành động git-branch:"
 
 msgid "list both remote-tracking and local branches"
-msgstr "liệt kê cả nhánh “remote-tracking” và nội bộ"
+msgstr "liệt kê cả nhánh 'remote-tracking' và nội bộ"
 
 msgid "delete fully merged branch"
 msgstr "xóa một toàn bộ nhánh đã hòa trộn"
@@ -2892,6 +2910,9 @@ msgstr "di chuyển hay đổi tên một nhánh và reflog của nó"
 msgid "move/rename a branch, even if target exists"
 msgstr "di chuyển hoặc đổi tên một nhánh ngay cả khi đích đã có sẵn"
 
+msgid "do not output a newline after empty formatted refs"
+msgstr "không in ra ký tự xuống dòng sau tham chiếu rỗng"
+
 msgid "copy a branch and its reflog"
 msgstr "sao chép một nhánh và reflog của nó"
 
@@ -2937,8 +2958,8 @@ msgstr "đệ quy xuyên qua mô-đun con"
 msgid "format to use for the output"
 msgstr "định dạng sẽ dùng cho đầu ra"
 
-msgid "Failed to resolve HEAD as a valid ref."
-msgstr "Gặp lỗi khi phân giải HEAD như là một tham chiếu hợp lệ."
+msgid "failed to resolve HEAD as a valid ref"
+msgstr "gặp lỗi khi phân giải HEAD thành một tham chiếu hợp lệ."
 
 msgid "HEAD not found below refs/heads!"
 msgstr "Không tìm thấy HEAD ở dưới refs/heads!"
@@ -2956,22 +2977,20 @@ msgstr "--recurse-submodules chỉ có thể được sử dụng để tạo ra
 msgid "branch name required"
 msgstr "cần chỉ ra tên nhánh"
 
-msgid "Cannot give description to detached HEAD"
-msgstr "Không thể đưa ra mô tả HEAD đã tách rời"
+msgid "cannot give description to detached HEAD"
+msgstr "không thể đưa ra mô tả cho HEAD đã tách rời"
 
 msgid "cannot edit description of more than one branch"
 msgstr "không thể sửa mô tả cho nhiều hơn một nhánh"
 
-#, c-format
-msgid "No commit on branch '%s' yet."
-msgstr "Vẫn chưa chuyển giao trên nhánh “%s”."
+msgid "cannot copy the current branch while not on any"
+msgstr "không thể sao chép nhánh hiện hành khi đang không ở trên nhánh nào."
 
-#, c-format
-msgid "No branch named '%s'."
-msgstr "Không có nhánh nào có tên “%s”."
+msgid "cannot rename the current branch while not on any"
+msgstr "không thể đổi tên nhánh hiện hành khi đang không ở trên nhánh nào."
 
 msgid "too many branches for a copy operation"
-msgstr "quá nhiều nhánh dành cho thao tác sao chép"
+msgstr "quá nhiều nhánh cho thao tác sao chép"
 
 msgid "too many arguments for a rename operation"
 msgstr "quá nhiều tham số cho thao tác đổi tên"
@@ -2981,50 +3000,48 @@ msgstr "quá nhiều tham số để đặt thượng nguồn mới"
 
 #, c-format
 msgid ""
-"could not set upstream of HEAD to %s when it does not point to any branch."
+"could not set upstream of HEAD to %s when it does not point to any branch"
 msgstr ""
-"không thể đặt thượng nguồn của HEAD thành %s khi mà nó chẳng chỉ đến nhánh "
-"nào cả."
+"không thể đặt thượng nguồn của HEAD thành %s khi nó không chỉ đến nhánh nào."
 
 #, c-format
 msgid "no such branch '%s'"
-msgstr "không có nhánh nào như thế “%s”"
+msgstr "không có nhánh nào tên '%s'"
 
 #, c-format
 msgid "branch '%s' does not exist"
-msgstr "chưa có nhánh “%s”"
+msgstr "chưa có nhánh '%s'"
 
 msgid "too many arguments to unset upstream"
 msgstr "quá nhiều tham số để bỏ đặt thượng nguồn"
 
-msgid "could not unset upstream of HEAD when it does not point to any branch."
-msgstr "không thể bỏ đặt thượng nguồn của HEAD không chỉ đến một nhánh nào cả."
+msgid "could not unset upstream of HEAD when it does not point to any branch"
+msgstr "không thể bỏ đặt thượng nguồn của HEAD khi nó không chỉ đến nhánh nào."
 
 #, c-format
-msgid "Branch '%s' has no upstream information"
-msgstr "Nhánh “%s” không có thông tin thượng nguồn"
+msgid "branch '%s' has no upstream information"
+msgstr "nhánh '%s' không có thông tin thượng nguồn"
 
 msgid ""
-"The -a, and -r, options to 'git branch' do not take a branch name.\n"
+"the -a, and -r, options to 'git branch' do not take a branch name.\n"
 "Did you mean to use: -a|-r --list <pattern>?"
 msgstr ""
-"Hai tùy chọn -a và -r áp dụng cho lệnh “git branch” không nhận một tên "
-"nhánh.\n"
-"Có phải ý bạn là dùng: -a|-r --list <mẫu>?"
+"Hai tùy chọn -a, và -r, cho lệnh 'git branch' không nhận một tên nhánh.\n"
+"Có phải ý bạn là: -a|-r --list <mẫu>?"
 
 msgid ""
 "the '--set-upstream' option is no longer supported. Please use '--track' or "
-"'--set-upstream-to' instead."
+"'--set-upstream-to' instead"
 msgstr ""
-"tùy chọn --set-upstream đã không còn được hỗ trợ nữa. Vui lòng dùng --"
-"track” hoặc “--set-upstream-to” để thay thế."
+"tùy chọn --set-upstream đã không còn được hỗ trợ nữa. Vui lòng dùng '--"
+"track' hoặc '--set-upstream-to'"
 
 msgid "git version:\n"
 msgstr "phiên bản git:\n"
 
 #, c-format
 msgid "uname() failed with error '%s' (%d)\n"
-msgstr "uname() gặp lỗi “%s” (%d)\n"
+msgstr "uname() gặp lỗi '%s' (%d)\n"
 
 msgid "compiler info: "
 msgstr "thông tin trình biên dịch: "
@@ -3033,11 +3050,16 @@ msgid "libc info: "
 msgstr "thông tin libc: "
 
 msgid "not run from a git repository - no hooks to show\n"
-msgstr "không chạy từ một kho git - nên chẳng có móc nào để mà hiển thị cả\n"
+msgstr "không chạy từ một kho git - nên chẳng có móc nào để hiển thị cả\n"
 
-msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]"
+msgid ""
+"git bugreport [(-o | --output-directory) <path>]\n"
+"              [(-s | --suffix) <format> | --no-suffix]\n"
+"              [--diagnose[=<mode>]]"
 msgstr ""
-"git bugreport [-o|--output-directory <tập_tin>] [-s|--suffix <định_dạng>]"
+"git bugreport [(-o | --output-directory) <đường dẫn>]\n"
+"              [(-s | --suffix) <định dạng> | --no-suffix]\n"
+"              [--diagnose[=<chế độ>]]"
 
 msgid ""
 "Thank you for filling out a Git bug report!\n"
@@ -3059,29 +3081,45 @@ msgstr ""
 "Cảm ơn bạn đã tạo một báo cáo lỗi Git!\n"
 "Vui lòng trả lời các câu hỏi sau để giúp chúng tôi hiểu vấn đề của bạn.\n"
 "\n"
-"Bạn đã làm gì trước khi lỗi xảy ra? (Các bước để tái tạo sự cố của bạn)\n"
+"Bạn đã làm gì trước khi lỗi xảy ra? (Các bước để tái hiện sự cố của bạn)\n"
 "\n"
 "Điều bạn mong muốn xảy ra? (Hành vi dự kiến)\n"
 "\n"
-"Điều gì đã xảy ra thay thế? (Hành vi thực tế)\n"
+"Điều gì đã xảy ra? (Hành vi thực tế)\n"
 "\n"
 "Có gì khác biệt giữa những gì bạn mong đợi và những gì thực sự xảy ra?\n"
 "\n"
-"Bất kỳ thứ gì khác bạn muốn thêm:\n"
+"Những thứ khác bạn muốn thêm:\n"
 "\n"
-"Vui lòng xen xét phần còn lại của báo cáo lỗi bên dưới.\n"
+"Vui lòng xem xét phần còn lại của báo cáo lỗi bên dưới.\n"
 "Bạn có thể xóa bất kỳ dòng nào bạn không muốn chia sẻ.\n"
 
-msgid "specify a destination for the bugreport file"
-msgstr "chá»\89 Ä\91á»\8bnh thÆ° mục Ä\91á»\8bnh Ä\91á»\83 tạo tập tin báo cáo lá»\97i"
+msgid "mode"
+msgstr "chế Ä\91á»\99"
 
-msgid "specify a strftime format suffix for the filename"
+msgid ""
+"create an additional zip archive of detailed diagnostics (default 'stats')"
+msgstr ""
+"tạo thêm tập tin nén zip của bản báo cáo chi tiết hơn (mặc định 'stats')"
+
+msgid "specify a destination for the bugreport file(s)"
+msgstr "chỉ định thư mục đích để tạo tập tin báo cáo lỗi"
+
+msgid "specify a strftime format suffix for the filename(s)"
 msgstr ""
 "chỉ định chuỗi định dạng thời gian strftime dùng làm hậu tố cho tên tập tin"
 
+#, c-format
+msgid "unknown argument `%s'"
+msgstr "không hiểu đối số: '%s'"
+
 #, c-format
 msgid "could not create leading directories for '%s'"
-msgstr "không thể tạo các thư mục dẫn đầu cho “%s”"
+msgstr "không thể tạo các thư mục cha cho '%s'"
+
+#, c-format
+msgid "unable to create diagnostics archive %s"
+msgstr "không thể tạo bản báo cáo %s"
 
 msgid "System Info"
 msgstr "Thông tin hệ thống"
@@ -3095,34 +3133,41 @@ msgstr "không thể ghi vào %s"
 
 #, c-format
 msgid "Created new report at '%s'.\n"
-msgstr "Đã tạo báo cáo mới tại “%s”\n"
+msgstr "Đã tạo báo cáo mới tại '%s'\n"
 
-msgid "git bundle create [<options>] <file> <git-rev-list args>"
-msgstr "git bundle create [<các tùy chọn>] <tập_tin> <git-rev-list args>"
+msgid ""
+"git bundle create [-q | --quiet | --progress]\n"
+"                  [--version=<version>] <file> <git-rev-list-args>"
+msgstr ""
+"git bundle create [-q | --quiet | --progress]\n"
+"                  [--version=<phiên_bản>] <tập tin> <đối-số-git-rev-list>"
 
-msgid "git bundle verify [<options>] <file>"
-msgstr "git bundle verify [<các tùy chọn>] <tập-tin>"
+msgid "git bundle verify [-q | --quiet] <file>"
+msgstr "git bundle verify [-q | --quiet] <tập-tin>"
 
 msgid "git bundle list-heads <file> [<refname>...]"
-msgstr "git bundle list-heads <tập tin> [<tên tham chiếu>…]"
+msgstr "git bundle list-heads <tập tin> [<tên tham chiếu>...]"
+
+msgid "git bundle unbundle [--progress] <file> [<refname>...]"
+msgstr "git bundle unbundle [--progress] <tập tin> [<tên tham chiếu>...]"
 
-msgid "git bundle unbundle <file> [<refname>...]"
-msgstr "git bundle unbundle <tập tin> [<tên tham chiếu>…]"
+msgid "need a <file> argument"
+msgstr "cần tham số <tập_tin>"
 
 msgid "do not show progress meter"
-msgstr "không hiển thị bộ đo tiến trình"
+msgstr "không hiển thị thanh đo tiến độ"
 
 msgid "show progress meter"
-msgstr "hiển thị bộ đo tiến trình"
+msgstr "hiển thị thanh đo tiến độ"
 
-msgid "show progress meter during object writing phase"
-msgstr "hiển thị bộ đo tiến triển trong suốt pha ghi đối tượng"
+msgid "historical; same as --progress"
+msgstr "tuỳ chọn cũ; giống như --progress"
 
-msgid "similar to --all-progress when progress meter is shown"
-msgstr "tương tự --all-progress khi bộ đo tiến trình được xuất hiện"
+msgid "historical; does nothing"
+msgstr "tuỳ chọn cũ; không làm gì cả"
 
 msgid "specify bundle format version"
-msgstr "chỉ điịnh định dạng cho bundle"
+msgstr "chỉ định phiên bản định dạng bundle"
 
 msgid "Need a repository to create a bundle."
 msgstr "Cần một kho chứa để có thể tạo một bundle."
@@ -3132,7 +3177,7 @@ msgstr "không hiển thị chi tiết bundle (bó)"
 
 #, c-format
 msgid "%s is okay\n"
-msgstr "“%s” tốt\n"
+msgstr "%s tốt\n"
 
 msgid "Need a repository to unbundle."
 msgstr "Cần một kho chứa để có thể giải nén một bundle."
@@ -3140,13 +3185,9 @@ msgstr "Cần một kho chứa để có thể giải nén một bundle."
 msgid "Unbundling objects"
 msgstr "Tháo rời các đối tượng"
 
-#, c-format
-msgid "Unknown subcommand: %s"
-msgstr "Không hiểu câu lệnh con: %s"
-
 #, c-format
 msgid "cannot read object %s '%s'"
-msgstr "không thể đọc đối tượng %s “%s”"
+msgstr "không thể đọc đối tượng %s '%s'"
 
 msgid "flush is only for --buffer mode"
 msgstr "flush chỉ dành cho chế độ --buffer"
@@ -3166,10 +3207,6 @@ msgstr "%s cần các tham số"
 msgid "%s takes no arguments"
 msgstr "%s không nhận tham số"
 
-#, c-format
-msgid "unknown command: '%s'"
-msgstr "không hiểu câu lệnh: '%s'"
-
 msgid "only one batch option may be specified"
 msgstr "chỉ một tùy chọn batch được chỉ ra"
 
@@ -3182,17 +3219,6 @@ msgstr "git cat-file (-e | -p) <đối tượng>"
 msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
 msgstr "git cat-file (-t | -s) [--allow-unknown-type] <đối_tượng>"
 
-msgid ""
-"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
-"objects]\n"
-"             [--buffer] [--follow-symlinks] [--unordered]\n"
-"             [--textconv | --filters]"
-msgstr ""
-"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
-"objects]\n"
-"             [--buffer] [--follow-symlinks] [--unordered]\n"
-"             [--textconv | --filters]"
-
 msgid ""
 "git cat-file (--textconv | --filters)\n"
 "             [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
@@ -3200,6 +3226,17 @@ msgstr ""
 "git cat-file (--textconv | --filters)\n"
 "             [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
 
+msgid ""
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+"             [--buffer] [--follow-symlinks] [--unordered]\n"
+"             [--textconv | --filters] [-Z]"
+msgstr ""
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+"             [--buffer] [--follow-symlinks] [--unordered]\n"
+"             [--textconv | --filters] [-Z]"
+
 msgid "Check object existence or emit object contents"
 msgstr "Kiểm tra đối tượng có sẵn hay không hoặc phát nội dung của đối tượng"
 
@@ -3223,10 +3260,11 @@ msgstr "hiển thị kích thước đối tượng"
 msgid "allow -s and -t to work with broken/corrupt objects"
 msgstr "cho phép -s và -t để làm việc với các đối tượng sai/hỏng"
 
+msgid "use mail map file"
+msgstr "sử dụng tập tin ánh xạ thư"
+
 msgid "Batch objects requested on stdin (or --batch-all-objects)"
-msgstr ""
-"Đã yêu cầu các đối tượng batch trên đầu vào tiêu chuẩn stdin (hoặc --batch-"
-"all-objects)"
+msgstr "Đã yêu cầu các đối tượng batch trên stdin (hoặc --batch-all-objects)"
 
 msgid "show full <object> or <rev> contents"
 msgstr "hiển thị đầy đủ nội dung <object> hay <rev>"
@@ -3234,13 +3272,17 @@ msgstr "hiển thị đầy đủ nội dung <object> hay <rev>"
 msgid "like --batch, but don't emit <contents>"
 msgstr "giống --batch, nhưng không phát ra <contents>"
 
+msgid "stdin is NUL-terminated"
+msgstr "stdin được kết thúc bởi NUL"
+
+msgid "stdin and stdout is NUL-terminated"
+msgstr "stdin và stdout được kết thúc bởi NUL"
+
 msgid "read commands from stdin"
-msgstr "đọc các lệnh từ đầu vào tiêu chuẩn"
+msgstr "đọc các lệnh từ stdin"
 
 msgid "with --batch[-check]: ignores stdin, batches all known objects"
-msgstr ""
-"với --batch[-check]: bỏ qua đầu vào tiêu chuẩn stdin, batch mọi đối tượng đã "
-"biết"
+msgstr "với --batch[-check]: bỏ qua stdin, batch mọi đối tượng đã biết"
 
 msgid "Change or optimize batch output"
 msgstr "Thay đổi hay tối ưu hóa đầu ra batch"
@@ -3283,11 +3325,11 @@ msgstr "path|tree-ish"
 
 #, c-format
 msgid "'%s' requires a batch mode"
-msgstr "“%s” cần một chế độ batch"
+msgstr "'%s' cần một chế độ batch"
 
 #, c-format
 msgid "'-%c' is incompatible with batch mode"
-msgstr "'-%c' là xung khắc với chế độ batch"
+msgstr "'-%c' không tương thích với chế độ batch"
 
 msgid "batch modes take no arguments"
 msgstr "chế độ batch không nhận các đối số"
@@ -3300,30 +3342,39 @@ msgstr "cần <rev> với '%s'"
 msgid "<object> required with '-%c'"
 msgstr "cần <object> với '-%c'"
 
-msgid "too many arguments"
-msgstr "có quá nhiều đối số"
-
 #, c-format
 msgid "only two arguments allowed in <type> <object> mode, not %d"
 msgstr "chỉ hai đối số được phép trong chế độ <type> <object>, không phải %d"
 
-msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
-msgstr "git check-attr [-a | --all | <attr>…] [--] tên-đường-dẫn…"
+msgid ""
+"git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] "
+"<pathname>..."
+msgstr ""
+"git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <tên-"
+"đường-dẫn>..."
 
-msgid "git check-attr --stdin [-z] [-a | --all | <attr>...]"
-msgstr "git check-attr --stdin [-z] [-a | --all | <attr>…]"
+msgid ""
+"git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]"
+msgstr ""
+"git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]"
 
 msgid "report all attributes set on file"
-msgstr "báo cáo tất cả các thuộc tính đặt trên tập tin"
+msgstr "liệt kê tất cả các thuộc tính đặt trên tập tin"
 
 msgid "use .gitattributes only from the index"
-msgstr "chỉ dùng .gitattributes từ bảng mục lục"
+msgstr "chỉ dùng .gitattributes từ chỉ mục"
 
 msgid "read file names from stdin"
-msgstr "đọc tên tập tin từ đầu vào tiêu chuẩn"
+msgstr "đọc tên tập tin từ stdin"
 
 msgid "terminate input and output records by a NUL character"
-msgstr "chấm dứt các bản ghi vào và ra bằng ký tự NULL"
+msgstr "kết thúc các bản ghi vào và ra bằng ký tự NULL"
+
+msgid "<tree-ish>"
+msgstr "<tree-ish>"
+
+msgid "which tree-ish to check attributes at"
+msgstr "kiểm tra thuộc tính từ tree-ish nào"
 
 msgid "suppress progress reporting"
 msgstr "chặn các báo cáo tiến trình hoạt động"
@@ -3332,7 +3383,7 @@ msgid "show non-matching input paths"
 msgstr "hiển thị những đường dẫn đầu vào không khớp với mẫu"
 
 msgid "ignore index when checking"
-msgstr "bỏ qua mục lục khi kiểm tra"
+msgstr "bỏ qua chỉ mục khi kiểm tra"
 
 msgid "cannot specify pathnames with --stdin"
 msgstr "không thể chỉ định các tên đường dẫn với --stdin"
@@ -3353,14 +3404,14 @@ msgid "--non-matching is only valid with --verbose"
 msgstr "tùy-chọn --non-matching chỉ hợp lệ khi dùng với --verbose"
 
 msgid "git check-mailmap [<options>] <contact>..."
-msgstr "git check-mailmap [<các tùy chọn>] <danh-bạ>"
+msgstr "git check-mailmap [<các tùy chọn>] <danh-bạ>..."
 
 msgid "also read contacts from stdin"
-msgstr "đồng thời đọc các danh bạ từ đầu vào tiêu chuẩn"
+msgstr "đồng thời đọc các danh bạ từ stdin"
 
 #, c-format
 msgid "unable to parse contact: %s"
-msgstr "không thể phân tích danh bạ: “%s”"
+msgstr "không thể đọc danh bạ: '%s'"
 
 msgid "no contacts specified"
 msgstr "chưa chỉ ra danh bạ"
@@ -3375,13 +3426,13 @@ msgid "when creating files, prepend <string>"
 msgstr "khi tạo các tập tin, nối thêm <chuỗi>"
 
 msgid "git checkout-index [<options>] [--] [<file>...]"
-msgstr "git checkout-index [<các tùy chọn>] [--] [<tập-tin>]"
+msgstr "git checkout-index [<các tùy chọn>] [--] [<tập-tin>...]"
 
 msgid "stage should be between 1 and 3 or all"
 msgstr "stage nên giữa 1 và 3 hay all"
 
 msgid "check out all files in the index"
-msgstr "lấy ra toàn bộ các tập tin trong bảng mục lục"
+msgstr "checkout toàn bộ các tập tin trong chỉ mục"
 
 msgid "do not skip files with skip-worktree set"
 msgstr "đừng bỏ qua các tập tin với skip-worktree được đặt"
@@ -3390,17 +3441,16 @@ msgid "force overwrite of existing files"
 msgstr "ép buộc ghi đè lên tập tin đã sẵn có từ trước"
 
 msgid "no warning for existing files and files not in index"
-msgstr ""
-"không cảnh báo cho những tập tin tồn tại và không có trong bảng mục lục"
+msgstr "không cảnh báo cho những tập tin tồn tại và không có trong chỉ mục"
 
 msgid "don't checkout new files"
 msgstr "không checkout các tập tin mới"
 
 msgid "update stat information in the index file"
-msgstr "cập nhật thông tin thống kê trong tập tin lưu bảng mục lục mới"
+msgstr "cập nhật thông tin thống kê trong tập tin chỉ mục mới"
 
 msgid "read list of paths from the standard input"
-msgstr "đọc danh sách đường dẫn từ đầu vào tiêu chuẩn"
+msgstr "đọc danh sách đường dẫn từ stdin"
 
 msgid "write the content to temporary files"
 msgstr "ghi nội dung vào tập tin tạm"
@@ -3412,37 +3462,37 @@ msgid "git checkout [<options>] <branch>"
 msgstr "git checkout [<các tùy chọn>] <nhánh>"
 
 msgid "git checkout [<options>] [<branch>] -- <file>..."
-msgstr "git checkout [<các tùy chọn>] [<nhánh>] -- <tập-tin>"
+msgstr "git checkout [<các tùy chọn>] [<nhánh>] -- <tập-tin>..."
 
 msgid "git switch [<options>] [<branch>]"
 msgstr "git switch [<các tùy chọn>] [<nhánh>]"
 
 msgid "git restore [<options>] [--source=<branch>] <file>..."
-msgstr "git restore [<các tùy chọn>] [--source=<nhánh>] <tập tin>"
+msgstr "git restore [<các tùy chọn>] [--source=<nhánh>] <tập tin>..."
 
 #, c-format
 msgid "path '%s' does not have our version"
-msgstr "đường dẫn “%s” không có các phiên bản của chúng ta"
+msgstr "đường dẫn '%s' không có các phiên bản của ta"
 
 #, c-format
 msgid "path '%s' does not have their version"
-msgstr "đường dẫn “%s” không có các phiên bản của chúng"
+msgstr "đường dẫn '%s' không có các phiên bản của họ"
 
 #, c-format
 msgid "path '%s' does not have all necessary versions"
-msgstr "đường dẫn “%s” không có tất cả các phiên bản cần thiết"
+msgstr "đường dẫn '%s' không có tất cả các phiên bản cần thiết"
 
 #, c-format
 msgid "path '%s' does not have necessary versions"
-msgstr "đường dẫn “%s” không có các phiên bản cần thiết"
+msgstr "đường dẫn '%s' không có các phiên bản cần thiết"
 
 #, c-format
 msgid "path '%s': cannot merge"
-msgstr "đường dẫn “%s”: không thể hòa trộn"
+msgstr "đường dẫn '%s': không thể hòa trộn"
 
 #, c-format
 msgid "Unable to add merge result for '%s'"
-msgstr "Không thể thêm kết quả hòa trộn cho “%s”"
+msgstr "Không thể thêm kết quả hòa trộn cho '%s'"
 
 #, c-format
 msgid "Recreated %d merge conflict"
@@ -3457,35 +3507,43 @@ msgstr[0] "Đã cập nhật đường dẫn %d từ %s"
 #, c-format
 msgid "Updated %d path from the index"
 msgid_plural "Updated %d paths from the index"
-msgstr[0] "Đã cập nhật đường dẫn %d từ mục lục"
+msgstr[0] "Đã cập nhật đường dẫn %d từ chỉ mục"
 
 #, c-format
 msgid "'%s' cannot be used with updating paths"
-msgstr "không được dùng “%s” với các đường dẫn cập nhật"
+msgstr "không được dùng '%s' với các đường dẫn cập nhật"
 
 #, c-format
 msgid "Cannot update paths and switch to branch '%s' at the same time."
 msgstr ""
-"Không thể cập nhật các đường dẫn và chuyển đến nhánh “%s” cùng một lúc."
+"Không thể cập nhật các đường dẫn và chuyển đến nhánh '%s' cùng một lúc."
 
 #, c-format
 msgid "neither '%s' or '%s' is specified"
-msgstr "không chỉ định “%s” cũng không “%s”"
+msgstr "không chỉ định '%s' cũng không '%s'"
 
 #, c-format
 msgid "'%s' must be used when '%s' is not specified"
-msgstr "phải có “%s” khi không chỉ định “%s”"
+msgstr "phải có '%s' khi không chỉ định '%s'"
 
 #, c-format
 msgid "'%s' or '%s' cannot be used with %s"
-msgstr "“%s” hay “%s” không thể được sử dụng với %s"
+msgstr "'%s' hay '%s' không thể được sử dụng với %s"
+
+#, c-format
+msgid "'%s', '%s', or '%s' cannot be used when checking out of a tree"
+msgstr "'%s', '%s', hay '%s' không thể được sử dụng khi checkout cây làm việc"
 
 #, c-format
 msgid "path '%s' is unmerged"
-msgstr "đường dẫn “%s” không được hòa trộn"
+msgstr "đường dẫn '%s' không được hòa trộn"
+
+#, c-format
+msgid "unable to read tree (%s)"
+msgstr "không thể đọc cây (%s)"
 
 msgid "you need to resolve your current index first"
-msgstr "bạn cần phải giải quyết bảng mục lục hiện tại của bạn trước đã"
+msgstr "bạn cần phải giải quyết chỉ mục hiện tại của bạn trước đã"
 
 #, c-format
 msgid ""
@@ -3498,7 +3556,7 @@ msgstr ""
 
 #, c-format
 msgid "Can not do reflog for '%s': %s\n"
-msgstr "Không thể thực hiện reflog cho “%s”: %s\n"
+msgstr "Không thể thực hiện reflog cho '%s': %s\n"
 
 msgid "HEAD is now at"
 msgstr "HEAD hiện giờ tại"
@@ -3508,27 +3566,27 @@ msgstr "không thể cập nhật HEAD"
 
 #, c-format
 msgid "Reset branch '%s'\n"
-msgstr "Đặt lại nhánh “%s”\n"
+msgstr "Đặt lại nhánh '%s'\n"
 
 #, c-format
 msgid "Already on '%s'\n"
-msgstr "Đã sẵn sàng trên “%s”\n"
+msgstr "Đã sẵn sàng trên '%s'\n"
 
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
-msgstr "Đã chuyển tới và đặt lại nhánh “%s”\n"
+msgstr "Đã chuyển tới và đặt lại nhánh '%s'\n"
 
 #, c-format
 msgid "Switched to a new branch '%s'\n"
-msgstr "Đã chuyển đến nhánh mới “%s”\n"
+msgstr "Đã chuyển đến nhánh mới '%s'\n"
 
 #, c-format
 msgid "Switched to branch '%s'\n"
-msgstr "Đã chuyển đến nhánh “%s”\n"
+msgstr "Đã chuyển đến nhánh '%s'\n"
 
 #, c-format
 msgid " ... and %d more.\n"
-msgstr "  và nhiều hơn %d.\n"
+msgstr " ... và nhiều hơn %d.\n"
 
 #, c-format
 msgid ""
@@ -3582,7 +3640,7 @@ msgid ""
 "'%s' could be both a local file and a tracking branch.\n"
 "Please use -- (and optionally --no-guess) to disambiguate"
 msgstr ""
-"“%s” không thể là cả tập tin nội bộ và một nhánh theo dõi.\n"
+"'%s' không thể là cả tập tin nội bộ và một nhánh theo dõi.\n"
 "Vui long dùng -- (và tùy chọn thêm --no-guess) để tránh lẫn lộn"
 
 msgid ""
@@ -3595,18 +3653,18 @@ msgid ""
 "one remote, e.g. the 'origin' remote, consider setting\n"
 "checkout.defaultRemote=origin in your config."
 msgstr ""
-"Nếu ý bạn là lấy ra nhánh máy chủ được theo dõi, ví dụ “origin”,\n"
+"Nếu ý bạn là checkout nhánh máy chủ được theo dõi, ví dụ 'origin',\n"
 "bạn có thể làm như vậy bằng cách chỉ định đầy đủ tên với tùy chọn --track:\n"
 "\n"
 "    git checkout --track origin/<tên>\n"
 "\n"
-"Nếu bạn muốn luôn lấy ra từ một <tên> một máy chủ ưa thích\n"
-"chưa rõ ràng, ví dụ máy chủ “origin”, cân nhắc cài đặt\n"
+"Nếu bạn muốn luôn checkout từ một <tên> một máy chủ ưa thích\n"
+"chưa rõ ràng, ví dụ máy chủ 'origin', cân nhắc cài đặt\n"
 "checkout.defaultRemote=origin trong cấu hình của bạn."
 
 #, c-format
 msgid "'%s' matched multiple (%d) remote tracking branches"
-msgstr "“%s” khớp với nhiều (%d) nhánh máy chủ được theo dõi"
+msgstr "'%s' khớp với nhiều (%d) nhánh máy chủ được theo dõi"
 
 msgid "only one reference expected"
 msgstr "chỉ cần một tham chiếu"
@@ -3625,19 +3683,19 @@ msgstr "tham chiếu không phải là một cây:%s"
 
 #, c-format
 msgid "a branch is expected, got tag '%s'"
-msgstr "cần một nhánh, nhưng lại nhận được thẻ “%s”"
+msgstr "cần một nhánh, nhưng lại có thẻ '%s'"
 
 #, c-format
 msgid "a branch is expected, got remote branch '%s'"
-msgstr "cần một nhánh, nhưng lại nhận được nhánh máy phục vụ “%s”"
+msgstr "cần một nhánh, nhưng lại có nhánh máy chủ '%s'"
 
 #, c-format
 msgid "a branch is expected, got '%s'"
-msgstr "cần một nhánh, nhưng lại nhận được “%s”"
+msgstr "cần một nhánh, nhưng lại có '%s'"
 
 #, c-format
 msgid "a branch is expected, got commit '%s'"
-msgstr "cần một nhánh, nhưng lại nhận được “%s”"
+msgstr "cần một nhánh, nhưng lại có '%s'"
 
 msgid ""
 "If you want to detach HEAD at the commit, try again with the --detach option."
@@ -3650,35 +3708,35 @@ msgid ""
 "Consider \"git merge --quit\" or \"git worktree add\"."
 msgstr ""
 "không thể chuyển nhánh trong khi đang hòa trộn\n"
-"Cân nhắc dung \"git merge --quit\" hoặc \"git worktree add\"."
+"Thử dung \"git merge --quit\" hoặc \"git worktree add\"."
 
 msgid ""
 "cannot switch branch in the middle of an am session\n"
 "Consider \"git am --quit\" or \"git worktree add\"."
 msgstr ""
 "không thể chuyển nhanh ở giữa một phiên am\n"
-"Cân nhắc dùng \"git am --quit\" hoặc \"git worktree add\"."
+"Thử dùng \"git am --quit\" hoặc \"git worktree add\"."
 
 msgid ""
 "cannot switch branch while rebasing\n"
 "Consider \"git rebase --quit\" or \"git worktree add\"."
 msgstr ""
 "không thể chuyển nhánh trong khi cải tổ\n"
-"Cân nhắc dùng \"git rebase --quit\" hay \"git worktree add\"."
+"Thử dùng \"git rebase --quit\" hay \"git worktree add\"."
 
 msgid ""
 "cannot switch branch while cherry-picking\n"
 "Consider \"git cherry-pick --quit\" or \"git worktree add\"."
 msgstr ""
-"không thể chuyển nhánh trong khi  cherry-picking\n"
-"Cân nhắc dùng \"git cherry-pick --quit\" hay \"git worktree add\"."
+"không thể chuyển nhánh trong khi cherry-pick\n"
+"Hãy dùng \"git cherry-pick --quit\" hay \"git worktree add\"."
 
 msgid ""
 "cannot switch branch while reverting\n"
 "Consider \"git revert --quit\" or \"git worktree add\"."
 msgstr ""
 "không thể chuyển nhánh trong khi hoàn nguyên\n"
-"Cân nhắc dùng \"git revert --quit\" hoặc \"git worktree add\"."
+"Thử dùng \"git revert --quit\" hoặc \"git worktree add\"."
 
 msgid "you are switching branch while bisecting"
 msgstr ""
@@ -3690,23 +3748,27 @@ msgstr "các đường dẫn không thể dùng cùng với các nhánh chuyển
 
 #, c-format
 msgid "'%s' cannot be used with switching branches"
-msgstr "“%s” không thể được sử dụng với các nhánh chuyển"
+msgstr "'%s' không thể được sử dụng với các nhánh chuyển"
 
 #, c-format
 msgid "'%s' cannot be used with '%s'"
-msgstr "“%s” không thể được dùng với “%s”"
+msgstr "'%s' không thể được dùng với '%s'"
 
 #, c-format
 msgid "'%s' cannot take <start-point>"
-msgstr "“%s” không thể nhận <điểm-đầu>"
+msgstr "'%s' không thể nhận <điểm-đầu>"
 
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
-msgstr "Không thể chuyển nhánh đến một thứ không phải là lần chuyển giao “%s”"
+msgstr "Không thể chuyển nhánh đến một thứ không phải là lần chuyển giao '%s'"
 
 msgid "missing branch or commit argument"
 msgstr "thiếu tham số là nhánh hoặc lần chuyển giao"
 
+#, c-format
+msgid "unknown conflict style '%s'"
+msgstr "không hiểu kiểu hiển thị xung đột '%s'"
+
 msgid "perform a 3-way merge with the new branch"
 msgstr "thực hiện hòa trộn kiểu 3-way với nhánh mới"
 
@@ -3720,13 +3782,13 @@ msgid "detach HEAD at named commit"
 msgstr "rời bỏ HEAD tại lần chuyển giao theo tên"
 
 msgid "force checkout (throw away local modifications)"
-msgstr "ép buộc lấy ra (bỏ đi những thay đổi nội bộ)"
+msgstr "ép buộc checkout (bỏ đi những thay đổi nội bộ)"
 
 msgid "new-branch"
 msgstr "nhánh-mới"
 
-msgid "new unparented branch"
-msgstr "nhánh không cha mới"
+msgid "new unborn branch"
+msgstr "nhánh chưa sinh mới"
 
 msgid "update ignored files (default)"
 msgstr "cập nhật các tập tin bị bỏ qua (mặc định)"
@@ -3735,15 +3797,13 @@ msgid "do not check if another worktree is holding the given ref"
 msgstr "không kiểm tra nếu cây làm việc khác đang giữ tham chiếu đã cho"
 
 msgid "checkout our version for unmerged files"
-msgstr ""
-"lấy ra (checkout) phiên bản của chúng ta cho các tập tin chưa được hòa trộn"
+msgstr "checkout phiên bản của ta cho các tập tin chưa được hòa trộn"
 
 msgid "checkout their version for unmerged files"
-msgstr ""
-"lấy ra (checkout) phiên bản của chúng họ cho các tập tin chưa được hòa trộn"
+msgstr "checkout phiên bản của họ cho các tập tin chưa được hòa trộn"
 
 msgid "do not limit pathspecs to sparse entries only"
-msgstr "không giới hạn đặc tả đường dẫn thành chỉ các mục rải rác"
+msgstr "không giới hạn đặc tả đường dẫn chỉ trong các mục sparse (thưa)"
 
 #, c-format
 msgid "options '-%c', '-%c', and '%s' cannot be used together"
@@ -3758,7 +3818,7 @@ msgstr "thiếu tên nhánh; hãy thử -%c"
 
 #, c-format
 msgid "could not resolve %s"
-msgstr "không thể phân giải “%s”"
+msgstr "không thể phân giải '%s'"
 
 msgid "invalid path specification"
 msgstr "đường dẫn đã cho không hợp lệ"
@@ -3766,19 +3826,19 @@ msgstr "đường dẫn đã cho không hợp lệ"
 #, c-format
 msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
 msgstr ""
-"“%s” không phải là một lần chuyển giao và một nhánh'%s” không thể được tạo "
+"'%s' không phải là một lần chuyển giao và một nhánh'%s' không thể được tạo "
 "từ đó"
 
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
-msgstr "git checkout: --detach không nhận một đối số đường dẫn “%s”"
+msgstr "git checkout: --detach không nhận một đối số đường dẫn '%s'"
 
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
 msgstr ""
 "git checkout: --ours/--theirs, --force và --merge là xung khắc với nhau khi\n"
-"checkout bảng mục lục (index)."
+"checkout chỉ mục (index)."
 
 msgid "you must specify path(s) to restore"
 msgstr "bạn phải chỉ định các thư mục muốn hồi phục"
@@ -3796,7 +3856,7 @@ msgid "create reflog for new branch"
 msgstr "tạo reflog cho nhánh mới"
 
 msgid "second guess 'git checkout <no-such-branch>' (default)"
-msgstr "gợi ý thứ hai “git checkout <không-nhánh-nào-như-vậy>” (mặc định)"
+msgstr "gợi ý thứ hai 'git checkout <không-nhánh-nào-như-vậy>' (mặc định)"
 
 msgid "use overlay mode (default)"
 msgstr "dùng chế độ che phủ (mặc định)"
@@ -3814,10 +3874,10 @@ msgid "throw away local modifications"
 msgstr "vứt bỏ các sửa đổi địa phương"
 
 msgid "which tree-ish to checkout from"
-msgstr "lấy ra từ tree-ish nào"
+msgstr "checkout từ tree-ish nào"
 
 msgid "restore the index"
-msgstr "phục hồi bảng mục lục"
+msgstr "phục hồi chỉ mục"
 
 msgid "restore the working tree (default)"
 msgstr "phục hồi cây làm việc (mặc định)"
@@ -3829,18 +3889,18 @@ msgid "use overlay mode"
 msgstr "dùng chế độ che phủ"
 
 msgid ""
-"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."
+"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] "
+"[<pathspec>...]"
 msgstr ""
-"git clean [-d] [-f] [-i] [-n] [-q] [-e <mẫu>] [-x | -X] [--] </các/đường/"
-"dẫn>…"
+"git clean [-d] [-f] [-i] [-n] [-q] [-e <mẫu>] [-x | -X] [--][<đường/dẫn>...]"
 
 #, c-format
 msgid "Removing %s\n"
-msgstr "Đang gỡ bỏ %s\n"
+msgstr "Đang xoá %s\n"
 
 #, c-format
 msgid "Would remove %s\n"
-msgstr "Có thể gỡ bỏ %s\n"
+msgstr "Sẽ xoá %s\n"
 
 #, c-format
 msgid "Skipping repository %s\n"
@@ -3852,17 +3912,17 @@ msgstr "Nên bỏ qua kho chứa %s\n"
 
 #, c-format
 msgid "failed to remove %s"
-msgstr "gặp lỗi khi gỡ bỏ %s"
+msgstr "gặp lỗi khi xoá %s"
 
 #, c-format
 msgid "could not lstat %s\n"
-msgstr "không thể lấy thông tin thống kê đầy đủ của %s\n"
+msgstr "không thể lstat %s\n"
 
 msgid "Refusing to remove current working directory\n"
-msgstr "Từ chối gỡ bỏ thư mục làm việc hiện tại\n"
+msgstr "Từ chối xoá thư mục làm việc hiện tại\n"
 
 msgid "Would refuse to remove current working directory\n"
-msgstr "Nên từ chá»\91i gỡ bá»\8f thÆ° mục làm viá»\87c hiá»\87n tại\n"
+msgstr "Sẽ từ chá»\91i xoá bá»\8f thÆ° mục làm viá»\87c hiá»\87n tại\n"
 
 #, c-format
 msgid ""
@@ -3892,17 +3952,17 @@ msgstr ""
 "3-5        - chọn một vùng\n"
 "2-3,6-9    - chọn nhiều vùng\n"
 "foo        - chọn mục dựa trên tiền tố duy nhất\n"
-"-         - không chọn các mục đã chỉ ra\n"
+"-...         - không chọn các mục đã chỉ ra\n"
 "*          - chọn tất\n"
 "           - (để trống) kết thúc việc chọn\n"
 
-#, c-format, perl-format
+#, c-format
 msgid "Huh (%s)?\n"
 msgstr "Hả (%s)?\n"
 
 #, c-format
 msgid "Input ignore patterns>> "
-msgstr "Mẫu để lọc các tập tin đầu vào cần lờ đi>> "
+msgstr "Mẫu để lọc các tập tin đầu vào cần bỏ qua>> "
 
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
@@ -3914,7 +3974,7 @@ msgstr "Chọn mục muốn xóa"
 #. TRANSLATORS: Make sure to keep [y/N] as is
 #, c-format
 msgid "Remove %s [y/N]? "
-msgstr "Xóa bỏ “%s” [y/N]? "
+msgstr "Xóa bỏ '%s' [y/N]? "
 
 msgid ""
 "clean               - start cleaning\n"
@@ -3935,7 +3995,7 @@ msgstr ""
 
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
-msgstr[0] "Có muốn gỡ bỏ (các) mục sau đây không:"
+msgstr[0] "Có muốn xoá (các) mục sau đây không:"
 
 msgid "No more files to clean, exiting."
 msgstr "Không còn tập-tin nào để dọn dẹp, đang thoát ra."
@@ -3950,13 +4010,13 @@ msgid "interactive cleaning"
 msgstr "dọn bằng kiểu tương tác"
 
 msgid "remove whole directories"
-msgstr "gỡ bỏ toàn bộ thư mục"
+msgstr "xoá toàn bộ thư mục"
 
 msgid "pattern"
 msgstr "mẫu"
 
 msgid "add <pattern> to ignore rules"
-msgstr "thêm <mẫu> vào trong qui tắc bỏ qua"
+msgstr "thêm <mẫu> vào trong quy tắc bỏ qua"
 
 msgid "remove ignored files, too"
 msgstr "đồng thời gỡ bỏ cả các tập tin bị bỏ qua"
@@ -3964,22 +4024,10 @@ msgstr "đồng thời gỡ bỏ cả các tập tin bị bỏ qua"
 msgid "remove only ignored files"
 msgstr "chỉ gỡ bỏ những tập tin bị bỏ qua"
 
-msgid ""
-"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
-"clean"
-msgstr ""
-"clean.requireForce được đặt thành true và không đưa ra tùy chọn -i, -n mà "
-"cũng không -f; từ chối lệnh dọn dẹp (clean)"
-
-msgid ""
-"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
-"refusing to clean"
+msgid "clean.requireForce is true and -f not given: refusing to clean"
 msgstr ""
-"clean.requireForce mặc định được đặt là true và không đưa ra tùy chọn -i, -n "
-"mà cũng không -f; từ chối lệnh dọn dẹp (clean)"
-
-msgid "-x and -X cannot be used together"
-msgstr "-x và -X không thể dùng cùng nhau"
+"clean.requireForce được đặt thành true và không có tuỳ chọn -f; từ chối dọn "
+"dẹp"
 
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<các tùy chọn>] [--] <kho> [<t.mục>]"
@@ -3991,10 +4039,10 @@ msgid "don't create a checkout"
 msgstr "không tạo một checkout"
 
 msgid "create a bare repository"
-msgstr "tạo kho thuần"
+msgstr "tạo kho bare"
 
-msgid "create a mirror repository (implies bare)"
-msgstr "tạo kho bản sao (ý là kho thuần)"
+msgid "create a mirror repository (implies --bare)"
+msgstr "tạo kho bản sao (ngụ ý --bare)"
 
 msgid "to clone from a local repository"
 msgstr "để nhân bản từ kho nội bộ"
@@ -4030,10 +4078,10 @@ msgid "name"
 msgstr "tên"
 
 msgid "use <name> instead of 'origin' to track upstream"
-msgstr "dùng <tên> thay cho “origin” để theo dõi thượng nguồn"
+msgstr "dùng <tên> thay cho 'origin' để theo dõi thượng nguồn"
 
 msgid "checkout <branch> instead of the remote's HEAD"
-msgstr "lấy ra <nhánh> thay cho HEAD của máy chủ"
+msgstr "checkout <nhánh> thay cho HEAD của máy chủ"
 
 msgid "path to git-upload-pack on the remote"
 msgstr "đường dẫn đến git-upload-pack trên máy chủ"
@@ -4044,9 +4092,6 @@ msgstr "độ-sâu"
 msgid "create a shallow clone of that depth"
 msgstr "tạo bản sao không đầy đủ cho mức sâu đã cho"
 
-msgid "time"
-msgstr "thời-gian"
-
 msgid "create a shallow clone since a specific time"
 msgstr "tạo bản sao không đầy đủ từ thời điểm đã cho"
 
@@ -4073,6 +4118,9 @@ msgstr "gitdir"
 msgid "separate git dir from working tree"
 msgstr "không dùng chung thư mục dành riêng cho git và thư mục làm việc"
 
+msgid "specify the reference format to use"
+msgstr "dùng định dạng tham chiếu nào cho các lần chuyển giao"
+
 msgid "key=value"
 msgstr "khóa=giá_trị"
 
@@ -4085,40 +4133,48 @@ msgstr "đặc-tả-máy-phục-vụ"
 msgid "option to transmit"
 msgstr "tùy chọn để chuyển giao"
 
-msgid "use IPv4 addresses only"
-msgstr "chỉ dùng địa chỉ IPv4"
-
-msgid "use IPv6 addresses only"
-msgstr "chỉ dùng địa chỉ IPv6"
-
 msgid "apply partial clone filters to submodules"
 msgstr "áp dụng các bộ lọc nhân bản một phần cho mô-đun-con"
 
 msgid "any cloned submodules will use their remote-tracking branch"
-msgstr "mọi mô-đun-con nhân bản sẽ dung nhánh theo dõi máy chủ của chúng"
+msgstr "mọi mô-đun-con được nhân bản sẽ dùng nhánh theo dõi máy chủ của chúng"
 
 msgid "initialize sparse-checkout file to include only files at root"
 msgstr "khởi tạo tập tin sparse-checkout để bao gồm chỉ các tập tin ở gốc"
 
+msgid "uri"
+msgstr "uri"
+
+msgid "a URI for downloading bundles before fetching from origin remote"
+msgstr "URI để tải xuống bundle trước khi lấy về từ máy chủ origin"
+
 #, c-format
 msgid "info: Could not add alternate for '%s': %s\n"
-msgstr "thông tin: không thể thêm thay thế cho “%s”: %s\n"
+msgstr "thông tin: không thể thêm thay thế cho '%s': %s\n"
 
 #, c-format
 msgid "failed to stat '%s'"
-msgstr "gặp lỗi khi lấy thống kê về “%s”"
+msgstr "gặp lỗi khi stat '%s'"
 
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s có tồn tại nhưng lại không phải là một thư mục"
 
+#, c-format
+msgid "'%s' is a symlink, refusing to clone with --local"
+msgstr "'%s' là liên kết mềm, từ chối sao chép với --local"
+
 #, c-format
 msgid "failed to start iterator over '%s'"
-msgstr "gặp lỗi khi bắt đầu lặp qua “%s”"
+msgstr "gặp lỗi khi bắt đầu lặp qua '%s'"
+
+#, c-format
+msgid "symlink '%s' exists, refusing to clone with --local"
+msgstr "liên kết mềm '%s' đã tồn tại, từ chối sao chép với --local"
 
 #, c-format
 msgid "failed to unlink '%s'"
-msgstr "gặp lỗi khi bỏ liên kết (unlink) “%s”"
+msgstr "gặp lỗi khi unlink '%s'"
 
 #, c-format
 msgid "failed to create link '%s'"
@@ -4126,11 +4182,11 @@ msgstr "gặp lỗi khi tạo được liên kết mềm %s"
 
 #, c-format
 msgid "failed to copy file to '%s'"
-msgstr "gặp lỗi khi sao chép tập tin và “%s”"
+msgstr "gặp lỗi khi sao chép tập tin và '%s'"
 
 #, c-format
 msgid "failed to iterate over '%s'"
-msgstr "gặp lỗi khi lặp qua “%s”"
+msgstr "gặp lỗi khi lặp qua '%s'"
 
 #, c-format
 msgid "done.\n"
@@ -4142,8 +4198,8 @@ msgid ""
 "and retry with 'git restore --source=HEAD :/'\n"
 msgstr ""
 "Việc nhân bản thành công, nhưng checkout gặp lỗi.\n"
-"Bạn kiểm tra kỹ xem cái gì được lấy ra bằng lệnh “git status”\n"
-"và thá»­ lấy ra vá»\9bi lá»\87nh â\80\9cgit restore --source=HEAD :/â\80\9d\n"
+"Kiểm tra xem cái gì đã được checkout bằng lệnh 'git status'\n"
+"và thá»­ lại vá»\9bi lá»\87nh 'git restore --source=HEAD :/'\n"
 
 #, c-format
 msgid "Could not find remote branch %s to clone."
@@ -4159,11 +4215,11 @@ msgstr "không thể cập nhật %s"
 msgid "failed to initialize sparse-checkout"
 msgstr "gặp lỗi khi khởi tạo sparse-checkout"
 
-msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
-msgstr "refers HEAD máy chủ  chỉ đến ref không tồn tại, không thể lấy ra.\n"
+msgid "remote HEAD refers to nonexistent ref, unable to checkout"
+msgstr "HEAD ở máy chủ chỉ đến ref không tồn tại, không thể checkout"
 
 msgid "unable to checkout working tree"
-msgstr "không thể lấy ra (checkout) cây làm việc"
+msgstr "không thể checkout cây làm việc"
 
 msgid "unable to write parameters to config file"
 msgstr "không thể ghi các tham số vào tập tin cấu hình"
@@ -4175,18 +4231,18 @@ msgid "cannot unlink temporary alternates file"
 msgstr "không thể bỏ liên kết tập tin thay thế tạm thời"
 
 msgid "Too many arguments."
-msgstr "Có quá nhiều đối số."
+msgstr "Quá nhiều đối số."
 
 msgid "You must specify a repository to clone."
-msgstr "Bạn phải chỉ định một kho để mà nhân bản (clone)."
+msgstr "Bạn phải chỉ định một kho để nhân bản."
 
 #, c-format
-msgid "options '%s' and '%s %s' cannot be used together"
-msgstr "tùy chọn '%s', và '%s %s' không thể dùng cùng nhau"
+msgid "unknown ref storage format '%s'"
+msgstr "Không hiểu định dạng lưu tham chiếu '%s'"
 
 #, c-format
 msgid "repository '%s' does not exist"
-msgstr "kho chứa “%s” chưa tồn tại"
+msgstr "kho chứa '%s' chưa tồn tại"
 
 #, c-format
 msgid "depth %s is not a positive number"
@@ -4194,32 +4250,32 @@ msgstr "độ sâu %s không phải là một số nguyên dương"
 
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
-msgstr "đường dẫn đích “%s” đã có từ trước và không phải là một thư mục rỗng."
+msgstr "đường dẫn đích '%s' đã có từ trước và không phải là một thư mục rỗng."
 
 #, c-format
 msgid "repository path '%s' already exists and is not an empty directory."
 msgstr ""
-"đường dẫn kho chứa “%s” đã có từ trước và không phải là một thư mục rỗng."
+"đường dẫn kho chứa '%s' đã có từ trước và không phải là một thư mục rỗng."
 
 #, c-format
 msgid "working tree '%s' already exists."
-msgstr "cây làm việc “%s” đã sẵn tồn tại rồi."
+msgstr "cây làm việc '%s' đã sẵn tồn tại rồi."
 
 #, c-format
 msgid "could not create leading directories of '%s'"
-msgstr "không thể tạo các thư mục dẫn đầu của “%s”"
+msgstr "không thể tạo các thư mục dẫn đầu của '%s'"
 
 #, c-format
 msgid "could not create work tree dir '%s'"
-msgstr "không thể tạo cây thư mục làm việc dir “%s”"
+msgstr "không thể tạo cây làm việc dir '%s'"
 
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
-msgstr "Đang nhân bản thành kho chứa bare “%s”…\n"
+msgstr "Đang nhân bản thành kho chứa bare '%s'...\n"
 
 #, c-format
 msgid "Cloning into '%s'...\n"
-msgstr "Đang nhân bản thành “%s”…\n"
+msgstr "Đang nhân bản thành '%s'...\n"
 
 msgid ""
 "clone --recursive is not compatible with both --reference and --reference-if-"
@@ -4230,24 +4286,25 @@ msgstr ""
 
 #, c-format
 msgid "'%s' is not a valid remote name"
-msgstr "“%s” không phải tên máy chủ hợp lệ"
+msgstr "'%s' không phải tên máy chủ hợp lệ"
 
 msgid "--depth is ignored in local clones; use file:// instead."
-msgstr "--depth bị lờ đi khi nhân bản nội bộ; hãy sử dụng file:// để thay thế."
+msgstr ""
+"--depth bị bỏ qua khi nhân bản nội bộ; hãy sử dụng file:// để thay thế."
 
 msgid "--shallow-since is ignored in local clones; use file:// instead."
 msgstr ""
-"--shallow-since bị lờ đi khi nhân bản nội bộ; hãy sử dụng file:// để thay "
+"--shallow-since bị bỏ qua khi nhân bản nội bộ; hãy sử dụng file:// để thay "
 "thế."
 
 msgid "--shallow-exclude is ignored in local clones; use file:// instead."
 msgstr ""
-"--shallow-exclude bị lờ đi khi nhân bản nội bộ; hãy sử dụng file:// để thay "
+"--shallow-exclude bị bỏ qua khi nhân bản nội bộ; hãy sử dụng file:// để thay "
 "thế."
 
 msgid "--filter is ignored in local clones; use file:// instead."
 msgstr ""
-"--filter bị lờ đi khi nhân bản nội bộ; hãy sử dụng file:// để thay thế."
+"--filter bị bỏ qua khi nhân bản nội bộ; hãy sử dụng file:// để thay thế."
 
 msgid "source repository is shallow, reject to clone."
 msgstr "kho nguồn là nông, nên bỏ từ chối nhân bản."
@@ -4256,13 +4313,23 @@ msgid "source repository is shallow, ignoring --local"
 msgstr "kho nguồn là nông, nên bỏ qua --local"
 
 msgid "--local is ignored"
-msgstr "--local bị lờ đi"
+msgstr "--local bị bỏ qua"
 
 msgid "cannot clone from filtered bundle"
 msgstr "không thể nhân bản từ bundle được lọc ra"
 
+msgid "failed to initialize the repo, skipping bundle URI"
+msgstr "khởi tạo kho chứa thất bại, đang bỏ qua URI bundle"
+
+#, c-format
+msgid "failed to fetch objects from bundle URI '%s'"
+msgstr "lấy về đối tượng từ URI bundle '%s' thất bại"
+
+msgid "failed to fetch advertised bundles"
+msgstr "lấy về bundle thất bại"
+
 msgid "remote transport reported error"
-msgstr "vận chuyển máy mạng đã báo cáo lỗi"
+msgstr "trình vận chuyển đã báo lỗi"
 
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
@@ -4292,38 +4359,50 @@ msgstr "chèn thêm khoảng trắng vào bên phải"
 msgid "padding space between columns"
 msgstr "chèn thêm khoảng trắng giữa các cột"
 
+#, c-format
+msgid "%s must be non-negative"
+msgstr "%s phải không âm"
+
 msgid "--command must be the first argument"
 msgstr "--command phải là đối số đầu tiên"
 
 msgid ""
-"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+"git commit-graph verify [--object-dir <dir>] [--shallow] [--[no-]progress]"
 msgstr ""
 "git commit-graph verify [--object-dir </thư/mục/đối/tượng>] [--shallow] [--"
 "[no-]progress]"
 
 msgid ""
-"git commit-graph write [--object-dir <objdir>] [--append] [--"
-"split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
-"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split options>"
+"git commit-graph write [--object-dir <dir>] [--append]\n"
+"                       [--split[=<strategy>]] [--reachable | --stdin-packs | "
+"--stdin-commits]\n"
+"                       [--changed-paths] [--[no-]max-new-filters <n>] [--"
+"[no-]progress]\n"
+"                       <split-options>"
 msgstr ""
-"git commit-graph write [--object-dir </thư/mục/đối/tượng>] [--append][--"
-"split[=<chiến lược>]] [--reachable|--stdin-packs|--stdin-commits][--changed-"
-"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <các tùy chọn chia "
-"tách>"
+"git commit-graph write [--object-dir </thư/mục/đối/tượng>] [--append]\n"
+"                       [--split[=<chiến lược>]] [--reachable | --stdin-packs "
+"| --stdin-commits]\n"
+"                       [--changed-paths] [--[no-]max-new-filters <n>] [--"
+"[no-]progress]\n"
+"                       <các tùy chọn chia tách>"
 
 msgid "dir"
-msgstr "tmục"
+msgstr "thư mục"
 
 msgid "the object directory to store the graph"
 msgstr "thư mục đối tượng để lưu đồ thị"
 
 msgid "if the commit-graph is split, only verify the tip file"
-msgstr ""
-"nếu đồ-thị-các-lần-chuyển-giao bị chia cắt, thì chỉ thẩm tra tập tin đỉnh"
+msgstr "nếu đồ-thị-chuyển-giao bị chia cắt, thì chỉ thẩm tra tập tin đỉnh"
 
 #, c-format
 msgid "Could not open commit-graph '%s'"
-msgstr "Không thể mở đồ thị chuyển giao “%s”"
+msgstr "Không thể mở đồ thị chuyển giao '%s'"
+
+#, c-format
+msgid "could not open commit-graph chain '%s'"
+msgstr "Không thể mở dãy đồ thị chuyển giao '%s'"
 
 #, c-format
 msgid "unrecognized --split argument, %s"
@@ -4331,7 +4410,7 @@ msgstr "đối số --split không được thừa nhận, %s"
 
 #, c-format
 msgid "unexpected non-hex object ID: %s"
-msgstr "nhận được ID đối tượng không phải dạng hex không cần: %s"
+msgstr "nhận được ID đối tượng không phải dạng hex bất thường %s"
 
 #, c-format
 msgid "invalid object: %s"
@@ -4339,24 +4418,19 @@ msgstr "đối tượng không hợp lệ: %s"
 
 #, c-format
 msgid "option `%s' expects a numerical value"
-msgstr "tùy chọn “%s” cần một giá trị bằng số"
+msgstr "tùy chọn '%s' cần một giá trị bằng số"
 
 msgid "start walk at all refs"
 msgstr "bắt đầu di chuyển tại mọi tham chiếu"
 
 msgid "scan pack-indexes listed by stdin for commits"
-msgstr ""
-"quét dó các mục lục gói được liệt kê bởi đầu vào tiêu chuẩn cho các lần "
-"chuyển giao"
+msgstr "quét dó các chỉ mục gói được liệt kê bởi stdin cho các lần chuyển giao"
 
 msgid "start walk at commits listed by stdin"
-msgstr ""
-"bắt đầu di chuyển tại các lần chuyển giao được liệt kê bởi đầu vào tiêu chuẩn"
+msgstr "bắt đầu di chuyển tại các lần chuyển giao được liệt kê bởi stdin"
 
 msgid "include all commits already in the commit-graph file"
-msgstr ""
-"bao gồm mọi lần chuyển giao đã sẵn có trongười tập tin đồ-thị-các-lần-chuyển-"
-"giao"
+msgstr "bao gồm mọi lần chuyển giao đã sẵn có trong tập tin đồ-thị-chuyển-giao"
 
 msgid "enable computation for changed paths"
 msgstr "cho phép tính toán các đường dẫn đã bị thay đổi"
@@ -4366,11 +4440,11 @@ msgstr "cho phép ghi một tập tin đồ họa các lần chuyển giao lớn
 
 msgid "maximum number of commits in a non-base split commit-graph"
 msgstr ""
-"số lượng tối đa của các lần chuyển giao trong một đồ-thị-các-lần-chuyển-giao "
-"chia cắt không-cơ-sở"
+"số lượng tối đa của các lần chuyển giao trong một đồ-thị-chuyển-giao chia "
+"cắt không-cơ-sở"
 
 msgid "maximum ratio between two levels of a split commit-graph"
-msgstr "tá»· lá»\87 tá»\91i Ä\91a giữa hai mức của má»\99t Ä\91á»\93-thá»\8b-các-lần-chuyển-giao chia cắt"
+msgstr "tá»\89 lá»\87 tá»\91i Ä\91a giữa hai mức của má»\99t Ä\91á»\93-thá»\8b-chuyển-giao chia cắt"
 
 msgid "only expire files older than a given date-time"
 msgstr "chỉ làm hết hạn các tập tin khi nó cũ hơn khoảng <thời gian> đưa ra"
@@ -4385,16 +4459,15 @@ msgstr ""
 msgid "Collecting commits from input"
 msgstr "Sưu tập các lần chuyển giao từ đầu vào"
 
-#, c-format
-msgid "unrecognized subcommand: %s"
-msgstr "không hiểu câu lệnh con: %s"
+msgid "git commit-tree <tree> [(-p <parent>)...]"
+msgstr "git commit-tree <cây> [(-p <cha>)...]"
 
 msgid ""
-"git commit-tree [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...] [(-F "
-"<file>)...] <tree>"
+"git commit-tree [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...]\n"
+"                [(-F <file>)...] <tree>"
 msgstr ""
-"git commit-tree [(-p <cha>)…] [-S[<keyid>]] [(-m <ghi chú>)…] [(-F <tập tin>)"
-"] <cây>"
+"git commit-tree [(-p <cha>)...] [-S[<keyid>]] [(-m <ghi chú>)...]\n"
+"                [(-F <tập tin>)...] <cây>"
 
 #, c-format
 msgid "duplicate parent %s ignored"
@@ -4402,15 +4475,15 @@ msgstr "cha mẹ bị trùng lặp %s đã bị bỏ qua"
 
 #, c-format
 msgid "not a valid object name %s"
-msgstr "không phải là tên đối tượng hợp lệ “%s”"
+msgstr "không phải là tên đối tượng hợp lệ '%s'"
 
 #, c-format
 msgid "git commit-tree: failed to read '%s'"
-msgstr "git commit-tree: gặp lỗi khi đọc “%s”"
+msgstr "git commit-tree: gặp lỗi khi đọc '%s'"
 
 #, c-format
 msgid "git commit-tree: failed to close '%s'"
-msgstr "git commit-tree: gặp lỗi khi đóng “%s”"
+msgstr "git commit-tree: gặp lỗi khi đóng '%s'"
 
 msgid "parent"
 msgstr "cha-mẹ"
@@ -4436,22 +4509,38 @@ msgstr "phải đưa ra chính xác một cây"
 msgid "git commit-tree: failed to read"
 msgstr "git commit-tree: gặp lỗi khi đọc"
 
-msgid "git commit [<options>] [--] <pathspec>..."
-msgstr "git commit [<các tùy chọn>] [--] <pathspec>…"
+msgid ""
+"git commit [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]\n"
+"           [--dry-run] [(-c | -C | --squash) <commit> | --fixup [(amend|"
+"reword):]<commit>)]\n"
+"           [-F <file> | -m <msg>] [--reset-author] [--allow-empty]\n"
+"           [--allow-empty-message] [--no-verify] [-e] [--author=<author>]\n"
+"           [--date=<date>] [--cleanup=<mode>] [--[no-]status]\n"
+"           [-i | -o] [--pathspec-from-file=<file> [--pathspec-file-nul]]\n"
+"           [(--trailer <token>[(=|:)<value>])...] [-S[<keyid>]]\n"
+"           [--] [<pathspec>...]"
+msgstr ""
+"git commit [-a | --interactive | --patch] [-s] [-v] [-u<chế-độ>] [--amend]\n"
+"           [--dry-run] [(-c | -C | --squash) <lần chuyển giao> | --fixup "
+"[(amend|reword):]<lần chuyển giao>)]\n"
+"           [-F <tập tin> | -m <ghi chú>] [--reset-author] [--allow-empty]\n"
+"           [--allow-empty-message] [--no-verify] [-e] [--author=<tác giả>]\n"
+"           [--date=<ngày tháng>] [--cleanup=<chế-độ>] [--[no-]status]\n"
+"           [-i | -o] [--pathspec-from-file=<tập-tin> [--pathspec-file-nul]]\n"
+"           [(--trailer <thẻ>[(=|:)<giá-trị>])...] [-S[<keyid>]]\n"
+"           [--] [<pathspec>...]"
 
-msgid "git status [<options>] [--] <pathspec>..."
-msgstr "git status [<các tùy chọn>] [--] <pathspec>"
+msgid "git status [<options>] [--] [<pathspec>...]"
+msgstr "git status [<các tùy chọn>] [--] <pathspec>..."
 
 msgid ""
 "You asked to amend the most recent commit, but doing so would make\n"
 "it empty. You can repeat your command with --allow-empty, or you can\n"
 "remove the commit entirely with \"git reset HEAD^\".\n"
 msgstr ""
-"Bạn đã yêu cầu amend (“tu bổ”) phần lớn các lần chuyển giao gần đây, nhưng "
-"làm như thế\n"
-"có thể làm cho nó trở nên trống rỗng. Bạn có thể lặp lại lệnh của mình bằng "
-"--allow-empty,\n"
-"hoặc là bạn gỡ bỏ các lần chuyển giao một cách hoàn toàn bằng lệnh:\n"
+"Bạn đã yêu cầu amend ('tu bổ') lần chuyển giao gần nhất, nhưng làm vậy\n"
+"sẽ làm cho nó trở nên rỗng. Bạn có thể lặp lại lệnh với --allow-empty,\n"
+"hoặc là bạn gỡ bỏ lần chuyển giao một cách hoàn toàn bằng lệnh:\n"
 "\"git reset HEAD^\".\n"
 
 msgid ""
@@ -4461,18 +4550,17 @@ msgid ""
 "    git commit --allow-empty\n"
 "\n"
 msgstr ""
-"Lần cherry-pick trước hiện nay trống rỗng, có lẽ là bởi vì sự phân giải xung "
-"đột.\n"
+"Lần cherry-pick trước hiện nay trống rỗng, có lẽ là do giải quyết xung đột.\n"
 "Nếu bạn vẫn muốn chuyển giao nó cho dù thế nào đi nữa, hãy dùng:\n"
 "\n"
 "    git commit --allow-empty\n"
 "\n"
 
 msgid "Otherwise, please use 'git rebase --skip'\n"
-msgstr "Nếu không được thì dùng lệnh \"git rebase --skip\"\n"
+msgstr "Nếu không thì dùng lệnh \"git rebase --skip\"\n"
 
 msgid "Otherwise, please use 'git cherry-pick --skip'\n"
-msgstr "Nếu không được thì dùng lệnh \"git cherry-pick --skip\"\n"
+msgstr "Nếu không thì dùng lệnh \"git cherry-pick --skip\"\n"
 
 msgid ""
 "and then use:\n"
@@ -4489,12 +4577,15 @@ msgstr ""
 "\n"
 "    git cherry-pick --continue\n"
 "\n"
-"để lại tiếp tục cherry-picking các lần chuyển giao còn lại.\n"
+"để lại tiếp tục cherry-pick các lần chuyển giao còn lại.\n"
 "Nếu bạn muốn bỏ qua lần chuyển giao này thì dùng:\n"
 "\n"
 "    git cherry-pick --skip\n"
 "\n"
 
+msgid "updating files failed"
+msgstr "cập nhật tập tin gặp lỗi"
+
 msgid "failed to unpack HEAD tree object"
 msgstr "gặp lỗi khi tháo dỡ HEAD đối tượng cây"
 
@@ -4502,20 +4593,17 @@ msgid "No paths with --include/--only does not make sense."
 msgstr "Không đường dẫn với các tùy chọn --include/--only không hợp lý."
 
 msgid "unable to create temporary index"
-msgstr "không thể tạo bảng mục lục tạm thời"
+msgstr "không thể tạo chỉ mục tạm thời"
 
 msgid "interactive add failed"
 msgstr "gặp lỗi khi thêm bằng cách tương"
 
 msgid "unable to update temporary index"
-msgstr "không thể cập nhật bảng mục lục tạm thời"
+msgstr "không thể cập nhật chỉ mục tạm thời"
 
 msgid "Failed to update main cache tree"
 msgstr "Gặp lỗi khi cập nhật cây bộ nhớ đệm"
 
-msgid "unable to write new_index file"
-msgstr "không thể ghi tập tin lưu bảng mục lục mới (new_index)"
-
 msgid "cannot do a partial commit during a merge."
 msgstr ""
 "không thể thực hiện việc chuyển giao cục bộ trong khi đang được hòa trộn."
@@ -4529,21 +4617,21 @@ msgstr ""
 "không thể thực hiện việc chuyển giao cục bộ trong khi đang thực hiện cải tổ."
 
 msgid "cannot read the index"
-msgstr "không đọc được bảng mục lục"
+msgstr "không đọc được chỉ mục"
 
 msgid "unable to write temporary index file"
-msgstr "không thể ghi tập tin lưu bảng mục lục tạm thời"
+msgstr "không thể ghi tập tin chỉ mục tạm thời"
 
 #, c-format
 msgid "commit '%s' lacks author header"
-msgstr "lần chuyển giao “%s” thiếu phần tác giả ở đầu"
+msgstr "lần chuyển giao '%s' thiếu phần tác giả ở đầu"
 
 #, c-format
 msgid "commit '%s' has malformed author line"
-msgstr "lần chuyển giao “%s” có phần tác giả ở đầu dị dạng"
+msgstr "lần chuyển giao '%s' có phần tác giả ở đầu dị dạng"
 
 msgid "malformed --author parameter"
-msgstr "đối số cho --author bị dị hình"
+msgstr "đối số cho --author bị sai quy cách"
 
 #, c-format
 msgid "invalid date format: %s"
@@ -4557,19 +4645,19 @@ msgstr ""
 "trong phần ghi chú hiện tại"
 
 #, c-format
-msgid "could not lookup commit %s"
-msgstr "không thể tìm kiếm commit (lần chuyển giao) %s"
+msgid "could not lookup commit '%s'"
+msgstr "không thể tìm kiếm lần chuyển giao '%s'"
 
 #, c-format
 msgid "(reading log message from standard input)\n"
-msgstr "(đang đọc thông điệp nhật ký từ đầu vào tiêu chuẩn)\n"
+msgstr "(đang đọc thông điệp nhật ký từ stdin)\n"
 
 msgid "could not read log from standard input"
-msgstr "không thể đọc nhật ký từ đầu vào tiêu chuẩn"
+msgstr "không thể đọc nhật ký từ stdin"
 
 #, c-format
 msgid "could not read log file '%s'"
-msgstr "không Ä\91á»\8dc Ä\91ược tá»\87p nhật ký â\80\9c%sâ\80\9d"
+msgstr "không Ä\91á»\8dc Ä\91ược tập nhật ký '%s'"
 
 #, c-format
 msgid "options '%s' and '%s:%s' cannot be used together"
@@ -4583,7 +4671,7 @@ msgstr "không thể đọc MERGE_MSG"
 
 #, c-format
 msgid "could not open '%s'"
-msgstr "không thể mở “%s”"
+msgstr "không thể mở '%s'"
 
 msgid "could not write commit template"
 msgstr "không thể ghi mẫu chuyển giao"
@@ -4591,39 +4679,39 @@ msgstr "không thể ghi mẫu chuyển giao"
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
-"with '%c' will be ignored.\n"
+"with '%s' will be ignored.\n"
 msgstr ""
 "Hãy nhập vào các thông tin để giải thích các thay đổi của bạn. Những\n"
-"dòng được bắt đầu bằng “%c” sẽ được bỏ qua.\n"
+"dòng được bắt đầu bằng '%s' sẽ được bỏ qua.\n"
 
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
-"with '%c' will be ignored, and an empty message aborts the commit.\n"
+"with '%s' will be ignored, and an empty message aborts the commit.\n"
 msgstr ""
 "Hãy nhập vào các thông tin để giải thích các thay đổi của bạn. Những dòng "
 "được\n"
-"bắt đầu bằng “%c” sẽ được bỏ qua, nếu phần chú thích rỗng sẽ hủy bỏ lần "
+"bắt đầu bằng '%s' sẽ được bỏ qua, nếu phần chú thích rỗng sẽ hủy bỏ lần "
 "chuyển giao.\n"
 
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
-"with '%c' will be kept; you may remove them yourself if you want to.\n"
+"with '%s' will be kept; you may remove them yourself if you want to.\n"
 msgstr ""
 "Hãy nhập vào các thông tin để giải thích các thay đổi của bạn. Những dòng "
 "được\n"
-"bắt đầu bằng “%c” sẽ được bỏ qua; bạn có thể xóa chúng đi nếu muốn thế.\n"
+"bắt đầu bằng '%s' sẽ được bỏ qua; bạn có thể xóa chúng đi nếu muốn thế.\n"
 
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
-"with '%c' will be kept; you may remove them yourself if you want to.\n"
+"with '%s' will be kept; you may remove them yourself if you want to.\n"
 "An empty message aborts the commit.\n"
 msgstr ""
 "Hãy nhập vào các thông tin để giải thích các thay đổi của bạn. Những dòng "
 "được\n"
-"bắt đầu bằng “%c” sẽ được bỏ qua; bạn có thể xóa chúng đi nếu muốn thế.\n"
+"bắt đầu bằng '%s' sẽ được bỏ qua; bạn có thể xóa chúng đi nếu muốn thế.\n"
 "Phần chú thích này nếu trống rỗng sẽ hủy bỏ lần chuyển giao.\n"
 
 msgid ""
@@ -4665,10 +4753,10 @@ msgid "%sCommitter: %.*s <%.*s>"
 msgstr "%sNgười chuyển giao: %.*s <%.*s>"
 
 msgid "Cannot read index"
-msgstr "Không đọc được bảng mục lục"
+msgstr "Không đọc được chỉ mục"
 
 msgid "unable to pass trailers to --trailers"
-msgstr "không thể chuyển phần đuôi cho “--trailers”"
+msgstr "không thể chuyển phần đuôi cho '--trailers'"
 
 msgid "Error building trees"
 msgstr "Gặp lỗi khi xây dựng cây"
@@ -4680,25 +4768,25 @@ msgstr "Xin hãy cung cấp lời chú giải hoặc là dùng tùy chọn -m ho
 #, c-format
 msgid "--author '%s' is not 'Name <email>' and matches no existing author"
 msgstr ""
-"--author “%s” không phải là “Họ và tên <thư điện tửl>” và không khớp bất kỳ "
-"tác giả nào sẵn có"
+"--author '%s' không phải là 'Họ-và-tên <email>' và không khớp bất kỳ tác giả "
+"nào sẵn có"
 
 #, c-format
 msgid "Invalid ignored mode '%s'"
-msgstr "Chế độ bỏ qua không hợp lệ “%s”"
+msgstr "Chế độ bỏ qua không hợp lệ '%s'"
 
 #, c-format
 msgid "Invalid untracked files mode '%s'"
-msgstr "Chế độ cho các tập tin chưa được theo dõi không hợp lệ “%s”"
+msgstr "Chế độ cho các tập tin chưa được theo dõi không hợp lệ '%s'"
 
 msgid "You are in the middle of a merge -- cannot reword."
 msgstr ""
-"Bạn đang ở giữa của quá trình hòa trộn -- không thể thực hiện việc “reword”."
+"Bạn đang ở giữa của quá trình hòa trộn -- không thể thực hiện việc 'reword'."
 
 msgid "You are in the middle of a cherry-pick -- cannot reword."
 msgstr ""
 "Bạn đang ở giữa của quá trình cherry-pick -- không thể thực hiện việc "
-"“reword”."
+"'reword'."
 
 #, c-format
 msgid "reword option of '%s' and path '%s' cannot be used together"
@@ -4710,20 +4798,20 @@ msgid "reword option of '%s' and '%s' cannot be used together"
 msgstr "không thể tổ hợp tùy chọn \"reword\" của '%s' với '%s' cùng nhau"
 
 msgid "You have nothing to amend."
-msgstr "Không có gì để mà “tu bổ” cả."
+msgstr "Không có gì để 'tu bổ' cả."
 
 msgid "You are in the middle of a merge -- cannot amend."
 msgstr ""
-"Bạn đang ở giữa của quá trình hòa trộn -- không thể thực hiện việc “tu bổ”."
+"Bạn đang ở giữa của quá trình hòa trộn -- không thể thực hiện việc 'tu bổ'."
 
 msgid "You are in the middle of a cherry-pick -- cannot amend."
 msgstr ""
-"Bạn đang ở giữa của quá trình cherry-pick -- không thể thực hiện việc tu "
-"bổ."
+"Bạn đang ở giữa của quá trình cherry-pick -- không thể thực hiện việc 'tu "
+"bổ'."
 
 msgid "You are in the middle of a rebase -- cannot amend."
 msgstr ""
-"Bạn đang ở giữa của quá trình cải tổ -- nên không thể thực hiện việc “tu bổ”."
+"Bạn đang ở giữa của quá trình cải tổ -- nên không thể thực hiện việc 'tu bổ'."
 
 msgid "--reset-author can be used only with -C, -c or --amend."
 msgstr ""
@@ -4735,7 +4823,7 @@ msgstr "không hiểu tùy chọn: --fixup=%s:%s"
 
 #, c-format
 msgid "paths '%s ...' with -a does not make sense"
-msgstr "các đường dẫn “%s …” với tùy chọn -a không hợp lý"
+msgstr "các đường dẫn '%s ...' với tùy chọn -a không hợp lý"
 
 msgid "show status concisely"
 msgstr "hiển thị trạng thái ở dạng súc tích"
@@ -4747,7 +4835,7 @@ msgid "show stash information"
 msgstr "hiển thị thông tin về tạm cất"
 
 msgid "compute full ahead/behind values"
-msgstr "tính đầy đủ giá trị trước/sau"
+msgstr "tính đầy đủ giá trị dẫn trước/sau"
 
 msgid "version"
 msgstr "phiên bản"
@@ -4759,10 +4847,7 @@ msgid "show status in long format (default)"
 msgstr "hiển thị trạng thái ở định dạng dài (mặc định)"
 
 msgid "terminate entries with NUL"
-msgstr "chấm dứt các mục bằng NUL"
-
-msgid "mode"
-msgstr "chế độ"
+msgstr "kết thúc các mục bằng NUL"
 
 msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
 msgstr ""
@@ -4790,20 +4875,19 @@ msgid "list untracked files in columns"
 msgstr "hiển thị danh sách các tập-tin chưa được theo dõi trong các cột"
 
 msgid "do not detect renames"
-msgstr "không dò tìm các tên thay đổi"
+msgstr "không dò tìm các lần đổi tên"
 
 msgid "detect renames, optionally set similarity index"
-msgstr "dò các tên thay đổi, tùy ý đặt mục lục tương tự"
+msgstr "tìm và phát hiện các lần đổi tên, có thể đánh chỉ số tương tự"
 
 msgid "Unsupported combination of ignored and untracked-files arguments"
-msgstr ""
-"Không hỗ trỡ tổ hợp các tham số các tập tin bị bỏ qua và không được theo dõi"
+msgstr "Không hỗ trợ cùng lúc tham số tập tin bị bỏ qua và không được theo dõi"
 
 msgid "suppress summary after successful commit"
 msgstr "không hiển thị tổng kết sau khi chuyển giao thành công"
 
 msgid "show diff in commit message template"
-msgstr "hiển thị sự khác biệt trong mẫu tin nhắn chuyển giao"
+msgstr "hiển thị diff trong mẫu tin nhắn chuyển giao"
 
 msgid "Commit message options"
 msgstr "Các tùy chọn ghi chú commit"
@@ -4878,7 +4962,7 @@ msgid "commit all changed files"
 msgstr "chuyển giao tất cả các tập tin có thay đổi"
 
 msgid "add specified files to index for commit"
-msgstr "thêm các tập tin đã chỉ ra vào bảng mục lục để chuyển giao"
+msgstr "thêm các tập tin đã chỉ ra vào chỉ mục để chuyển giao"
 
 msgid "interactively add files"
 msgstr "thêm các tập-tin bằng tương tác"
@@ -4896,7 +4980,7 @@ msgid "show what would be committed"
 msgstr "hiển thị xem cái gì có thể được chuyển giao"
 
 msgid "amend previous commit"
-msgstr "“tu bổ” (amend) lần commit trước"
+msgstr "'tu bổ' (amend) lần commit trước"
 
 msgid "bypass post-rewrite hook"
 msgstr "vòng qua móc (hook) post-rewrite"
@@ -4908,7 +4992,7 @@ msgid "ok to record a change with an empty message"
 msgstr "ok để ghi các thay đổi với lời nhắn trống rỗng"
 
 msgid "could not parse HEAD commit"
-msgstr "không thể phân tích commit (lần chuyển giao) HEAD"
+msgstr "không thể đọc commit (lần chuyển giao) HEAD"
 
 #, c-format
 msgid "Corrupt MERGE_HEAD file (%s)"
@@ -4923,27 +5007,26 @@ msgstr "không thể đọc phần chú thích (message) của lần chuyển gi
 
 #, c-format
 msgid "Aborting commit due to empty commit message.\n"
-msgstr "Bãi bỏ việc chuyển giao bởi vì phần chú thích của nó trống rỗng.\n"
+msgstr "Huỷ bỏ lệnh chuyển giao bởi vì phần chú thích của nó trống rỗng.\n"
 
 #, c-format
 msgid "Aborting commit; you did not edit the message.\n"
 msgstr ""
-"Đang bỏ qua việc chuyển giao; bạn đã không biên soạn phần chú thích "
-"(message).\n"
+"Huỷ bỏ lệnh chuyển giao; bạn đã không biên soạn phần chú thích (message).\n"
 
 #, c-format
 msgid "Aborting commit due to empty commit message body.\n"
 msgstr ""
-"Bãi bỏ việc chuyển giao bởi vì phần thân chú thích của nó trống rỗng.\n"
+"Huỷ bỏ lệnh chuyển giao bởi vì phần thân chú thích của nó trống rỗng.\n"
 
 msgid ""
 "repository has been updated, but unable to write\n"
-"new_index file. Check that disk is not full and quota is\n"
+"new index file. Check that disk is not full and quota is\n"
 "not exceeded, and then \"git restore --staged :/\" to recover."
 msgstr ""
 "kho chứa đã được cập nhật, nhưng không thể ghi vào\n"
-"tập tin new_index (bảng mục lục mới). Hãy kiểm tra xem đĩa\n"
-"có bị đầy quá hay quota (hạn nghạch đĩa cứng) bị vượt quá,\n"
+"tập tin chỉ mục mới. Hãy kiểm tra xem đĩa\n"
+"có bị đầy quá hay hạn nghạch đĩa (quota) bị vượt quá hay không,\n"
 "và sau đó \"git restore --staged :/\" để khắc phục."
 
 msgid "git config [<options>]"
@@ -5017,7 +5100,7 @@ msgid "list all"
 msgstr "liệt kê tất"
 
 msgid "use string equality when comparing values to 'value-pattern'"
-msgstr "sử dụng so sánh bằng chuỗi khi so sánh các giá trị với “value-pattern”"
+msgstr "sử dụng so sánh bằng chuỗi khi so sánh các giá trị với 'value-pattern'"
 
 msgid "open an editor"
 msgstr "mở một trình biên soạn"
@@ -5059,7 +5142,7 @@ msgid "Other"
 msgstr "Khác"
 
 msgid "terminate values with NUL byte"
-msgstr "chấm dứt giá trị với byte NUL"
+msgstr "kết thúc giá trị với byte NUL"
 
 msgid "show variable names only"
 msgstr "chỉ hiển thị các tên biến"
@@ -5068,9 +5151,7 @@ msgid "respect include directives on lookup"
 msgstr "tôn trọng kể cà các hướng trong tìm kiếm"
 
 msgid "show origin of config (file, standard input, blob, command line)"
-msgstr ""
-"hiển thị nguyên gốc của cấu hình (tập tin, đầu vào tiêu chuẩn, blob, dòng "
-"lệnh)"
+msgstr "hiển thị nguồn gốc của cấu hình (tập tin, stdin, blob, dòng lệnh)"
 
 msgid "show scope of config (worktree, local, global, system, command)"
 msgstr ""
@@ -5083,6 +5164,9 @@ msgstr "giá trị"
 msgid "with --get, use default value when missing entry"
 msgstr "với --get, dùng giá trị mặc định khi thiếu mục tin"
 
+msgid "human-readable comment string (# will be prepended as needed)"
+msgstr "ghi chú cho người đọc được (tự động thêm # vào trước nếu cần)"
+
 #, c-format
 msgid "wrong number of arguments, should be %d"
 msgstr "sai số lượng tham số, phải là %d"
@@ -5105,16 +5189,16 @@ msgstr "gặp lỗi khi định dạng giá trị cấu hình mặc định: %s"
 
 #, c-format
 msgid "cannot parse color '%s'"
-msgstr "không thể phân tích màu “%s”"
+msgstr "không thể đọc màu '%s'"
 
 msgid "unable to parse default color value"
-msgstr "không thể phân tích giá trị màu mặc định"
+msgstr "không thể đọc giá trị màu mặc định"
 
 msgid "not in a git directory"
 msgstr "không trong thư mục git"
 
 msgid "writing to stdin is not supported"
-msgstr "việc ghi ra đầu ra tiêu chuẩn là không được hỗ trợ"
+msgstr "việc ghi ra stdin là không được hỗ trợ"
 
 msgid "writing config blobs is not supported"
 msgstr "không hỗ trợ ghi cấu hình các blob"
@@ -5176,25 +5260,28 @@ msgstr ""
 msgid "--default is only applicable to --get"
 msgstr "--default chỉ được áp dụng cho --get"
 
+msgid "--comment is only applicable to add/set/replace operations"
+msgstr "--comment chỉ được áp dụng cho thao tác add/set/replace"
+
 msgid "--fixed-value only applies with 'value-pattern'"
-msgstr "--fixed-value chỉ áp dụng với “value-pattern”"
+msgstr "--fixed-value chỉ áp dụng với 'value-pattern'"
 
 #, c-format
 msgid "unable to read config file '%s'"
-msgstr "không thể đọc tập tin cấu hình “%s”"
+msgstr "không thể đọc tập tin cấu hình '%s'"
 
 msgid "error processing config file(s)"
 msgstr "gặp lỗi khi xử lý các tập tin cấu hình"
 
 msgid "editing stdin is not supported"
-msgstr "sửa chữa đầu ra tiêu chuẩn là không được hỗ trợ"
+msgstr "sửa chữa stdin là không được hỗ trợ"
 
 msgid "editing blobs is not supported"
 msgstr "việc sửa chữa các blob là không được hỗ trợ"
 
 #, c-format
 msgid "cannot create configuration file %s"
-msgstr "không thể tạo tập tin cấu hình “%s”"
+msgstr "không thể tạo tập tin cấu hình '%s'"
 
 #, c-format
 msgid ""
@@ -5219,12 +5306,12 @@ msgid ""
 "\tchmod 0700 %s"
 msgstr ""
 "Quyền hạn trên thư mục gói mạng của bạn không chính xác; người dùng\n"
-"khác có lẽ có thể đọc được chứng thư được lưu đệm của bạn. Cân nhắc chạy:\n"
+"khác có lẽ có thể đọc được chứng thư được lưu đệm của bạn. Thử chạy:\n"
 "\n"
 "\tchmod 0700 %s"
 
 msgid "print debugging messages to stderr"
-msgstr "in thông tin gỡ lỗi ra đầu ra lỗi tiêu chuẩn"
+msgstr "in thông tin gỡ lỗi ra stderr"
 
 msgid "credential-cache--daemon unavailable; no unix socket support"
 msgstr "credential-cache--daemon không sẵn có; không hỗ trợ unix socket"
@@ -5236,17 +5323,24 @@ msgstr "credential-cache không sẵn có; không hỗ trợ unix socket"
 msgid "unable to get credential storage lock in %d ms"
 msgstr "không thể lấy khóa lưu trữ ủy nhiệm %d ms"
 
-msgid "git describe [<options>] [<commit-ish>...]"
-msgstr "git describe [<các tùy chọn>] <commit-ish>*"
+msgid ""
+"git describe [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...]"
+msgstr ""
+"git describe [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...]"
+
+msgid ""
+"git describe [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]"
+msgstr ""
+"git describe [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]"
 
-msgid "git describe [<options>] --dirty"
-msgstr "git describe [<các tùy chọn>] --dirty"
+msgid "git describe <blob>"
+msgstr "git describe <blob>"
 
 msgid "head"
-msgstr "phía trước"
+msgstr "head"
 
 msgid "lightweight"
-msgstr "hạng nhẹ"
+msgstr "nhẹ"
 
 msgid "annotated"
 msgstr "có diễn giải"
@@ -5257,11 +5351,11 @@ msgstr "thẻ đã được ghi chú %s không sẵn để dùng"
 
 #, c-format
 msgid "tag '%s' is externally known as '%s'"
-msgstr "ở bên ngoài, thẻ “%s” đã được biết đến là “%s”"
+msgstr "ở bên ngoài, thẻ '%s' đã được biết đến là '%s'"
 
 #, c-format
 msgid "no tag exactly matches '%s'"
-msgstr "không có thẻ nào khớp chính xác với “%s”"
+msgstr "không có thẻ nào khớp chính xác với '%s'"
 
 #, c-format
 msgid "No exact match on refs or tags, searching to describe\n"
@@ -5276,7 +5370,7 @@ msgid ""
 "No annotated tags can describe '%s'.\n"
 "However, there were unannotated tags: try --tags."
 msgstr ""
-"Không có thẻ được chú giải nào được mô tả là “%s”.\n"
+"Không có thẻ được chú giải nào được mô tả là '%s'.\n"
 "Tuy nhiên, ở đây có những thẻ không được chú giải: hãy thử --tags."
 
 #, c-format
@@ -5284,7 +5378,7 @@ msgid ""
 "No tags can describe '%s'.\n"
 "Try --always, or create some tags."
 msgstr ""
-"Không có thẻ có thể mô tả “%s”.\n"
+"Không có thẻ có thể mô tả '%s'.\n"
 "Hãy thử --always, hoặc tạo một số thẻ."
 
 #, c-format
@@ -5315,13 +5409,13 @@ msgid "find the tag that comes after the commit"
 msgstr "tìm các thẻ mà nó đến trước lần chuyển giao"
 
 msgid "debug search strategy on stderr"
-msgstr "chiến lược tìm kiếm gỡ lỗi trên đầu ra lỗi chuẩn stderr"
+msgstr "gỡ lỗi chiến lược tìm kiếm ra stderr"
 
 msgid "use any ref"
 msgstr "dùng ref bất kỳ"
 
 msgid "use any tag, even unannotated"
-msgstr "dùng thẻ bất kỳ, cả khi “unannotated”"
+msgstr "dùng thẻ bất kỳ, cả khi 'unannotated'"
 
 msgid "always use long format"
 msgstr "luôn dùng định dạng dài"
@@ -5333,39 +5427,60 @@ msgid "only output exact matches"
 msgstr "chỉ xuất những gì khớp chính xác"
 
 msgid "consider <n> most recent tags (default: 10)"
-msgstr "coi như <n> thẻ gần đây nhất (mặc định: 10)"
+msgstr "chọn trong <n> thẻ gần đây nhất (mặc định: 10)"
 
 msgid "only consider tags matching <pattern>"
-msgstr "chỉ cân nhắc đến những thẻ khớp với <mẫu>"
+msgstr "chỉ chọn những thẻ khớp với <mẫu>"
 
 msgid "do not consider tags matching <pattern>"
-msgstr "không coi rằng các thẻ khớp với <mẫu>"
+msgstr "không chọn những thẻ khớp với <mẫu>"
 
 msgid "show abbreviated commit object as fallback"
-msgstr "hiển thị đối tượng chuyển giao vắn tắt như là fallback"
+msgstr "hiển thị vắn tắt đối tượng chuyển giao để thay thế"
 
 msgid "mark"
 msgstr "dấu"
 
 msgid "append <mark> on dirty working tree (default: \"-dirty\")"
-msgstr "thêm <dấu> trên cây thư mục làm việc bẩn (mặc định \"-dirty\")"
+msgstr "thêm <dấu> trên cây làm việc không sạch (mặc định \"-dirty\")"
 
 msgid "append <mark> on broken working tree (default: \"-broken\")"
-msgstr "thêm <dấu> trên cây thư mục làm việc bị hỏng (mặc định \"-broken\")"
+msgstr "thêm <dấu> trên cây làm việc bị hỏng (mặc định \"-broken\")"
 
 msgid "No names found, cannot describe anything."
-msgstr "Không tìm thấy các tên, không thể mô tả gì cả."
+msgstr "Không tìm thấy tên, không thể mô tả gì cả."
 
 #, c-format
 msgid "option '%s' and commit-ishes cannot be used together"
 msgstr "tùy chọn '%s' và commit-ishes không thể dùng cùng nhau"
 
+msgid ""
+"git diagnose [(-o | --output-directory) <path>] [(-s | --suffix) <format>]\n"
+"             [--mode=<mode>]"
+msgstr ""
+"git diagnose [(-o | --output-directory) <tập tin>] [(-s | --suffix) <định "
+"dạng>]\n"
+"             [--mode=<chế độ>]"
+
+msgid "specify a destination for the diagnostics archive"
+msgstr "chỉ định thư mục đích để tạo bản báo cáo"
+
+msgid "specify a strftime format suffix for the filename"
+msgstr ""
+"chỉ định chuỗi định dạng thời gian strftime dùng làm hậu tố cho tên tập tin"
+
+msgid "specify the content of the diagnostic archive"
+msgstr "chỉ định nội dung bản báo cáo"
+
 msgid "--merge-base only works with two commits"
 msgstr "--merge-base chỉ hoạt động với hai lần chuyển giao"
 
 #, c-format
 msgid "'%s': not a regular file or symlink"
-msgstr "“%s”: không phải tập tin bình thường hay liên kết mềm"
+msgstr "'%s': không phải tập tin bình thường hay liên kết mềm"
+
+msgid "no merge given, only parents."
+msgstr "không có lần hoà trộn, chỉ có các lần chuyển giao cha"
 
 #, c-format
 msgid "invalid option: %s"
@@ -5373,31 +5488,31 @@ msgstr "tùy chọn không hợp lệ: %s"
 
 #, c-format
 msgid "%s...%s: no merge base"
-msgstr "%s…%s: không có cơ sở hòa trộn"
+msgstr "%s...%s: không có gốc hòa trộn"
 
 msgid "Not a git repository"
 msgstr "Không phải là kho git"
 
 #, c-format
 msgid "invalid object '%s' given."
-msgstr "đối tượng đã cho “%s” không hợp lệ."
+msgstr "đối tượng đã cho '%s' không hợp lệ."
 
 #, c-format
 msgid "more than two blobs given: '%s'"
-msgstr "đã cho nhiều hơn hai đối tượng blob: “%s”"
+msgstr "đã cho nhiều hơn hai đối tượng blob: '%s'"
 
 #, c-format
 msgid "unhandled object '%s' given."
-msgstr "đã cho đối tượng không thể nắm giữ “%s”."
+msgstr "đã cho đối tượng không thể xử lý '%s'."
 
 #, c-format
 msgid "%s...%s: multiple merge bases, using %s"
-msgstr "%s…%s: có nhiều cơ sở để hòa trộn, nên dùng %s"
+msgstr "%s...%s: có nhiều gốc hòa trộn, sẽ dùng %s"
 
 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
 msgstr ""
 "git difftool [<các tùy chọn>] [<lần_chuyển_giao> [<lần_chuyển_giao>]] [--] </"
-"đường/dẫn>]"
+"đường/dẫn>...]"
 
 #, c-format
 msgid "could not read symlink %s"
@@ -5415,23 +5530,23 @@ msgid ""
 "combined diff formats ('-c' and '--cc') are not supported in\n"
 "directory diff mode ('-d' and '--dir-diff')."
 msgstr ""
-"các định dạng diff tổ hợp(“-c” và “--cc”) chưa được hỗ trợ trong\n"
-"chế độ diff thư mục(“-d” và “--dir-diff”)."
+"các định dạng diff tổ hợp('-c' và '--cc') chưa được hỗ trợ trong\n"
+"chế độ diff thư mục('-d' và '--dir-diff')."
 
 #, c-format
 msgid "both files modified: '%s' and '%s'."
-msgstr "cả hai tập tin đã bị sửa: “%s” và “%s”."
+msgstr "cả hai tập tin đã bị sửa: '%s' và '%s'."
 
 msgid "working tree file has been left."
 msgstr "cây làm việc ở bên trái."
 
 #, c-format
 msgid "could not copy '%s' to '%s'"
-msgstr "không thể chép “%s” sang “%s”"
+msgstr "không thể chép '%s' sang '%s'"
 
 #, c-format
 msgid "temporary files exist in '%s'."
-msgstr "các tập tin tạm đã sẵn có trong “%s”."
+msgstr "các tập tin tạm đã sẵn có trong '%s'."
 
 msgid "you may want to cleanup or recover these."
 msgstr "bạn có lẽ muốn dọn dẹp hay phục hồi ở đây."
@@ -5441,7 +5556,7 @@ msgid "failed: %d"
 msgstr "gặp lỗi: %d"
 
 msgid "use `diff.guitool` instead of `diff.tool`"
-msgstr "dùng “diff.guitool“ thay vì dùng “diff.tool“"
+msgstr "dùng 'diff.guitool' thay vì dùng 'diff.tool'"
 
 msgid "perform a full-directory diff"
 msgstr "thực hiện một diff toàn thư mục"
@@ -5459,18 +5574,18 @@ msgid "use the specified diff tool"
 msgstr "dùng công cụ diff đã cho"
 
 msgid "print a list of diff tools that may be used with `--tool`"
-msgstr "in ra danh sách các công cụ dif cái mà có thẻ dùng với “--tool“"
+msgstr "in ra danh sách các công cụ dif cái mà có thẻ dùng với '--tool'"
 
 msgid ""
 "make 'git-difftool' exit when an invoked diff tool returns a non-zero exit "
 "code"
-msgstr "làm cho “git-difftool” thoát khi gọi công cụ diff trả về mã khác không"
+msgstr "làm cho 'git-difftool' thoát khi gọi công cụ diff trả về mã khác không"
 
 msgid "specify a custom command for viewing diffs"
 msgstr "chỉ định một lệnh tùy ý để xem diff"
 
 msgid "passed to `diff`"
-msgstr "chuyển cho “diff”"
+msgstr "chuyển cho 'diff'"
 
 msgid "difftool requires worktree or --no-index"
 msgstr "difftool cần cây làm việc hoặc --no-index"
@@ -5481,28 +5596,6 @@ msgstr "chưa đưa ra <công_cụ> cho --tool=<công_cụ>"
 msgid "no <cmd> given for --extcmd=<cmd>"
 msgstr "chưa đưa ra <lệnh> cho --extcmd=<lệnh>"
 
-msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
-msgstr "git env--helper --type=[bool|ulong] <các tùy chọn> <env-var>"
-
-msgid "default for git_env_*(...) to fall back on"
-msgstr "mặc định cho git_env_*(…) để quay về"
-
-msgid "be quiet only use git_env_*() value as exit code"
-msgstr "im lặng chỉ khi dung giá trị git_env_*() làm mã thoát"
-
-#, c-format
-msgid "option `--default' expects a boolean value with `--type=bool`, not `%s`"
-msgstr ""
-"tùy chọn “--default” cần một giá trị logic với “--type=bool“, không phải “%s“"
-
-#, c-format
-msgid ""
-"option `--default' expects an unsigned long value with `--type=ulong`, not `"
-"%s`"
-msgstr ""
-"tùy chọn “--default” cần một giá trị số nguyên dài không dấu với “--"
-"type=ulong“, không phải “%s“"
-
 msgid "git fast-export [<rev-list-opts>]"
 msgstr "git fast-export [<rev-list-opts>]"
 
@@ -5541,7 +5634,7 @@ msgid "output full tree for each commit"
 msgstr "xuất ra toàn bộ cây cho mỗi lần chuyển giao"
 
 msgid "use the done feature to terminate the stream"
-msgstr "sử dụng tính năng done để chấm dứt luồng dữ liệu"
+msgstr "sử dụng tính năng done để kết thúc luồng dữ liệu"
 
 msgid "skip output of blob data"
 msgstr "bỏ qua kết xuất của dữ liệu blob"
@@ -5574,40 +5667,40 @@ msgstr "gắn thẻ với các mã ID đánh dấu"
 
 #, c-format
 msgid "Missing from marks for submodule '%s'"
-msgstr "Thiếu các đánh dấu cho mô-đun-con “%s”"
+msgstr "Thiếu các đánh dấu cho mô-đun-con '%s'"
 
 #, c-format
 msgid "Missing to marks for submodule '%s'"
-msgstr "Thiếu đánh dấu cho mô-đun-con “%s”"
+msgstr "Thiếu đánh dấu cho mô-đun-con '%s'"
 
 #, c-format
 msgid "Expected 'mark' command, got %s"
-msgstr "Cần lệnh “mark”, nhưng lại nhận được %s"
+msgstr "Cần lệnh 'mark', nhưng lại có %s"
 
 #, c-format
 msgid "Expected 'to' command, got %s"
-msgstr "Cần lệnh “to”, nhưng lại nhận được %s"
+msgstr "Cần lệnh 'to', nhưng lại có %s"
 
 msgid "Expected format name:filename for submodule rewrite option"
-msgstr "Cần định dạng tên:tên_tập_tin cho tùy chọn ghi lại mô-đun-con"
+msgstr "Cần định dạng tên:tên_tập tin cho tùy chọn ghi lại mô-đun-con"
 
 #, c-format
 msgid "feature '%s' forbidden in input without --allow-unsafe-features"
 msgstr ""
-"tính năng “%s” bị cấm chỉ trong đầu vào mà không có --allow-unsafe-features"
+"tính năng '%s' bị cấm chỉ trong đầu vào mà không có --allow-unsafe-features"
 
 #, c-format
 msgid "Lockfile created but not reported: %s"
 msgstr "Tập tin khóa đã được tạo nhưng chưa được báo cáo: %s"
 
 msgid "git fetch [<options>] [<repository> [<refspec>...]]"
-msgstr "git fetch [<các tùy chọn>] [<kho-chứa> [<refspec>]]"
+msgstr "git fetch [<các tùy chọn>] [<kho-chứa> [<refspec>...]]"
 
 msgid "git fetch [<options>] <group>"
 msgstr "git fetch [<các tùy chọn>] [<nhóm>"
 
 msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
-msgstr "git fetch --multiple [<các tùy chọn>] [(<kho> | <nhóm>)]"
+msgstr "git fetch --multiple [<các tùy chọn>] [(<kho> | <nhóm>)...]"
 
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<các tùy chọn>]"
@@ -5615,117 +5708,13 @@ msgstr "git fetch --all [<các tùy chọn>]"
 msgid "fetch.parallel cannot be negative"
 msgstr "fetch.parallel không thể âm"
 
-msgid "fetch from all remotes"
-msgstr "lấy về từ tất cả các máy chủ"
-
-msgid "set upstream for git pull/fetch"
-msgstr "đặt thượng nguồn cho git pull/fetch"
-
-msgid "append to .git/FETCH_HEAD instead of overwriting"
-msgstr "nối thêm vào .git/FETCH_HEAD thay vì ghi đè lên nó"
-
-msgid "use atomic transaction to update references"
-msgstr "sử dụng giao dịch hạt nhân bên phía máy chủ"
-
-msgid "path to upload pack on remote end"
-msgstr "đường dẫn đến gói tải lên trên máy chủ cuối"
-
-msgid "force overwrite of local reference"
-msgstr "ép buộc ghi đè lên tham chiếu nội bộ"
-
-msgid "fetch from multiple remotes"
-msgstr "lấy từ nhiều máy chủ cùng lúc"
-
-msgid "fetch all tags and associated objects"
-msgstr "lấy tất cả các thẻ cùng với các đối tượng liên quan đến nó"
-
-msgid "do not fetch all tags (--no-tags)"
-msgstr "không lấy tất cả các thẻ (--no-tags)"
-
-msgid "number of submodules fetched in parallel"
-msgstr "số lượng mô-đun-con được lấy đồng thời"
-
-msgid "modify the refspec to place all refs within refs/prefetch/"
-msgstr ""
-"sửa đặc tả đường dẫn cho các tham chiếu mọi chỗ có trong refs/prefetch/"
-
-msgid "prune remote-tracking branches no longer on remote"
-msgstr ""
-"cắt cụt (prune) các nhánh “remote-tracking” không còn tồn tại trên máy chủ "
-"nữa"
-
-msgid "prune local tags no longer on remote and clobber changed tags"
-msgstr "cắt xém các thẻ nội bộ không còn ở máy chủ và xóa các thẻ đã thay đổi"
-
-msgid "on-demand"
-msgstr "khi-cần"
-
-msgid "control recursive fetching of submodules"
-msgstr "điều khiển việc lấy về đệ quy trong các mô-đun-con"
-
-msgid "write fetched references to the FETCH_HEAD file"
-msgstr "ghi các tham chiếu lấy về vào tập tin FETCH_HEAD"
-
-msgid "keep downloaded pack"
-msgstr "giữ lại gói đã tải về"
-
-msgid "allow updating of HEAD ref"
-msgstr "cho phép cập nhật th.chiếu HEAD"
-
-msgid "deepen history of shallow clone"
-msgstr "làm sâu hơn lịch sử của bản sao"
-
-msgid "deepen history of shallow repository based on time"
-msgstr "làm sâu hơn lịch sử của kho bản sao shallow dựa trên thời gian"
-
-msgid "convert to a complete repository"
-msgstr "chuyển đổi hoàn toàn sang kho git"
-
-msgid "re-fetch without negotiating common commits"
-msgstr "re-fetch mà không dàn xếp các lần chuyển giao chung"
-
-msgid "prepend this to submodule path output"
-msgstr "soạn sẵn cái này cho kết xuất đường dẫn mô-đun-con"
-
-msgid ""
-"default for recursive fetching of submodules (lower priority than config "
-"files)"
-msgstr ""
-"mặc định cho việc lấy đệ quy các mô-đun-con (có mức ưu tiên thấp hơn các tập "
-"tin cấu hình config)"
-
-msgid "accept refs that update .git/shallow"
-msgstr "chấp nhận tham chiếu cập nhật .git/shallow"
-
-msgid "refmap"
-msgstr "refmap"
-
-msgid "specify fetch refmap"
-msgstr "chỉ ra refmap cần lấy về"
-
-msgid "report that we have only objects reachable from this object"
-msgstr ""
-"báo cáo rằng chúng ta chỉ có các đối tượng tiếp cận được từ đối tượng này"
-
-msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
-msgstr ""
-"không lấy về một packfile; thay vào đó, hãy in tổ tiên của đỉnh đàm phán"
-
-msgid "run 'maintenance --auto' after fetching"
-msgstr "chạy “maintenance --auto” sau khi lấy về"
-
-msgid "check for forced-updates on all updated branches"
-msgstr "kiểm cho các-cập-nhật-bắt-buộc trên mọi nhánh đã cập nhật"
-
-msgid "write the commit-graph after fetching"
-msgstr "ghi ra đồ thị các lần chuyển giao sau khi lấy về"
-
-msgid "accept refspecs from stdin"
-msgstr "chấp nhận tham chiếu từ đầu vào tiêu chuẩn"
-
 msgid "couldn't find remote ref HEAD"
 msgstr "không thể tìm thấy HEAD tham chiếu máy chủ"
 
+#, c-format
+msgid "From %.*s\n"
+msgstr "Từ %.*s\n"
+
 #, c-format
 msgid "object %s not found"
 msgstr "không tìm thấy đối tượng %s"
@@ -5736,11 +5725,8 @@ msgstr "[đã cập nhật]"
 msgid "[rejected]"
 msgstr "[Bị từ chối]"
 
-msgid "can't fetch in current branch"
-msgstr "không thể fetch (lấy) về nhánh hiện hành"
-
-msgid "checked out in another worktree"
-msgstr "lấy ra trong cây làm việc khác"
+msgid "can't fetch into checked-out branch"
+msgstr "không thể fetch về nhánh đã checkout"
 
 msgid "[tag update]"
 msgstr "[cập nhật thẻ]"
@@ -5768,7 +5754,7 @@ msgstr "không-phải-chuyển-tiếp-nhanh"
 
 #, c-format
 msgid "cannot open '%s'"
-msgstr "không mở được “%s”"
+msgstr "không mở được '%s'"
 
 msgid ""
 "fetch normally indicates which branches had a forced update,\n"
@@ -5777,7 +5763,7 @@ msgid ""
 msgstr ""
 "việc lấy về thường chỉ ra các nhánh buộc phải cập nhật,\n"
 "nhưng lựa chọn bị tắt; để kích hoạt lại, sử dụng cờ\n"
-"“--show-forced-updates” hoặc chạy “git config fetch.showForcedUpdates true”."
+"'--show-forced-updates' hoặc chạy 'git config fetch.showForcedUpdates true'."
 
 #, c-format
 msgid ""
@@ -5787,8 +5773,8 @@ msgid ""
 "to avoid this check\n"
 msgstr ""
 "việc này cần %.2f giây để kiểm tra các cập nhật ép buộc; bạn có thể dùng\n"
-"“--no-show-forced-updates” hoặc chạy “git config fetch.showForcedUpdates "
-"false\n"
+"'--no-show-forced-updates' hoặc chạy 'git config fetch.showForcedUpdates "
+"false'\n"
 "để tránh kiểm tra này\n"
 
 #, c-format
@@ -5799,17 +5785,13 @@ msgstr "%s đã không gửi tất cả các đối tượng cần thiết\n"
 msgid "rejected %s because shallow roots are not allowed to be updated"
 msgstr "từ chối %s bởi vì các gốc nông thì không được phép cập nhật"
 
-#, c-format
-msgid "From %.*s\n"
-msgstr "Từ %.*s\n"
-
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
 " 'git remote prune %s' to remove any old, conflicting branches"
 msgstr ""
 "một số tham chiếu nội bộ không thể được cập nhật; hãy thử chạy\n"
-" “git remote prune %s” để bỏ đi những nhánh cũ, hay bị xung đột"
+" 'git remote prune %s' để bỏ đi những nhánh cũ, hay bị xung đột"
 
 #, c-format
 msgid "   (%s will become dangling)"
@@ -5827,7 +5809,7 @@ msgstr "(không)"
 
 #, c-format
 msgid "refusing to fetch into branch '%s' checked out at '%s'"
-msgstr "từ chối lấy về vào nhánh “%s” đã được lấy ra tại “%s”"
+msgstr "từ chối lấy về vào nhánh '%s' đã được checkout tại '%s'"
 
 #, c-format
 msgid "option \"%s\" value \"%s\" is not valid for %s"
@@ -5843,7 +5825,7 @@ msgstr "%s không phải là một đối tượng hợp lệ"
 
 #, c-format
 msgid "the object %s does not exist"
-msgstr "đối tượng “%s” không tồn tại"
+msgstr "đối tượng '%s' không tồn tại"
 
 msgid "multiple branches detected, incompatible with --set-upstream"
 msgstr "phát hiện nhiều nhánh, không tương thích với --set-upstream"
@@ -5874,15 +5856,15 @@ msgstr ""
 
 #, c-format
 msgid "Fetching %s\n"
-msgstr "Đang lấy “%s” về\n"
+msgstr "Đang lấy '%s' về\n"
 
 #, c-format
 msgid "could not fetch %s"
-msgstr "không thể lấy “%s” về"
+msgstr "không thể lấy '%s' về"
 
 #, c-format
 msgid "could not fetch '%s' (exit code: %d)\n"
-msgstr "không thể lấy “%s” (mã thoát: %d)\n"
+msgstr "không thể lấy '%s' (mã thoát: %d)\n"
 
 msgid ""
 "no remote repository specified; please specify either a URL or a\n"
@@ -5894,24 +5876,135 @@ msgstr ""
 msgid "you need to specify a tag name"
 msgstr "bạn cần chỉ định một tên thẻ"
 
-msgid "--negotiate-only needs one or more --negotiation-tip=*"
-msgstr "--negotiate-only cần một hay nhiều --negotiation-tip=* hơn"
+msgid "fetch from all remotes"
+msgstr "lấy về từ tất cả các máy chủ"
 
-msgid "negative depth in --deepen is not supported"
-msgstr "mức sâu là số âm trong --deepen là không được hỗ trợ"
+msgid "set upstream for git pull/fetch"
+msgstr "đặt thượng nguồn cho git pull/fetch"
 
-msgid "--unshallow on a complete repository does not make sense"
-msgstr "--unshallow trên kho hoàn chỉnh là không hợp lý"
+msgid "append to .git/FETCH_HEAD instead of overwriting"
+msgstr "nối thêm vào .git/FETCH_HEAD thay vì ghi đè lên nó"
 
-msgid "fetch --all does not take a repository argument"
-msgstr "lệnh lấy về \"fetch --all\" không lấy đối số kho chứa"
+msgid "use atomic transaction to update references"
+msgstr "sử dụng giao dịch hạt nhân bên phía máy chủ"
 
-msgid "fetch --all does not make sense with refspecs"
-msgstr "lệnh lấy về \"fetch --all\" không hợp lý với refspecs"
+msgid "path to upload pack on remote end"
+msgstr "đường dẫn đến gói tải lên trên máy chủ cuối"
 
-#, c-format
-msgid "no such remote or remote group: %s"
-msgstr "không có nhóm máy chủ hay máy chủ như thế: %s"
+msgid "force overwrite of local reference"
+msgstr "ép buộc ghi đè lên tham chiếu nội bộ"
+
+msgid "fetch from multiple remotes"
+msgstr "lấy từ nhiều máy chủ cùng lúc"
+
+msgid "fetch all tags and associated objects"
+msgstr "lấy tất cả các thẻ cùng với các đối tượng liên quan đến nó"
+
+msgid "do not fetch all tags (--no-tags)"
+msgstr "không lấy tất cả các thẻ (--no-tags)"
+
+msgid "number of submodules fetched in parallel"
+msgstr "số lượng mô-đun-con được lấy đồng thời"
+
+msgid "modify the refspec to place all refs within refs/prefetch/"
+msgstr ""
+"sửa đặc tả đường dẫn cho các tham chiếu mọi chỗ có trong refs/prefetch/"
+
+msgid "prune remote-tracking branches no longer on remote"
+msgstr ""
+"cắt (prune) các nhánh 'remote-tracking' không còn tồn tại trên máy chủ nữa"
+
+msgid "prune local tags no longer on remote and clobber changed tags"
+msgstr ""
+"xoá (prune) các thẻ nội bộ không còn ở máy chủ và xóa các thẻ đã thay đổi"
+
+msgid "on-demand"
+msgstr "khi-cần"
+
+msgid "control recursive fetching of submodules"
+msgstr "điều khiển việc lấy về đệ quy trong các mô-đun-con"
+
+msgid "write fetched references to the FETCH_HEAD file"
+msgstr "ghi các tham chiếu lấy về vào tập tin FETCH_HEAD"
+
+msgid "keep downloaded pack"
+msgstr "giữ lại gói đã tải về"
+
+msgid "allow updating of HEAD ref"
+msgstr "cho phép cập nhật th.chiếu HEAD"
+
+msgid "deepen history of shallow clone"
+msgstr "làm sâu hơn lịch sử của bản sao"
+
+msgid "deepen history of shallow repository based on time"
+msgstr "làm sâu hơn lịch sử của kho bản sao shallow dựa trên thời gian"
+
+msgid "convert to a complete repository"
+msgstr "chuyển đổi hoàn toàn sang kho git"
+
+msgid "re-fetch without negotiating common commits"
+msgstr "re-fetch mà không dàn xếp các lần chuyển giao chung"
+
+msgid "prepend this to submodule path output"
+msgstr "soạn sẵn cái này cho kết xuất đường dẫn mô-đun-con"
+
+msgid ""
+"default for recursive fetching of submodules (lower priority than config "
+"files)"
+msgstr ""
+"mặc định cho việc lấy đệ quy các mô-đun-con (có mức ưu tiên thấp hơn các tập "
+"tin cấu hình config)"
+
+msgid "accept refs that update .git/shallow"
+msgstr "chấp nhận tham chiếu cập nhật .git/shallow"
+
+msgid "refmap"
+msgstr "refmap"
+
+msgid "specify fetch refmap"
+msgstr "chỉ ra refmap cần lấy về"
+
+msgid "report that we have only objects reachable from this object"
+msgstr "báo rằng ta chỉ có các đối tượng tiếp cận được từ đối tượng này"
+
+msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
+msgstr ""
+"không lấy về một packfile; thay vào đó, hãy in tổ tiên của đỉnh đàm phán"
+
+msgid "run 'maintenance --auto' after fetching"
+msgstr "chạy 'maintenance --auto' sau khi lấy về"
+
+msgid "check for forced-updates on all updated branches"
+msgstr "kiểm cho các-cập-nhật-bắt-buộc trên mọi nhánh đã cập nhật"
+
+msgid "write the commit-graph after fetching"
+msgstr "ghi ra đồ thị các lần chuyển giao sau khi lấy về"
+
+msgid "accept refspecs from stdin"
+msgstr "chấp nhận tham chiếu từ stdin"
+
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only cần một hay nhiều --negotiation-tip=* hơn"
+
+msgid "negative depth in --deepen is not supported"
+msgstr "mức sâu là số âm trong --deepen là không được hỗ trợ"
+
+msgid "--unshallow on a complete repository does not make sense"
+msgstr "--unshallow trên kho hoàn chỉnh là không hợp lý"
+
+#, c-format
+msgid "failed to fetch bundles from '%s'"
+msgstr "gặp lỗi khi lấy về bundle từ '%s'"
+
+msgid "fetch --all does not take a repository argument"
+msgstr "lệnh lấy về \"fetch --all\" không lấy đối số kho chứa"
+
+msgid "fetch --all does not make sense with refspecs"
+msgstr "lệnh lấy về \"fetch --all\" không hợp lý với refspecs"
+
+#, c-format
+msgid "no such remote or remote group: %s"
+msgstr "không có nhóm máy chủ hay máy chủ như thế: %s"
 
 msgid "fetching a group and specifying refspecs does not make sense"
 msgstr "việc lấy về một nhóm và chỉ định refspecs là không hợp lý"
@@ -5942,16 +6035,16 @@ msgstr ""
 "tin>]"
 
 msgid "populate log with at most <n> entries from shortlog"
-msgstr "gắn nhật ký với ít nhất <n> mục từ lệnh “shortlog”"
+msgstr "gắn nhật ký với ít nhất <n> mục từ lệnh 'shortlog'"
 
 msgid "alias for --log (deprecated)"
-msgstr "bí danh cho --log (không được dùng)"
+msgstr "bí danh cho --log (đã lạc hậu)"
 
 msgid "text"
 msgstr "văn bản"
 
 msgid "use <text> as start of message"
-msgstr "dùng <văn bản thường> để bắt đầu ghi chú"
+msgstr "dùng <văn bản> để bắt đầu ghi chú"
 
 msgid "use <name> instead of the real target branch"
 msgstr "dùng <tên> thay cho nhánh đích thật"
@@ -5976,16 +6069,16 @@ msgstr ""
 "chuyển-giao>]]"
 
 msgid "quote placeholders suitably for shells"
-msgstr "trích dẫn để phù hợp cho hệ vỏ (shell)"
+msgstr "trích dẫn dạng phù hợp cho shell"
 
 msgid "quote placeholders suitably for perl"
-msgstr "trích dẫn để phù hợp cho perl"
+msgstr "trích dẫn dạng phù hợp cho perl"
 
 msgid "quote placeholders suitably for python"
-msgstr "trích dẫn để phù hợp cho python"
+msgstr "trích dẫn dạng phù hợp cho python"
 
 msgid "quote placeholders suitably for Tcl"
-msgstr "trích dẫn để phù hợp cho Tcl"
+msgstr "trích dẫn dạng phù hợp cho Tcl"
 
 msgid "show only <n> matched refs"
 msgstr "hiển thị chỉ <n> tham chiếu khớp"
@@ -6008,8 +6101,17 @@ msgstr "chỉ hiển thị những tham chiếu mà nó chứa lần chuyển gi
 msgid "print only refs which don't contain the commit"
 msgstr "chỉ hiển thị những tham chiếu mà nó không chứa lần chuyển giao"
 
-msgid "git for-each-repo --config=<config> <command-args>"
-msgstr "git for-each-repo --config=<config> <command-args>"
+msgid "read reference patterns from stdin"
+msgstr "đọc các mẫu tham chiếu từ stdin"
+
+msgid "also include HEAD ref and pseudorefs"
+msgstr "bao gồm tham chiếu HEAD và giả tham chiếu"
+
+msgid "unknown arguments supplied with --stdin"
+msgstr "đối số không rõ được chỉ định cùng với --stdin"
+
+msgid "git for-each-repo --config=<config> [--] <arguments>"
+msgstr "git for-each-repo --config=<tùy chọn> [--] <đối số>"
 
 msgid "config"
 msgstr "config"
@@ -6020,6 +6122,10 @@ msgstr "khóa cấu hình lưu trữ danh sách đường dẫn kho lưu trữ"
 msgid "missing --config=<config>"
 msgstr "thiếu --config=<config>"
 
+#, c-format
+msgid "got bad config --config=%s"
+msgstr "cấu hình sai --config=%s"
+
 msgid "unknown"
 msgstr "không hiểu"
 
@@ -6068,11 +6174,11 @@ msgstr "không thể tạo lost-found"
 
 #, c-format
 msgid "could not write '%s'"
-msgstr "không thể ghi “%s”"
+msgstr "không thể ghi '%s'"
 
 #, c-format
 msgid "could not finish '%s'"
-msgstr "không thể hoàn thành “%s”"
+msgstr "không thể hoàn thành '%s'"
 
 #, c-format
 msgid "Checking %s"
@@ -6087,7 +6193,7 @@ msgid "Checking %s %s"
 msgstr "Đang kiểm tra %s %s"
 
 msgid "broken links"
-msgstr "các liên kết bị gẫy"
+msgstr "liên kết hỏng"
 
 #, c-format
 msgid "root %s"
@@ -6107,7 +6213,7 @@ msgstr "%s: mục reflog không hợp lệ %s"
 
 #, c-format
 msgid "Checking reflog %s->%s"
-msgstr "Đang kiểm tra việc đổi tên của “%s” thành “%s”"
+msgstr "Đang kiểm tra việc đổi tên của '%s' thành '%s'"
 
 #, c-format
 msgid "%s: invalid sha1 pointer %s"
@@ -6130,11 +6236,11 @@ msgstr "%s: thiếu đối tượng hoặc hỏng: %s"
 
 #, c-format
 msgid "%s: object is of unknown type '%s': %s"
-msgstr "%s: đối tượng có kiểu chưa biết “%s”: %s"
+msgstr "%s: đối tượng có kiểu chưa biết '%s': %s"
 
 #, c-format
 msgid "%s: object could not be parsed: %s"
-msgstr "%s: không thể phân tích cú đối tượng: %s"
+msgstr "%s: không thể đọc cú đối tượng: %s"
 
 #, c-format
 msgid "bad sha1 file: %s"
@@ -6166,36 +6272,57 @@ msgstr "%s: HEAD đã tách rời không chỉ vào đâu cả"
 msgid "notice: %s points to an unborn branch (%s)"
 msgstr "chú ý: %s chỉ đến một nhánh chưa sinh (%s)"
 
-msgid "Checking cache tree"
-msgstr "Đang kiểm tra cây nhớ tạm"
+#, c-format
+msgid "Checking cache tree of %s"
+msgstr "Đang kiểm tra cây nhớ tạm của %s"
 
 #, c-format
-msgid "%s: invalid sha1 pointer in cache-tree"
-msgstr "%s: con trỏ sha1 không hợp lệ trong cache-tree"
+msgid "%s: invalid sha1 pointer in cache-tree of %s"
+msgstr "%s: con trỏ sha1 không hợp lệ trong cây nhớ tạm của %s"
 
 msgid "non-tree in cache-tree"
 msgstr "non-tree trong cache-tree"
 
-msgid "git fsck [<options>] [<object>...]"
-msgstr "git fsck [<các tùy chọn>] [<đối-tượng>…]"
+#, c-format
+msgid "%s: invalid sha1 pointer in resolve-undo of %s"
+msgstr "%s: con trỏ sha1 không hợp lệ trong resolve-undo của %s"
+
+#, c-format
+msgid "unable to load rev-index for pack '%s'"
+msgstr "không thể tải pack-index cho gói '%s'"
+
+#, c-format
+msgid "invalid rev-index for pack '%s'"
+msgstr "giá trị rev-index cho gói '%s' không hợp lệ"
+
+msgid ""
+"git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]\n"
+"         [--[no-]full] [--strict] [--verbose] [--lost-found]\n"
+"         [--[no-]dangling] [--[no-]progress] [--connectivity-only]\n"
+"         [--[no-]name-objects] [<object>...]"
+msgstr ""
+"git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]\n"
+"         [--[no-]full] [--strict] [--verbose] [--lost-found]\n"
+"         [--[no-]dangling] [--[no-]progress] [--connectivity-only]\n"
+"         [--[no-]name-objects] [<đối tượng>...]"
 
 msgid "show unreachable objects"
-msgstr "hiển thị các đối tượng không thể đọc được"
+msgstr "hiển thị các đối tượng không thể tới được"
 
 msgid "show dangling objects"
 msgstr "hiển thị các đối tượng không được quản lý"
 
 msgid "report tags"
-msgstr "báo cáo các thẻ"
+msgstr "liệt kê các thẻ"
 
 msgid "report root nodes"
-msgstr "báo cáo node gốc"
+msgstr "liệt kê node gốc"
 
 msgid "make index objects head nodes"
-msgstr "tạo “index objects head nodes”"
+msgstr "tạo 'index objects head nodes'"
 
 msgid "make reflogs head nodes (default)"
-msgstr "tạo “reflogs head nodes” (mặc định)"
+msgstr "tạo 'reflogs head nodes' (mặc định)"
 
 msgid "also consider packs and alternate objects"
 msgstr "cũng cân nhắc đến các đối tượng gói và thay thế"
@@ -6224,7 +6351,7 @@ msgstr "%s: thiếu đối tượng"
 
 #, c-format
 msgid "invalid parameter: expected sha1, got '%s'"
-msgstr "tham số không hợp lệ: cần sha1, nhưng lại nhận được “%s”"
+msgstr "tham số không hợp lệ: cần sha1, nhưng lại có '%s'"
 
 msgid "git fsmonitor--daemon start [<options>]"
 msgstr "git fsmonitor--daemon start [<các tùy chọn>]"
@@ -6232,15 +6359,9 @@ msgstr "git fsmonitor--daemon start [<các tùy chọn>]"
 msgid "git fsmonitor--daemon run [<options>]"
 msgstr "git fsmonitor--daemon run [<các tùy chọn>]"
 
-msgid "git fsmonitor--daemon stop"
-msgstr "git fsmonitor--daemon stop"
-
-msgid "git fsmonitor--daemon status"
-msgstr "git fsmonitor--daemon status"
-
 #, c-format
 msgid "value of '%s' out of range: %d"
-msgstr "siá trị '%s' ngoài phạm vi cho phép: %d"
+msgstr "giá trị '%s' ngoài phạm vi cho phép: %d"
 
 #, c-format
 msgid "value of '%s' not bool or int: %d"
@@ -6256,7 +6377,7 @@ msgstr "fsmonitor-daemon hiện không theo dõi '%s'\n"
 
 #, c-format
 msgid "could not create fsmonitor cookie '%s'"
-msgstr "không thể tạo fsmonitor cookie “%s”"
+msgstr "không thể tạo fsmonitor cookie '%s'"
 
 #, c-format
 msgid "fsmonitor: cookie_result '%d' != SEEN"
@@ -6264,24 +6385,23 @@ msgstr "fsmonitor: cookie_result '%d' != SEEN"
 
 #, c-format
 msgid "could not start IPC thread pool on '%s'"
-msgstr "không thể khởi chạy bể tiến trình IPC trêm “%s”"
+msgstr "không thể khởi chạy pool tiến trình IPC trên '%s'"
 
 msgid "could not start fsmonitor listener thread"
-msgstr "không thể lấy thông tin thống kê về tuyến trình lắng nghe fsmonitor"
+msgstr "không thể khởi chạy fsmonitor listener thread"
 
 msgid "could not start fsmonitor health thread"
-msgstr ""
-"không thể lấy thông tin thống kê về tuyến trình theo dõi sức khỏe fsmonitor"
+msgstr "không thể khởi chạy fsmonitor health thread"
 
 msgid "could not initialize listener thread"
-msgstr "không thể khởi tạo tuyến trình lắng nghe"
+msgstr "không thể khởi tạo listener thread"
 
 msgid "could not initialize health thread"
-msgstr "không thể khởi tạo tuyến trình sức "
+msgstr "không thể khởi tạo health thread"
 
 #, c-format
 msgid "could not cd home '%s'"
-msgstr "không thể chuyển đến thư mục cá nhân “%s”"
+msgstr "không thể cd home '%s'"
 
 #, c-format
 msgid "fsmonitor--daemon is already running '%s'"
@@ -6293,7 +6413,7 @@ msgstr "chạy fsmonitor-daemon trong '%s'\n"
 
 #, c-format
 msgid "starting fsmonitor-daemon in '%s'\n"
-msgstr "đang khởi chạy fsmonitor-daemon trong “%s”\n"
+msgstr "đang khởi chạy fsmonitor-daemon trong '%s'\n"
 
 msgid "daemon failed to start"
 msgstr "gặp lỗi khi khởi chạy dịch vụ chạy ngầm"
@@ -6329,15 +6449,15 @@ msgstr "git gc [<các tùy chọn>]"
 
 #, c-format
 msgid "Failed to fstat %s: %s"
-msgstr "Gặp lỗi khi lấy thông tin thống kê về tập tin %s: %s"
+msgstr "Gặp lỗi khi fstat %s: %s"
 
 #, c-format
 msgid "failed to parse '%s' value '%s'"
-msgstr "gặp lỗi khi phân tích “%s” giá trị “%s”"
+msgstr "gặp lỗi khi đọc '%s' giá trị '%s'"
 
 #, c-format
 msgid "cannot stat '%s'"
-msgstr "không thể lấy thông tin thống kê về “%s”"
+msgstr "không thể stat '%s'"
 
 #, c-format
 msgid ""
@@ -6359,6 +6479,9 @@ msgstr "xóa bỏ các đối tượng không được tham chiếu"
 msgid "pack unreferenced objects separately"
 msgstr "đóng gói riêng các đối tượng không được tham chiếu"
 
+msgid "with --cruft, limit the size of new cruft packs"
+msgstr "với tuỳ chọn --cruft, giới hạn kích thước pack cruft mới"
+
 msgid "be more thorough (increased runtime)"
 msgstr "cẩn thận hơn nữa (tăng thời gian chạy)"
 
@@ -6373,11 +6496,11 @@ msgstr "đóng gói lại tất cả các gói khác ngoại trừ gói lớn nh
 
 #, c-format
 msgid "failed to parse gc.logExpiry value %s"
-msgstr "gặp lỗi khi phân tích giá trị gc.logExpiry %s"
+msgstr "gặp lỗi khi đọc giá trị gc.logExpiry %s"
 
 #, c-format
 msgid "failed to parse prune expiry value %s"
-msgstr "gặp lỗi khi phân tích giá trị prune %s"
+msgstr "gặp lỗi khi đọc giá trị prune %s"
 
 #, c-format
 msgid "Auto packing the repository in background for optimum performance.\n"
@@ -6397,13 +6520,13 @@ msgstr "Xem \"git help gc\" để có hướng dẫn cụ thể về cách dọn
 msgid ""
 "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
 msgstr ""
-"gc đang được thực hiện trên máy “%s” pid %<PRIuMAX> (dùng --force nếu không "
+"gc đang được thực hiện trên máy '%s' pid %<PRIuMAX> (dùng --force nếu không "
 "phải thế)"
 
 msgid ""
 "There are too many unreachable loose objects; run 'git prune' to remove them."
 msgstr ""
-"Có quá nhiều đối tượng tự do không được dùng đến; hãy chạy lệnh “git prune” "
+"Có quá nhiều đối tượng tự do không được dùng đến; hãy chạy lệnh 'git prune' "
 "để xóa bỏ chúng đi."
 
 msgid ""
@@ -6425,19 +6548,19 @@ msgid "failed to prefetch remotes"
 msgstr "gặp lỗi khi tải trước các máy chủ"
 
 msgid "failed to start 'git pack-objects' process"
-msgstr "gặp lỗi khi lấy thông tin thống kê về tiến trình “git pack-objects”"
+msgstr "gặp lỗi khi khởi chạy tiến trình 'git pack-objects'"
 
 msgid "failed to finish 'git pack-objects' process"
-msgstr "gặp lỗi khi hoàn tất tiến trình “git pack-objects”"
+msgstr "gặp lỗi khi hoàn tất tiến trình 'git pack-objects'"
 
 msgid "failed to write multi-pack-index"
 msgstr "gặp lỗi khi ghi multi-pack-index"
 
 msgid "'git multi-pack-index expire' failed"
-msgstr "gặp lỗi khi chạy “git multi-pack-index expire”"
+msgstr "gặp lỗi khi chạy 'git multi-pack-index expire'"
 
 msgid "'git multi-pack-index repack' failed"
-msgstr "gặp lỗi khi chạy “git multi-pack-index repack”"
+msgstr "gặp lỗi khi chạy 'git multi-pack-index repack'"
 
 msgid ""
 "skipping incremental-repack task because core.multiPackIndex is disabled"
@@ -6445,19 +6568,19 @@ msgstr "bỏ qua tác vụ incremental-repack vì core.multiPackIndex bị vô h
 
 #, c-format
 msgid "lock file '%s' exists, skipping maintenance"
-msgstr "đã có khóa của tập tin “%s”, bỏ qua bảo trì"
+msgstr "đã có khóa của tập tin '%s', bỏ qua bảo trì"
 
 #, c-format
 msgid "task '%s' failed"
-msgstr "gặp lỗi khi thực hiện nhiệm vụ “%s”"
+msgstr "gặp lỗi khi thực hiện nhiệm vụ '%s'"
 
 #, c-format
 msgid "'%s' is not a valid task"
-msgstr "“%s” không phải một nhiệm vụ hợp lệ"
+msgstr "'%s' không phải một nhiệm vụ hợp lệ"
 
 #, c-format
 msgid "task '%s' cannot be selected multiple times"
-msgstr "nhiệm vụ “%s” không được chọn nhiều lần"
+msgstr "nhiệm vụ '%s' không được chọn nhiều lần"
 
 msgid "run tasks based on the state of the repository"
 msgstr "chạy nhiệm vụ dựa trên trạng thái của kho chứa"
@@ -6469,7 +6592,7 @@ msgid "run tasks based on frequency"
 msgstr "chạy nhiệm vụ dựa trên tần suất"
 
 msgid "do not report progress or other information over stderr"
-msgstr "đừng báo cáo diễn tiến hay các thông tin khác ra đầu lỗi tiêu chuẩn"
+msgstr "đừng báo cáo tiến độ hay các thông tin khác ra stderr"
 
 msgid "task"
 msgstr "tác vụ"
@@ -6480,12 +6603,24 @@ msgstr "chạy một nhiệm vụ cụ thể"
 msgid "use at most one of --auto and --schedule=<frequency>"
 msgstr "dùng nhiều nhất là một trong --auto và --schedule=<frequency>"
 
-msgid "failed to run 'git config'"
-msgstr "gặp lỗi khi chạy “git config”"
+#, c-format
+msgid "unable to add '%s' value of '%s'"
+msgstr "không thể thêm giá trị '%s' của '%s'"
+
+msgid "return success even if repository was not registered"
+msgstr "trả về thành công kể cả khi kho chứa chưa được ghi nhận"
+
+#, c-format
+msgid "unable to unset '%s' value of '%s'"
+msgstr "không thể bỏ đặt giá trị '%s' của '%s'"
+
+#, c-format
+msgid "repository '%s' is not registered"
+msgstr "kho chứa '%s' chưa tồn tại"
 
 #, c-format
 msgid "failed to expand path '%s'"
-msgstr "gặp lỗi khi khai triển đường dẫn “%s”"
+msgstr "gặp lỗi khi khai triển đường dẫn '%s'"
 
 msgid "failed to start launchctl"
 msgstr "gặp lỗi khi khởi chạy launchctl"
@@ -6502,38 +6637,41 @@ msgid "failed to create temp xml file"
 msgstr "gặp lỗi khi tạo tập tin xml tạm thời"
 
 msgid "failed to start schtasks"
-msgstr "gặp lỗi khi lấy thông tin thống kê về schtasks"
+msgstr "gặp lỗi khi khởi chạy schtasks"
 
 msgid "failed to run 'crontab -l'; your system might not support 'cron'"
 msgstr ""
-"gặp lỗi khi chạy “crontab -l”; hệ thống của bạn có thể không hỗ trợ “cron”"
-
-msgid "failed to run 'crontab'; your system might not support 'cron'"
-msgstr "gặp lỗi khi chạy “crontab”; hiển thị của bạn có lẽ không hỗ trợ “cron”"
+"gặp lỗi khi chạy 'crontab -l'; hệ thống của bạn có thể không hỗ trợ 'cron'"
 
-msgid "failed to open stdin of 'crontab'"
-msgstr "gặp lỗi khi mở đầu vào tiêu chuẩn của “crontab”"
+msgid "failed to create crontab temporary file"
+msgstr "không thể tạo tập tin tạm thời crontab"
 
-msgid "'crontab' died"
-msgstr "“crontab” đã chết"
+msgid "failed to open temporary file"
+msgstr "không thể mở tập tin tạm thời"
 
-msgid "failed to start systemctl"
-msgstr "gặp lỗi khi khởi chạy systemctl"
+msgid "failed to run 'crontab'; your system might not support 'cron'"
+msgstr "gặp lỗi khi chạy 'crontab'; hệ thống của bạn có lẽ không hỗ trợ 'cron'"
 
-msgid "failed to run systemctl"
-msgstr "gặp lỗi khi chạy systemctl"
+msgid "'crontab' died"
+msgstr "'crontab' đã chết"
 
 #, c-format
 msgid "failed to delete '%s'"
-msgstr "gặp lỗi khi xóa “%s”"
+msgstr "gặp lỗi khi xóa '%s'"
 
 #, c-format
 msgid "failed to flush '%s'"
-msgstr "gặp lỗi khi đẩy dữ liệu “%s” lên đĩa"
+msgstr "gặp lỗi khi đẩy dữ liệu '%s' lên đĩa"
+
+msgid "failed to start systemctl"
+msgstr "gặp lỗi khi khởi chạy systemctl"
+
+msgid "failed to run systemctl"
+msgstr "gặp lỗi khi chạy systemctl"
 
 #, c-format
 msgid "unrecognized --scheduler argument '%s'"
-msgstr "đối số --scheduler không được thừa nhận “%s”"
+msgstr "đối số --scheduler không được thừa nhận '%s'"
 
 msgid "neither systemd timers nor crontab are available"
 msgstr "hoặc là bộ lập lịch systemd hoặc là crontab không sẵn có"
@@ -6554,18 +6692,17 @@ msgstr "bộ lên lịch"
 msgid "scheduler to trigger git maintenance run"
 msgstr "bộ lên lịch để kích hoạt chạy chương trình bảo trì git"
 
+msgid "failed to set up maintenance schedule"
+msgstr "gặp lỗi khi lên lịch bảo trì"
+
 msgid "failed to add repo to global config"
 msgstr "gặp lỗi khi thêm cấu hình toàn cục"
 
 msgid "git maintenance <subcommand> [<options>]"
 msgstr "git maintenance run <lệnh_con> [<các tùy chọn>]"
 
-#, c-format
-msgid "invalid subcommand: %s"
-msgstr "lện con không hợp lệ: %s"
-
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
-msgstr "git grep [<các tùy chọn>] [-e] <mẫu> [<rev>…] [[--] </đường/dẫn>…]"
+msgstr "git grep [<các tùy chọn>] [-e] <mẫu> [<rev>...] [[--] </đường/dẫn>...]"
 
 #, c-format
 msgid "grep: failed to create thread: %s"
@@ -6585,8 +6722,8 @@ msgid "no threads support, ignoring %s"
 msgstr "không hỗ trợ đa tuyến, bỏ qua %s"
 
 #, c-format
-msgid "unable to read tree (%s)"
-msgstr "không thể đọc cây (%s)"
+msgid "unable to read tree %s"
+msgstr "không thể đọc cây %s"
 
 #, c-format
 msgid "unable to grep from object of type %s"
@@ -6594,10 +6731,10 @@ msgstr "không thể thực hiện lệnh grep (lọc tìm) từ đối tượng
 
 #, c-format
 msgid "switch `%c' expects a numerical value"
-msgstr "chuyển đến “%c” cần một giá trị bằng số"
+msgstr "chuyển đến '%c' cần một giá trị bằng số"
 
 msgid "search in index instead of in the work tree"
-msgstr "tìm trong bảng mục lục thay vì trong cây làm việc"
+msgstr "tìm trong chỉ mục thay vì trong cây làm việc"
 
 msgid "find in contents not managed by git"
 msgstr "tìm trong nội dung không được quản lý bởi git"
@@ -6606,7 +6743,7 @@ msgid "search in both tracked and untracked files"
 msgstr "tìm kiếm các tập tin được và chưa được theo dõi dấu vết"
 
 msgid "ignore files specified via '.gitignore'"
-msgstr "các tập tin bị bỏ qua được chỉ định thông qua “.gitignore”"
+msgstr "các tập tin bị bỏ qua được chỉ định thông qua '.gitignore'"
 
 msgid "recursively search in each submodule"
 msgstr "tìm kiếm đệ quy trong từng mô-đun-con"
@@ -6627,16 +6764,16 @@ msgid "don't match patterns in binary files"
 msgstr "không khớp mẫu trong các tập tin nhị phân"
 
 msgid "process binary files with textconv filters"
-msgstr "xử lý tập tin nhị phân với các bộ lọc “textconv”"
+msgstr "xử lý tập tin nhị phân với các bộ lọc 'textconv'"
 
 msgid "search in subdirectories (default)"
 msgstr "tìm kiếm trong thư mục con (mặc định)"
 
-msgid "descend at most <depth> levels"
-msgstr "hạ xuống ít nhất là mức <sâu>"
+msgid "descend at most <n> levels"
+msgstr "hạ xuống tối đa <n> mức"
 
 msgid "use extended POSIX regular expressions"
-msgstr "dùng biểu thức chính qui POSIX có mở rộng"
+msgstr "dùng biểu thức chính quy POSIX có mở rộng"
 
 msgid "use basic POSIX regular expressions (default)"
 msgstr "sử dụng biểu thức chính quy kiểu POSIX (mặc định)"
@@ -6684,7 +6821,7 @@ msgid "highlight matches"
 msgstr "tô sáng phần khớp mẫu"
 
 msgid "print empty line between matches from different files"
-msgstr "hiển thị dòng trống giữa các lần khớp từ các tập tin khác biệt"
+msgstr "hiển thị dòng trống giữa các lần khớp từ các tập tin khác nhau"
 
 msgid "show filename only once above matches from same file"
 msgstr ""
@@ -6735,6 +6872,9 @@ msgstr "hiển thị các tập tin khớp trong trang giấy"
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "cho phép gọi grep(1) (bị bỏ qua bởi lần dịch này)"
 
+msgid "maximum number of results per file"
+msgstr "số lượng kết quả tối đa trên mỗi tập tin"
+
 msgid "no pattern given"
 msgstr "chưa chỉ ra mẫu"
 
@@ -6768,11 +6908,14 @@ msgid "both --cached and trees are given"
 msgstr "cả hai --cached và các cây phải được chỉ ra"
 
 msgid ""
-"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
-"[--] <file>..."
+"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]\n"
+"                [--stdin [--literally]] [--] <file>..."
 msgstr ""
-"git hash-object [-t <kiểu>] [-w] [--path=<tập-tin> | --no-filters] [--stdin] "
-"[--] <tập-tin>…"
+"git hash-object [-t <kiểu>] [-w] [--path=<tập-tin> | --no-filters]\n"
+"                [--stdin [--literally]] [--] <tập-tin>..."
+
+msgid "git hash-object [-t <type>] [-w] --stdin-paths [--no-filters]"
+msgstr "git hash-object [-t <kiểu>] [-w] --stdin-paths [--no-filters] "
 
 msgid "object type"
 msgstr "kiểu đối tượng"
@@ -6781,14 +6924,14 @@ msgid "write the object into the object database"
 msgstr "ghi đối tượng vào dữ liệu đối tượng"
 
 msgid "read the object from stdin"
-msgstr "đọc đối tượng từ đầu vào tiêu chuẩn stdin"
+msgstr "đọc đối tượng từ stdin"
 
 msgid "store file as is without filters"
 msgstr "lưu các tập tin mà nó không có các bộ lọc"
 
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
-msgstr "chỉ cần băm rác ngẫu nhiên để tạo một đối tượng hỏng để mà gỡ lỗi Git"
+msgstr "chỉ cần băm rác ngẫu nhiên để tạo một đối tượng hỏng để gỡ lỗi Git"
 
 msgid "process file as it were from this path"
 msgstr "xử lý tập tin như là nó đang ở thư mục này"
@@ -6820,49 +6963,55 @@ msgstr "hiển thị mô tả lệnh"
 msgid "print list of useful guides"
 msgstr "hiển thị danh sách các hướng dẫn hữu dụng"
 
+msgid "print list of user-facing repository, command and file interfaces"
+msgstr "hiển thị các giao diện cho người dùng"
+
+msgid "print list of file formats, protocols and other developer interfaces"
+msgstr "hiển thị các giao diện cho lập trình viên"
+
 msgid "print all configuration variable names"
 msgstr "in ra tất cả các tên biến cấu hình"
 
-msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<lệnh>]"
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<lệnh>|<tài liệu>]"
 
 #, c-format
 msgid "unrecognized help format '%s'"
-msgstr "không nhận ra định dạng trợ giúp “%s”"
+msgstr "không nhận ra định dạng trợ giúp '%s'"
 
 msgid "Failed to start emacsclient."
 msgstr "Gặp lỗi khi khởi chạy emacsclient."
 
 msgid "Failed to parse emacsclient version."
-msgstr "Gặp lỗi khi phân tích phiên bản emacsclient."
+msgstr "Gặp lỗi khi đọc phiên bản emacsclient."
 
 #, c-format
 msgid "emacsclient version '%d' too old (< 22)."
-msgstr "phiên bản của emacsclient “%d” quá cũ (< 22)."
+msgstr "phiên bản của emacsclient '%d' quá cũ (< 22)."
 
 #, c-format
 msgid "failed to exec '%s'"
-msgstr "gặp lỗi khi thực thi “%s”"
+msgstr "gặp lỗi khi thực thi '%s'"
 
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
 "Please consider using 'man.<tool>.cmd' instead."
 msgstr ""
-"“%s”: đường dẫn không hỗ trợ bộ trình chiếu man.\n"
-"Hãy cân nhắc đến việc sử dụng “man.<tool>.cmd” để thay thế."
+"'%s': đường dẫn không hỗ trợ bộ trình chiếu man.\n"
+"Hãy cân nhắc đến việc sử dụng 'man.<tool>.cmd' để thay thế."
 
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
 "Please consider using 'man.<tool>.path' instead."
 msgstr ""
-"“%s”: cmd (lệnh) hỗ trợ bộ trình chiếu man.\n"
-"Hãy cân nhắc đến việc sử dụng “man.<tool>.path” để thay thế."
+"'%s': cmd (lệnh) hỗ trợ bộ trình chiếu man.\n"
+"Hãy cân nhắc đến việc sử dụng 'man.<tool>.path' để thay thế."
 
 #, c-format
 msgid "'%s': unknown man viewer."
-msgstr "“%s”: không rõ chương trình xem man."
+msgstr "'%s': không rõ chương trình xem man."
 
 msgid "no man viewer handled the request"
 msgstr "không có trình xem trợ giúp dạng manpage tiếp hợp với yêu cầu"
@@ -6872,7 +7021,7 @@ msgstr "không có trình xem trợ giúp dạng info tiếp hợp với yêu c
 
 #, c-format
 msgid "'%s' is aliased to '%s'"
-msgstr "“%s” được đặt bí danh thành “%s”"
+msgstr "'%s' được đặt bí danh thành '%s'"
 
 #, c-format
 msgid "bad alias.%s string: %s"
@@ -6893,13 +7042,20 @@ msgid "usage: %s%s"
 msgstr "cách dùng: %s%s"
 
 msgid "'git help config' for more information"
-msgstr "Chạy lệnh “git help config” để có thêm thông tin"
+msgstr "Chạy lệnh 'git help config' để có thêm thông tin"
 
-msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
-msgstr "git hook run [--ignore-missing] <tên-móc> [-- <các tham số cho móc>]"
+msgid ""
+"git hook run [--ignore-missing] [--to-stdin=<path>] <hook-name> [-- <hook-"
+"args>]"
+msgstr ""
+"git hook run [--ignore-missing] [--to-stdin=</đường/dẫn/>] <tên-móc> [-- "
+"<các tham số cho móc>]"
 
 msgid "silently ignore missing requested <hook-name>"
-msgstr "bỏ qua âm thầm các <hook-name> đã yêu cầu còn thiếu"
+msgstr "âm thầm bỏ qua các <hook-name> đã yêu cầu còn thiếu"
+
+msgid "file to read into hooks' stdin"
+msgstr "tập tin để đưa vào stdin của hook"
 
 #, c-format
 msgid "object type mismatch at %s"
@@ -6911,7 +7067,7 @@ msgstr "không thể lấy về đối tượng cần %s"
 
 #, c-format
 msgid "object %s: expected type %s, found %s"
-msgstr "đối tượng %s: cần kiểu %s nhưng lại nhận được %s"
+msgstr "đối tượng %s: cần kiểu %s nhưng lại  %s"
 
 #, c-format
 msgid "cannot fill %d byte"
@@ -6947,13 +7103,13 @@ msgstr "gói có đối tượng sai tại khoảng bù %<PRIuMAX>: %s"
 
 #, c-format
 msgid "inflate returned %d"
-msgstr "xả nén trả về %d"
+msgstr "giải nén trả về %d"
 
 msgid "offset value overflow for delta base object"
 msgstr "tràn giá trị khoảng bù cho đối tượng delta cơ sở"
 
 msgid "delta base offset is out of bound"
-msgstr "khoảng bù cơ sở cho delta nằm ngoài phạm vi"
+msgstr "khoảng bù cơ sở cho delta nằm ngoài biên"
 
 #, c-format
 msgid "unknown object type %d"
@@ -6968,16 +7124,12 @@ msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
 msgstr[0] "tập tin gói bị kết thúc sớm, thiếu %<PRIuMAX> byte"
 
 msgid "serious inflate inconsistency"
-msgstr "sự mâu thuẫn xả nén nghiêm trọng"
+msgstr "sự mâu thuẫn giải nén nghiêm trọng"
 
 #, c-format
 msgid "SHA1 COLLISION FOUND WITH %s !"
 msgstr "SỰ VA CHẠM SHA1 ĐàXẢY RA VỚI %s!"
 
-#, c-format
-msgid "unable to read %s"
-msgstr "không thể đọc %s"
-
 #, c-format
 msgid "cannot read existing object info %s"
 msgstr "không thể đọc thông tin đối tượng sẵn có %s"
@@ -7004,13 +7156,13 @@ msgid "Receiving objects"
 msgstr "Đang nhận về các đối tượng"
 
 msgid "Indexing objects"
-msgstr "Các đối tượng bảng mục lục"
+msgstr "Các đối tượng chỉ mục"
 
 msgid "pack is corrupted (SHA1 mismatch)"
 msgstr "gói bị sai hỏng (SHA1 không khớp)"
 
 msgid "cannot fstat packfile"
-msgstr "không thể lấy thông tin thống kê packfile"
+msgstr "không thể fstat packfile"
 
 msgid "pack has junk at the end"
 msgstr "pack có phần thừa ở cuối"
@@ -7035,7 +7187,7 @@ msgstr[0] "đầy đủ với %d đối tượng nội bộ"
 
 #, c-format
 msgid "Unexpected tail checksum for %s (disk corruption?)"
-msgstr "Gặp tổng kiểm tra tail không cần cho %s (đĩa hỏng?)"
+msgstr "Gặp tổng kiểm tra tail bất thường cho %s (đĩa hỏng?)"
 
 #, c-format
 msgid "pack has %d unresolved delta"
@@ -7044,7 +7196,7 @@ msgstr[0] "gói có %d delta chưa được giải quyết"
 
 #, c-format
 msgid "unable to deflate appended object (%d)"
-msgstr "không thể xả nén đối tượng nối thêm (%d)"
+msgstr "không thể giải nén đối tượng nối thêm (%d)"
 
 #, c-format
 msgid "local object %s is corrupt"
@@ -7052,19 +7204,19 @@ msgstr "đối tượng nội bộ %s bị hỏng"
 
 #, c-format
 msgid "packfile name '%s' does not end with '.%s'"
-msgstr "tên tập tin tập tin gói “%s” không được kết thúc “.%s”"
+msgstr "tên tập tin tập tin gói '%s' không được kết thúc '.%s'"
 
 #, c-format
 msgid "cannot write %s file '%s'"
-msgstr "không thể ghi %s tập tin “%s”"
+msgstr "không thể ghi %s tập tin '%s'"
 
 #, c-format
 msgid "cannot close written %s file '%s'"
-msgstr "không thể đóng tập tin được ghi %s “%s”"
+msgstr "không thể đóng tập tin được ghi %s '%s'"
 
 #, c-format
 msgid "unable to rename temporary '*.%s' file to '%s'"
-msgstr "không thể đổi tên tập tin tạm thời “*.%s” thành “%s”"
+msgstr "không thể đổi tên tập tin tạm thời '*.%s' thành '%s'"
 
 msgid "error while closing pack file"
 msgstr "gặp lỗi trong khi đóng tập tin gói"
@@ -7075,11 +7227,11 @@ msgstr "sai pack.indexVersion=%<PRIu32>"
 
 #, c-format
 msgid "Cannot open existing pack file '%s'"
-msgstr "Không thể mở tập tin gói đã sẵn có “%s”"
+msgstr "Không thể mở tập tin gói đã sẵn có '%s'"
 
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
-msgstr "Không thể mở tập tin idx của gói cho “%s”"
+msgstr "Không thể mở tập tin idx của gói cho '%s'"
 
 #, c-format
 msgid "non delta: %d object"
@@ -7089,10 +7241,10 @@ msgstr[0] "không delta: %d đối tượng"
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
-msgstr[0] "chiều dài xích = %d: %lu đối tượng"
+msgstr[0] "chiều dài chuỗi = %d: %lu đối tượng"
 
 msgid "Cannot come back to cwd"
-msgstr "Không thể quay lại cwd"
+msgstr "Không thể quay lại thư mục hiện hành"
 
 #, c-format
 msgid "bad %s"
@@ -7100,7 +7252,7 @@ msgstr "%s sai"
 
 #, c-format
 msgid "unknown hash algorithm '%s'"
-msgstr "không hiểu thuật toán băm dữ liệu “%s”"
+msgstr "không hiểu thuật toán băm dữ liệu '%s'"
 
 msgid "--stdin requires a git repository"
 msgstr "--stdin cần một kho git"
@@ -7111,83 +7263,18 @@ msgstr "dùng tùy chọn --verify mà không đưa ra tên packfile"
 msgid "fsck error in pack objects"
 msgstr "lỗi fsck trong các đối tượng gói"
 
-#, c-format
-msgid "cannot stat template '%s'"
-msgstr "không thể lấy thông tin thống kê về mẫu “%s”"
-
-#, c-format
-msgid "cannot opendir '%s'"
-msgstr "không thể opendir() “%s”"
-
-#, c-format
-msgid "cannot readlink '%s'"
-msgstr "không thể readlink “%s”"
-
-#, c-format
-msgid "cannot symlink '%s' '%s'"
-msgstr "không thể tạo liên kết mềm (symlink) “%s” “%s”"
-
-#, c-format
-msgid "cannot copy '%s' to '%s'"
-msgstr "không thể sao chép “%s” sang “%s”"
-
-#, c-format
-msgid "ignoring template %s"
-msgstr "đang lờ đi mẫu “%s”"
-
-#, c-format
-msgid "templates not found in %s"
-msgstr "các mẫu không được tìm thấy trong %s"
-
-#, c-format
-msgid "not copying templates from '%s': %s"
-msgstr "không sao chép các mẫu từ “%s”: %s"
-
-#, c-format
-msgid "invalid initial branch name: '%s'"
-msgstr "tên nhánh khởi tạo không hợp lệ: “%s”"
-
-#, c-format
-msgid "unable to handle file type %d"
-msgstr "không thể xử lý (handle) tập tin kiểu %d"
-
-#, c-format
-msgid "unable to move %s to %s"
-msgstr "không di chuyển được %s vào %s"
-
-msgid "attempt to reinitialize repository with different hash"
-msgstr "cố để khởi tạo lại một kho với kiểu băm dữ liệu khác"
-
-#, c-format
-msgid "%s already exists"
-msgstr "%s đã có từ trước rồi"
-
-#, c-format
-msgid "re-init: ignored --initial-branch=%s"
-msgstr "re-init: --initial-branch=%s bị bỏ qua"
-
-#, c-format
-msgid "Reinitialized existing shared Git repository in %s%s\n"
-msgstr "Đã khởi tạo lại kho Git chia sẻ sẵn có trong %s%s\n"
-
-#, c-format
-msgid "Reinitialized existing Git repository in %s%s\n"
-msgstr "Đã khởi tạo lại kho Git sẵn có trong %s%s\n"
-
-#, c-format
-msgid "Initialized empty shared Git repository in %s%s\n"
-msgstr "Đã khởi tạo lại kho Git chia sẻ trống rỗng sẵn có trong %s%s\n"
-
-#, c-format
-msgid "Initialized empty Git repository in %s%s\n"
-msgstr "Đã khởi tạo lại kho Git trống rỗng sẵn có trong %s%s\n"
-
 msgid ""
-"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--"
-"shared[=<permissions>]] [<directory>]"
+"git init [-q | --quiet] [--bare] [--template=<template-directory>]\n"
+"         [--separate-git-dir <git-dir>] [--object-format=<format>]\n"
+"         [--ref-format=<format>]\n"
+"         [-b <branch-name> | --initial-branch=<branch-name>]\n"
+"         [--shared[=<permissions>]] [<directory>]"
 msgstr ""
-"git init [-q | --quiet] [--bare] [--template=<thư-mục-tạm>] [--shared[=<các-"
-"quyền>]] [thư-mục]"
+"git init [-q | --quiet] [--bare] [--template=<thư mục mẫu>]\n"
+"         [--separate-git-dir <thư mục git>] [--object-format=<định dạng>]\n"
+"         [--ref-format=<định dạng>]\n"
+"         [-b <tên nhánh> | --initial-branch=<tên nhánh>]\n"
+"         [--shared[=<quyền hạn>]] [<thư mục>]"
 
 msgid "permissions"
 msgstr "các quyền"
@@ -7222,23 +7309,54 @@ msgstr ""
 
 #, c-format
 msgid "Cannot access work tree '%s'"
-msgstr "Không thể truy cập cây (tree) làm việc “%s”"
+msgstr "Không thể truy cập cây làm việc '%s'"
 
 msgid "--separate-git-dir incompatible with bare repository"
-msgstr "--separate-git-dir xung khắc với kho thuần"
+msgstr "--separate-git-dir không tương thích với kho bare"
 
 msgid ""
-"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
-"<token>[(=|:)<value>])...] [<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty]\n"
+"                       [(--trailer (<key>|<key-alias>)[(=|:)<value>])...]\n"
+"                       [--parse] [<file>...]"
 msgstr ""
-"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
-"<thẻ>[(=|:)<giá-trị>])…] [<tập-tin>…]"
+"git interpret-trailers [--in-place] [--trim-empty]\n"
+"                       [(--trailer (<key>|<key-alias>)[(=|:)<giá-trị>])...]\n"
+"                       [--parse] [<tập-tin>...]"
+
+#, c-format
+msgid "could not stat %s"
+msgstr "không thể stat %s"
+
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "\"%s\" không phải là tập tin bình thường"
+
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "tập tin %s người dùng không thể ghi được"
+
+msgid "could not open temporary file"
+msgstr "không thể tạo tập tin tạm thời"
+
+#, c-format
+msgid "could not read input file '%s'"
+msgstr "không đọc được tập tin đầu vào '%s'"
+
+msgid "could not read from stdin"
+msgstr "không thể đọc từ stdin"
+
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "không thể đổi tên tập tin tạm thời thành %s"
 
 msgid "edit files in place"
 msgstr "sửa các tập tin tại chỗ"
 
 msgid "trim empty trailers"
-msgstr "bộ dò vết cắt bỏ phần trống rỗng"
+msgstr "cắt bỏ phần trống thừa ở đuôi"
+
+msgid "placement"
+msgstr "vị trí"
 
 msgid "where to place the new trailer"
 msgstr "đặt phần đuôi mới ở đâu"
@@ -7252,20 +7370,20 @@ msgstr "thao tác khi thiếu phần đuôi"
 msgid "output only the trailers"
 msgstr "chỉ xuất phần đuôi"
 
-msgid "do not apply config rules"
-msgstr "đừng áp dụng các quy tắc cấu hình"
+msgid "do not apply trailer.* configuration variables"
+msgstr "không áp dụng các biến cấu hình trailer.*"
 
-msgid "join whitespace-continued values"
-msgstr "nối các giá trị khoảng-trắng-liên-tiếp"
+msgid "reformat multiline trailer values as single-line values"
+msgstr "định dạng lại giá trị đuôi thành giá trị trên một dòng"
 
-msgid "set parsing options"
-msgstr "đặt các tùy chọn phân tích cú pháp"
+msgid "alias for --only-trailers --only-input --unfold"
+msgstr "viết tắt cho --only-trailers --only-input --unfold"
 
-msgid "do not treat --- specially"
-msgstr "không coi --- là đặc biệt"
+msgid "do not treat \"---\" as the end of input"
+msgstr "không coi \"---\" là kết thúc đầu vào"
 
 msgid "trailer(s) to add"
-msgstr "bộ dò vết cần thêm"
+msgstr "phần đuôi cần thêm"
 
 msgid "--trailer with --only-input does not make sense"
 msgstr "--trailer cùng với --only-input không hợp lý"
@@ -7274,10 +7392,10 @@ msgid "no input file given for in-place editing"
 msgstr "không đưa ra tập tin đầu vào để sửa tại-chỗ"
 
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
-msgstr "git log [<các tùy chọn>] [<vùng-xem-xét>] [[--] </đường/dẫn>]"
+msgstr "git log [<các tùy chọn>] [<vùng-xem-xét>] [[--] </đường/dẫn>...]"
 
 msgid "git show [<options>] <object>..."
-msgstr "git show [<các tùy chọn>] <đối-tượng>"
+msgstr "git show [<các tùy chọn>] <đối-tượng>..."
 
 #, c-format
 msgid "invalid --decorate option: %s"
@@ -7289,8 +7407,8 @@ msgstr "chặn mọi kết xuất từ diff"
 msgid "show source"
 msgstr "hiển thị mã nguồn"
 
-msgid "use mail map file"
-msgstr "sử dụng tập tin ánh xạ thư"
+msgid "clear all previously-defined decoration filters"
+msgstr "xoá các bộ lọc decorate đã định nghĩa từ trước"
 
 msgid "only decorate refs that match <pattern>"
 msgstr "chỉ tô sáng các tham chiếu khớp với <mẫu>"
@@ -7299,21 +7417,21 @@ msgid "do not decorate refs that match <pattern>"
 msgstr "không tô sáng các tham chiếu khớp với <mẫu>"
 
 msgid "decorate options"
-msgstr "các tùy chọn trang trí"
+msgstr "các tùy chọn decorate"
 
 msgid ""
 "trace the evolution of line range <start>,<end> or function :<funcname> in "
 "<file>"
 msgstr ""
-"theo dõi sự tiến hóa của phạm vi <start><end> dòng, hoặc chức năng:"
-"<funcname> trong <file>"
+"theo vết sự tiến hóa của phạm vi dòng <start>,<end>, hoặc hàm :<tên hàm> "
+"trong <tập tin>"
 
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "đối số không được thừa nhận: %s"
 
 msgid "-L<range>:<file> cannot be used with pathspec"
-msgstr "-L<vùng>:<tập_tin> không thể được sử dụng với đặc tả đường dẫn"
+msgstr "-L<vùng>:<tập tin> không thể được sử dụng với đặc tả đường dẫn"
 
 #, c-format
 msgid "Final output: %d %s\n"
@@ -7343,7 +7461,7 @@ msgstr "format.headers không có giá trị cụ thể"
 
 #, c-format
 msgid "cannot open patch file %s"
-msgstr "không thể mở tập tin miếng vá: %s"
+msgstr "không thể mở tập tin bản vá: %s"
 
 msgid "need exactly one range"
 msgstr "cần chính xác một vùng"
@@ -7351,8 +7469,12 @@ msgstr "cần chính xác một vùng"
 msgid "not a range"
 msgstr "không phải là một vùng"
 
+#, c-format
+msgid "unable to read branch description file '%s'"
+msgstr "không thể đọc tập tin cấu hình nhánh '%s'"
+
 msgid "cover letter needs email format"
-msgstr "“cover letter” cần cho định dạng thư"
+msgstr "cover letter cần định dạng thư"
 
 msgid "failed to create cover-letter file"
 msgstr "gặp lỗi khi tạo các tập tin cover-letter"
@@ -7373,10 +7495,10 @@ msgstr "không hiểu lần chuyển giao %s"
 
 #, c-format
 msgid "failed to resolve '%s' as a valid ref"
-msgstr "gặp lỗi khi phân giải “%s” như là một tham chiếu hợp lệ"
+msgstr "gặp lỗi khi phân giải '%s' thành một tham chiếu hợp lệ"
 
 msgid "could not find exact merge base"
-msgstr "không tìm thấy nền hòa trộn chính xác"
+msgstr "không tìm thấy gốc hòa trộn chính xác"
 
 msgid ""
 "failed to get upstream, if you want to record base commit automatically,\n"
@@ -7389,7 +7511,7 @@ msgstr ""
 "\"--base=<base-commit-id>\" một cách thủ công"
 
 msgid "failed to find exact merge base"
-msgstr "gặp lỗi khi tìm nền hòa trộn chính xác"
+msgstr "gặp lỗi khi tìm gốc hòa trộn chính xác"
 
 msgid "base commit should be the ancestor of revision list"
 msgstr "lần chuyển giao nền không là tổ tiên của danh sách điểm xét duyệt"
@@ -7398,7 +7520,7 @@ msgid "base commit shouldn't be in revision list"
 msgstr "lần chuyển giao nền không được trong danh sách điểm xét duyệt"
 
 msgid "cannot get patch id"
-msgstr "không thể lấy mã miếng vá"
+msgstr "không thể lấy mã bản vá"
 
 msgid "failed to infer range-diff origin of current series"
 msgstr ""
@@ -7406,70 +7528,73 @@ msgstr ""
 
 #, c-format
 msgid "using '%s' as range-diff origin of current series"
-msgstr "dùng “%s” như là gốc range-diff của sê-ri hiện tại"
+msgstr "dùng '%s' làm gốc range-diff của sê-ri hiện tại"
 
 msgid "use [PATCH n/m] even with a single patch"
-msgstr "dùng [PATCH n/m] ngay cả với miếng vá đơn"
+msgstr "dùng [PATCH n/m] ngay cả với bản vá đơn"
 
 msgid "use [PATCH] even with multiple patches"
-msgstr "dùng [VÁ] ngay cả với các miếng vá phức tạp"
+msgstr "dùng [PATCH] ngay cả với các bản vá nhiều phần"
 
 msgid "print patches to standard out"
-msgstr "hiển thị miếng vá ra đầu ra chuẩn"
+msgstr "hiển thị bản vá ra stdout"
 
 msgid "generate a cover letter"
 msgstr "tạo bì thư"
 
 msgid "use simple number sequence for output file names"
-msgstr "sử dụng chỗi dãy số dạng đơn giản cho tên tập-tin xuất ra"
+msgstr "sử dụng chuỗi dãy số dạng đơn giản cho tên tập-tin xuất ra"
 
 msgid "sfx"
-msgstr "sfx"
+msgstr "hậu-tố"
 
 msgid "use <sfx> instead of '.patch'"
-msgstr "sử dụng <sfx> thay cho “.patch”"
+msgstr "sử dụng <hậu-tố> thay cho '.patch'"
 
 msgid "start numbering patches at <n> instead of 1"
-msgstr "bắt đầu đánh số miếng vá từ <n> thay vì 1"
+msgstr "bắt đầu đánh số bản vá từ <n> thay vì 1"
 
 msgid "reroll-count"
-msgstr "đếm reroll"
+msgstr "số-lần-chạy-lại"
 
 msgid "mark the series as Nth re-roll"
-msgstr "đánh dấu chuỗi nối tiếp dạng thứ-N re-roll"
+msgstr "đánh dấu chuỗi là lần chạy lại thứ N"
 
 msgid "max length of output filename"
 msgstr "chiều dài tên tập tin đầu ra tối đa"
 
 msgid "use [RFC PATCH] instead of [PATCH]"
-msgstr "dùng [VÁ RFC] thay cho [VÁ]"
+msgstr "dùng [RFC PATCH] thay cho [PATCH]"
 
 msgid "cover-from-description-mode"
 msgstr "cover-from-description-mode"
 
 msgid "generate parts of a cover letter based on a branch's description"
-msgstr "tạo ra các phần của một lá thư bao gồm dựa trên mô tả của nhánh"
+msgstr "tạo ra phần bìa thư dựa trên mô tả của nhánh"
+
+msgid "use branch description from file"
+msgstr "dùng mô tả nhánh từ tập tin"
 
 msgid "use [<prefix>] instead of [PATCH]"
-msgstr "dùng [<tiền-tố>] thay cho []"
+msgstr "dùng [<tiền-tố>] thay cho [PATCH]"
 
 msgid "store resulting files in <dir>"
-msgstr "lưu các tập tin kết quả trong <t.mục>"
+msgstr "lưu các tập tin kết quả trong <thư mục>"
 
 msgid "don't strip/add [PATCH]"
-msgstr "không strip/add [VÁ]"
+msgstr "không loại bỏ/thêm [PATCH]"
 
 msgid "don't output binary diffs"
-msgstr "không kết xuất diff (những khác biệt) nhị phân"
+msgstr "không kết xuất diff nhị phân"
 
 msgid "output all-zero hash in From header"
 msgstr "xuất mọi mã băm all-zero trong phần đầu From"
 
 msgid "don't include a patch matching a commit upstream"
-msgstr "không bao gồm miếng vá khớp với một lần chuyển giao thượng nguồn"
+msgstr "không bao gồm bản vá khớp với một lần chuyển giao thượng nguồn"
 
 msgid "show patch format instead of default (patch + stat)"
-msgstr "hiển thị định dạng miếng vá thay vì mặc định (miếng vá + thống kê)"
+msgstr "hiển thị định dạng bản vá thay vì mặc định (bản vá + thống kê)"
 
 msgid "Messaging"
 msgstr "Lời nhắn"
@@ -7490,11 +7615,10 @@ msgid "add Cc: header"
 msgstr "thêm Cc: đầu đề thư"
 
 msgid "ident"
-msgstr "thụt lề"
+msgstr "ident"
 
 msgid "set From address to <ident> (or committer ident if absent)"
-msgstr ""
-"đặt “Địa chỉ gửi” thành <thụ lề> (hoặc thụt lề người commit nếu bỏ quên)"
+msgstr "đặt 'Địa chỉ gửi' thành <ident> (hoặc người commit nếu bỏ quên)"
 
 msgid "message-id"
 msgstr "message-id"
@@ -7506,13 +7630,13 @@ msgid "boundary"
 msgstr "ranh giới"
 
 msgid "attach the patch"
-msgstr "đính kèm miếng vá"
+msgstr "đính kèm bản vá"
 
 msgid "inline the patch"
-msgstr "dùng miếng vá làm nội dung"
+msgstr "dùng bản vá làm nội dung"
 
 msgid "enable message threading, styles: shallow, deep"
-msgstr "cho phép luồng lời nhắn, kiểu: “shallow”, “deep”"
+msgstr "cho phép luồng lời nhắn, kiểu: 'shallow', 'deep'"
 
 msgid "signature"
 msgstr "chữ ký"
@@ -7524,28 +7648,31 @@ msgid "base-commit"
 msgstr "lần_chuyển_giao_nền"
 
 msgid "add prerequisite tree info to the patch series"
-msgstr "add trước hết đòi hỏi thông tin cây tới sê-ri miếng vá"
+msgstr "add trước hết đòi hỏi thông tin cây tới sê-ri bản vá"
 
 msgid "add a signature from a file"
 msgstr "thêm chữ ký từ một tập tin"
 
 msgid "don't print the patch filenames"
-msgstr "không hiển thị các tên tập tin của miếng vá"
+msgstr "không hiển thị các tên tập tin của bản vá"
 
 msgid "show progress while generating patches"
-msgstr "hiển thị bộ đo tiến triển trong khi tạo các miếng vá"
+msgstr "hiển thị bộ đo tiến triển trong khi tạo các bản vá"
 
 msgid "show changes against <rev> in cover letter or single patch"
 msgstr ""
-"hiển thị các thay đổi dựa trên <rev> trong các chữ bao bọc hoặc miếng vá đơn"
+"hiển thị các thay đổi dựa trên <rev> trong các chữ bao bọc hoặc bản vá đơn"
 
 msgid "show changes against <refspec> in cover letter or single patch"
 msgstr ""
-"hiển thị các thay đổi dựa trên <refspec> trong các chữ bao bọc hoặc miếng vá "
+"hiển thị các thay đổi dựa trên <refspec> trong các chữ bao bọc hoặc bản vá "
 "đơn"
 
 msgid "percentage by which creation is weighted"
-msgstr "tỷ lệ phần trăm theo cái tạo là weighted"
+msgstr "tỉ lệ phần trăm theo cái tạo là weighted"
+
+msgid "show in-body From: even if identical to the e-mail header"
+msgstr "hiện mục From: trong phần thân kể cả khi giống với phần tiêu đề e-mail"
 
 #, c-format
 msgid "invalid ident line: %s"
@@ -7565,7 +7692,7 @@ msgstr "--remerge-diff không hợp lý"
 
 #, c-format
 msgid "could not create directory '%s'"
-msgstr "không thể tạo thư mục “%s”"
+msgstr "không thể tạo thư mục '%s'"
 
 msgid "--interdiff requires --cover-letter or single patch"
 msgstr "--interdiff cần --cover-letter hoặc vá đơn"
@@ -7578,7 +7705,7 @@ msgid "Interdiff against v%d:"
 msgstr "Interdiff dựa trên v%d:"
 
 msgid "--range-diff requires --cover-letter or single patch"
-msgstr "--range-diff yêu cầu --cover-letter hoặc miếng vá đơn"
+msgstr "--range-diff yêu cầu --cover-letter hoặc bản vá đơn"
 
 msgid "Range-diff:"
 msgstr "Range-diff:"
@@ -7589,10 +7716,10 @@ msgstr "Range-diff dựa trên v%d:"
 
 #, c-format
 msgid "unable to read signature file '%s'"
-msgstr "không thể đọc tập tin chữ ký “%s”"
+msgstr "không thể đọc tập tin chữ ký '%s'"
 
 msgid "Generating patches"
-msgstr "Đang tạo các miếng vá"
+msgstr "Đang tạo các bản vá"
 
 msgid "failed to create output files"
 msgstr "gặp lỗi khi tạo các tập tin kết xuất"
@@ -7607,9 +7734,13 @@ msgstr ""
 "Không tìm thấy nhánh mạng được theo dõi, hãy chỉ định <thượng-nguồn> một "
 "cách thủ công.\n"
 
-msgid "git ls-files [<options>] [<file>...]"
-msgstr "git ls-files [<các tùy chọn>] [<tập-tin>…]"
-
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "không thể lấy thông tin đối tượng về '%s'"
+
+msgid "git ls-files [<options>] [<file>...]"
+msgstr "git ls-files [<các tùy chọn>] [<tập-tin>...]"
+
 msgid "separate paths with the NUL character"
 msgstr "các đường dẫn được ngăn cách bởi ký tự NULL"
 
@@ -7618,11 +7749,11 @@ msgstr "nhận dạng các trạng thái tập tin với thẻ"
 
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr ""
-"dùng chữ cái viết thường cho các tập tin “assume unchanged” (giả định không "
+"dùng chữ cái viết thường cho các tập tin 'assume unchanged' (giả định không "
 "thay đổi)"
 
 msgid "use lowercase letters for 'fsmonitor clean' files"
-msgstr "dùng chữ cái viết thường cho các tập tin “fsmonitor clean”"
+msgstr "dùng chữ cái viết thường cho các tập tin 'fsmonitor clean'"
 
 msgid "show cached files in the output (default)"
 msgstr "hiển thị các tập tin được nhớ tạm vào đầu ra (mặc định)"
@@ -7646,7 +7777,7 @@ msgid "show files on the filesystem that need to be removed"
 msgstr "hiển thị các tập tin trên hệ thống tập tin mà nó cần được gỡ bỏ"
 
 msgid "show 'other' directories' names only"
-msgstr "chỉ hiển thị tên của các thư mục “khác”"
+msgstr "chỉ hiển thị tên của các thư mục 'khác'"
 
 msgid "show line endings of files"
 msgstr "hiển thị kết thúc dòng của các tập tin"
@@ -7676,7 +7807,7 @@ msgid "make the output relative to the project top directory"
 msgstr "làm cho kết xuất liên quan đến thư mục ở mức cao nhất (gốc) của dự án"
 
 msgid "if any <file> is not in the index, treat this as an error"
-msgstr "nếu <tập tin> bất kỳ không ở trong bảng mục lục, xử lý nó như một lỗi"
+msgstr "nếu <tập tin> bất kỳ không ở trong chỉ mục, xử lý nó như một lỗi"
 
 msgid "tree-ish"
 msgstr "tree-ish"
@@ -7692,16 +7823,23 @@ msgid "suppress duplicate entries"
 msgstr "chặn các mục tin trùng lặp"
 
 msgid "show sparse directories in the presence of a sparse index"
-msgstr "hiển thị thư mục \"sparse\" trong sự có mặt của mục lục \"sparse\""
+msgstr "hiển thị thư mục thưa trong sự có mặt của chỉ mục thưa"
+
+msgid ""
+"--format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, "
+"--eol"
+msgstr ""
+"--format không thể được dùng với -s, -o, -k, -t, --resolve-undo,--"
+"deduplicate, --eol"
 
 msgid ""
 "git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
-"              [-q | --quiet] [--exit-code] [--get-url]\n"
-"              [--symref] [<repository> [<refs>...]]"
+"              [-q | --quiet] [--exit-code] [--get-url] [--sort=<key>]\n"
+"              [--symref] [<repository> [<patterns>...]]"
 msgstr ""
 "git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
-"              [-q | --quiet] [--exit-code] [--get-url]\n"
-"              [--symref] [<kho> [<các tham chiếu>…]]"
+"              [-q | --quiet] [--exit-code] [--get-url] [--sort=<key>]\n"
+"              [--symref] [<kho> [<mẫu>...]]"
 
 msgid "do not print remote URL"
 msgstr "không hiển thị URL máy chủ"
@@ -7731,23 +7869,7 @@ msgid "show underlying ref in addition to the object pointed by it"
 msgstr "hiển thị tham chiếu nằm dưới để thêm vào đối tượng được chỉ bởi nó"
 
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
-msgstr "git ls-tree [<các tùy chọn>] <tree-ish> [</đường/dẫn>…]"
-
-#, c-format
-msgid "could not get object info about '%s'"
-msgstr "không thể lấy thông tin đối tượng về “%s”"
-
-#, c-format
-msgid "bad ls-tree format: element '%s' does not start with '('"
-msgstr "định dạng ls-tree sai: phần tử “%s” không bắt đầu bằng “(”"
-
-#, c-format
-msgid "bad ls-tree format: element '%s' does not end in ')'"
-msgstr "định dạng ls-tree sai: phần tử “%s” không bắt kết thúc bằng “)”"
-
-#, c-format
-msgid "bad ls-tree format: %%%.*s"
-msgstr "định dạng ls-tree sai: %%%.*s"
+msgstr "git ls-tree [<các tùy chọn>] <tree-ish> [</đường/dẫn>...]"
 
 msgid "only show trees"
 msgstr "chỉ hiển thị các tree"
@@ -7759,7 +7881,7 @@ msgid "show trees when recursing"
 msgstr "hiển thị cây khi đệ quy"
 
 msgid "terminate entries with NUL byte"
-msgstr "chấm dứt mục tin với byte NUL"
+msgstr "kết thúc mục tin với byte NUL"
 
 msgid "include object size"
 msgstr "gồm cả kích thước đối tượng"
@@ -7818,38 +7940,38 @@ msgid "use headers in message's body"
 msgstr "sử dụng phần đầu trong nội dung thư"
 
 msgid "reading patches from stdin/tty..."
-msgstr "đọc các miếng vá từ đầu vào tiêu chuẩn stdin/tty..."
+msgstr "đọc các bản vá từ stdin/tty..."
 
 #, c-format
 msgid "empty mbox: '%s'"
-msgstr "mbox trống rỗng: “%s”"
+msgstr "mbox trống rỗng: '%s'"
 
 msgid "git merge-base [-a | --all] <commit> <commit>..."
-msgstr "git merge-base [-a | --all] <lần_chuyển_giao> <lần_chuyển_giao>"
+msgstr "git merge-base [-a | --all] <lần_chuyển_giao> <lần_chuyển_giao>..."
 
 msgid "git merge-base [-a | --all] --octopus <commit>..."
-msgstr "git merge-base [-a | --all] --octopus <lần_chuyển_giao>…"
-
-msgid "git merge-base --independent <commit>..."
-msgstr "git merge-base --independent <lần_chuyển_giao>…"
+msgstr "git merge-base [-a | --all] --octopus <lần_chuyển_giao>..."
 
 msgid "git merge-base --is-ancestor <commit> <commit>"
 msgstr "git merge-base --is-ancestor <commit> <lần_chuyển_giao>"
 
+msgid "git merge-base --independent <commit>..."
+msgstr "git merge-base --independent <lần_chuyển_giao>..."
+
 msgid "git merge-base --fork-point <ref> [<commit>]"
 msgstr "git merge-base --fork-point <tham-chiếu> [<lần_chuyển_giao>]"
 
 msgid "output all common ancestors"
-msgstr "xuất ra tất cả các ông bà, tổ tiên chung"
+msgstr "xuất ra tất cả các ông bà tổ tiên chung"
 
 msgid "find ancestors for a single n-way merge"
 msgstr "tìm tổ tiên của hòa trộn n-way đơn"
 
 msgid "list revs not reachable from others"
-msgstr "liệt kê các “rev” mà nó không thể đọc được từ cái khác"
+msgstr "liệt kê các 'rev' không thể tới được từ cái còn lại"
 
 msgid "is the first one ancestor of the other?"
-msgstr "là cha mẹ đầu tiên của cái khác?"
+msgstr "có phải cái trước là tổ tiên của cái sau?"
 
 msgid "find where <commit> forked from reflog of <ref>"
 msgstr "tìm xem <commit> được rẽ nhánh ở đâu từ reflog của <th.chiếu>"
@@ -7861,8 +7983,18 @@ msgstr ""
 "git merge-file [<các tùy chọn>] [-L <tên1> [-L <gốc> [-L <tên2>]]] <tập-"
 "tin1> <tập-tin-gốc> <tập-tin2>"
 
+msgid ""
+"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
+"\"histogram\""
+msgstr ""
+"tùy chọn diff-algorithm chấp nhận \"myers\", \"minimal\", \"patience\" và "
+"\"histogram\""
+
 msgid "send results to standard output"
-msgstr "gửi kết quả vào đầu ra tiêu chuẩn"
+msgstr "gửi kết quả ra stdout"
+
+msgid "use object IDs instead of filenames"
+msgstr "dùng ID đối tượng thay vì tên tập tin"
 
 msgid "use a diff3 based merge"
 msgstr "dùng kiểu hòa dựa trên diff3"
@@ -7871,16 +8003,22 @@ msgid "use a zealous diff3 based merge"
 msgstr "dùng kiểu hòa trộn dựa trên 'zealous diff3'"
 
 msgid "for conflicts, use our version"
-msgstr "để tránh xung đột, sử dụng phiên bản của chúng ta"
+msgstr "nếu xung đột, sử dụng phiên bản của ta"
 
 msgid "for conflicts, use their version"
-msgstr "để tránh xung đột, sử dụng phiên bản của họ"
+msgstr "nếu xung đột, sử dụng phiên bản của họ"
 
 msgid "for conflicts, use a union version"
-msgstr "để tránh xung đột, sử dụng phiên bản kết hợp"
+msgstr "nếu xung đột, sử dụng phiên bản kết hợp"
+
+msgid "<algorithm>"
+msgstr "<thuật toán>"
+
+msgid "choose a diff algorithm"
+msgstr "chọn thuật toán diff"
 
 msgid "for conflicts, use this marker size"
-msgstr "để tránh xung đột, hãy sử dụng kích thước bộ tạo này"
+msgstr "nếu xung đột, hãy sử dụng kích thước bộ tạo này"
 
 msgid "do not warn about conflicts"
 msgstr "không cảnh báo về các xung đột xảy ra"
@@ -7888,13 +8026,20 @@ msgstr "không cảnh báo về các xung đột xảy ra"
 msgid "set labels for file1/orig-file/file2"
 msgstr "đặt nhãn cho tập-tin-1/tập-tin-gốc/tập-tin-2"
 
+#, c-format
+msgid "object '%s' does not exist"
+msgstr "đối tượng '%s' không tồn tại"
+
+msgid "Could not write object file"
+msgstr "Không thể ghi vào tập tin"
+
 #, c-format
 msgid "unknown option %s"
 msgstr "không hiểu tùy chọn %s"
 
 #, c-format
 msgid "could not parse object '%s'"
-msgstr "không thể phân tích đối tượng “%s”"
+msgstr "không thể đọc đối tượng '%s'"
 
 #, c-format
 msgid "cannot handle more than %d base. Ignoring %s."
@@ -7912,33 +8057,94 @@ msgstr "không thể phân giải tham chiếu %s"
 msgid "Merging %s with %s\n"
 msgstr "Đang hòa trộn %s với %s\n"
 
+#, c-format
+msgid "could not parse as tree '%s'"
+msgstr "không hiểu cú pháp cây '%s'"
+
+msgid "not something we can merge"
+msgstr "không phải là thứ gì đó mà chúng tôi có thể hòa trộn"
+
+msgid "refusing to merge unrelated histories"
+msgstr "từ chối hòa trộn lịch sử không liên quan"
+
+msgid "failure to merge"
+msgstr "gặp lỗi khi hoà trộn"
+
+msgid "git merge-tree [--write-tree] [<options>] <branch1> <branch2>"
+msgstr "git merge-tree [--write-tree] [<tuỳ chọn>] <nhánh 1> <nhánh 2>"
+
+msgid "git merge-tree [--trivial-merge] <base-tree> <branch1> <branch2>"
+msgstr "git merge-tree [--trivial-merge] <cây gốc> <nhánh 1> <nhánh 2>"
+
+msgid "do a real merge instead of a trivial merge"
+msgstr "hoà trộn đúng chuẩn thay vì đơn giản"
+
+msgid "do a trivial merge only"
+msgstr "chỉ hoà trộn đơn giản"
+
+msgid "also show informational/conflict messages"
+msgstr "hiển thị thông báo chú thích/xung đột"
+
+msgid "list filenames without modes/oids/stages"
+msgstr "liệt kê tên tập tin không kèm chế độ/oid/stage"
+
+msgid "allow merging unrelated histories"
+msgstr "cho phép hòa trộn lịch sử không liên quan"
+
+msgid "perform multiple merges, one per line of input"
+msgstr "thực hiện hoà trộn nhiều lần, với từng dòng đầu vào"
+
+msgid "specify a merge-base for the merge"
+msgstr "chỉ định gốc hoà trộn để hòa trộn"
+
+msgid "option=value"
+msgstr "tùy_chọn=giá_trị"
+
+msgid "option for selected merge strategy"
+msgstr "tùy chọn cho chiến lược hòa trộn đã chọn"
+
+msgid "--trivial-merge is incompatible with all other options"
+msgstr "--trivial-merge không tương thích với các tùy chọn khác"
+
+#, c-format
+msgid "unknown strategy option: -X%s"
+msgstr "không hiểu chiến lược: -X%s"
+
+#, c-format
+msgid "malformed input line: '%s'."
+msgstr "dòng đầu vào sai quy cách: '%s'."
+
+#, c-format
+msgid "merging cannot continue; got unclean result of %d"
+msgstr "không thể tiếp tục hoà trộn; kết quả không hoàn toàn %d"
+
 msgid "git merge [<options>] [<commit>...]"
-msgstr "git merge [<các tùy chọn>] [<commit>]"
+msgstr "git merge [<các tùy chọn>] [<commit>...]"
 
 msgid "switch `m' requires a value"
-msgstr "switch “m” yêu cầu một giá trị"
+msgstr "tuỳ chọn 'm' yêu cầu một giá trị"
 
 #, c-format
 msgid "option `%s' requires a value"
-msgstr "tùy chọn “%s” yêu cầu một giá trị"
+msgstr "tùy chọn '%s' yêu cầu một giá trị"
 
 #, c-format
 msgid "Could not find merge strategy '%s'.\n"
-msgstr "Không tìm thấy chiến lược hòa trộn “%s”.\n"
+msgstr "Không tìm thấy chiến lược hòa trộn '%s'.\n"
 
 #, c-format
 msgid "Available strategies are:"
-msgstr "Các chiến lược sẵn sàng là:"
+msgstr "Các chiến lược khả dụng là:"
 
 #, c-format
 msgid "Available custom strategies are:"
-msgstr "Các chiến lược tùy chỉnh sẵn sàng là:"
+msgstr "Các chiến lược tùy chỉnh khả dụng là:"
 
 msgid "do not show a diffstat at the end of the merge"
-msgstr "không hiển thị thống kê khác biệt tại cuối của lần hòa trộn"
+msgstr "không hiển thị diffstat (thống kê khác biệt) phía dưới hòa trộn"
 
 msgid "show a diffstat at the end of the merge"
-msgstr "hiển thị thống kê khác biệt tại cuối của hòa trộn"
+msgstr "hiển thị diffstat (thống kê khác biệt) phía dưới hòa trộn"
 
 msgid "(synonym to --stat)"
 msgstr "(đồng nghĩa với --stat)"
@@ -7947,7 +8153,7 @@ msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "thêm (ít nhất <n>) mục từ shortlog cho ghi chú chuyển giao hòa trộn"
 
 msgid "create a single commit instead of doing a merge"
-msgstr "tạo má»\99t lần chuyá»\83n giao Ä\91Æ°on thay vì thực hiện việc hòa trộn"
+msgstr "tạo má»\99t lần chuyá»\83n giao Ä\91Æ¡n thay vì thực hiện việc hòa trộn"
 
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "thực hiện chuyển giao nếu hòa trộn thành công (mặc định)"
@@ -7959,7 +8165,7 @@ msgid "allow fast-forward (default)"
 msgstr "cho phép chuyển-tiếp-nhanh (mặc định)"
 
 msgid "abort if fast-forward is not possible"
-msgstr "bỏ qua nếu chuyển-tiếp-nhanh không thể được"
+msgstr "huỷ lệnh nếu không thể chuyển-tiếp-nhanh"
 
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "thẩm tra xem lần chuyển giao có tên đó có chữ ký GPG hợp lệ hay không"
@@ -7970,12 +8176,6 @@ msgstr "chiến lược"
 msgid "merge strategy to use"
 msgstr "chiến lược hòa trộn sẽ dùng"
 
-msgid "option=value"
-msgstr "tùy_chọn=giá_trị"
-
-msgid "option for selected merge strategy"
-msgstr "tùy chọn cho chiến lược hòa trộn đã chọn"
-
 msgid "merge commit message (for a non-fast-forward merge)"
 msgstr ""
 "hòa trộn ghi chú của lần chuyển giao (dành cho hòa trộn không-chuyển-tiếp-"
@@ -7985,17 +8185,14 @@ msgid "use <name> instead of the real target"
 msgstr "dùng <tên> thay cho đích thật"
 
 msgid "abort the current in-progress merge"
-msgstr "bãi bỏ quá trình hòa trộn hiện tại đang thực hiện"
+msgstr "huỷ bỏ quá trình hòa trộn hiện đang thực hiện"
 
 msgid "--abort but leave index and working tree alone"
-msgstr "--abort nhưng để lại bảng mục lục và cây làm việc"
+msgstr "--abort nhưng để lại chỉ mục và cây làm việc"
 
 msgid "continue the current in-progress merge"
 msgstr "tiếp tục quá trình hòa trộn hiện tại đang thực hiện"
 
-msgid "allow merging unrelated histories"
-msgstr "cho phép hòa trộn lịch sử không liên quan"
-
 msgid "bypass pre-merge-commit and commit-msg hooks"
 msgstr "vòng qua móc (hook) pre-merge-commit và commit-msg"
 
@@ -8028,34 +8225,30 @@ msgstr "Không có lời chú thích hòa trộn -- nên không cập nhật HEA
 
 #, c-format
 msgid "'%s' does not point to a commit"
-msgstr "“%s” không chỉ đến một lần chuyển giao nào cả"
+msgstr "'%s' không chỉ đến một lần chuyển giao nào cả"
 
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "Chuỗi branch.%s.mergeoptions sai: %s"
 
 msgid "Unable to write index."
-msgstr "Không thể ghi bảng mục lục."
+msgstr "Không thể ghi chỉ mục."
 
 msgid "Not handling anything other than two heads merge."
 msgstr "Không cầm nắm gì ngoài hai head hòa trộn."
 
-#, c-format
-msgid "unknown strategy option: -X%s"
-msgstr "không hiểu chiến lược: -X%s"
-
 #, c-format
 msgid "unable to write %s"
 msgstr "không thể ghi %s"
 
 #, c-format
 msgid "Could not read from '%s'"
-msgstr "Không thể đọc từ “%s”"
+msgstr "Không thể đọc từ '%s'"
 
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr ""
-"Vẫn chưa hòa trộn các lần chuyển giao; sử dụng lệnh “git commit” để hoàn tất "
+"Vẫn chưa hòa trộn các lần chuyển giao; sử dụng lệnh 'git commit' để hoàn tất "
 "việc hòa trộn.\n"
 
 msgid ""
@@ -8074,10 +8267,10 @@ msgstr "Nếu phần chú thích rỗng sẽ hủy bỏ lần chuyển giao.\n"
 
 #, c-format
 msgid ""
-"Lines starting with '%c' will be ignored, and an empty message aborts\n"
+"Lines starting with '%s' will be ignored, and an empty message aborts\n"
 "the commit.\n"
 msgstr ""
-"Những dòng được bắt đầu bằng “%c” sẽ được bỏ qua, và nếu phần chú\n"
+"Những dòng được bắt đầu bằng '%s' sẽ được bỏ qua, và nếu phần chú\n"
 "thích rỗng sẽ hủy bỏ lần chuyển giao.\n"
 
 msgid "Empty commit message."
@@ -8108,19 +8301,16 @@ msgstr "Không nhánh mạng theo dõi cho %s từ %s"
 
 #, c-format
 msgid "Bad value '%s' in environment '%s'"
-msgstr "Giá trị sai “%s” trong biến môi trường “%s”"
+msgstr "Giá trị sai '%s' trong biến môi trường '%s'"
 
 #, c-format
 msgid "could not close '%s'"
-msgstr "không thể đóng “%s”"
+msgstr "không thể đóng '%s'"
 
 #, c-format
 msgid "not something we can merge in %s: %s"
 msgstr "không phải là một thứ gì đó mà chúng tôi có thể hòa trộn trong %s: %s"
 
-msgid "not something we can merge"
-msgstr "không phải là thứ gì đó mà chúng tôi có thể hòa trộn"
-
 msgid "--abort expects no arguments"
 msgstr "--abort không nhận các đối số"
 
@@ -8172,16 +8362,22 @@ msgid "Can merge only exactly one commit into empty head"
 msgstr ""
 "Không thể hòa trộn một cách đúng đắn một lần chuyển giao vào một head rỗng"
 
-msgid "refusing to merge unrelated histories"
-msgstr "từ chối hòa trộn lịch sử không liên quan"
-
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Đang cập nhật %s..%s\n"
 
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+"  %s"
+msgstr ""
+"Các thay đổi nội bộ của bạn với các tập tin sau đây sẽ bị ghi đè bởi lệnh "
+"hòa trộn:\n"
+"  %s"
+
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
-msgstr "Đang thử hòa trộn kiểu “trivial in-index”…\n"
+msgstr "Đang thử hòa trộn kiểu 'trivial in-index'...\n"
 
 #, c-format
 msgid "Nope.\n"
@@ -8189,15 +8385,15 @@ msgstr "Không.\n"
 
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
-msgstr "Đang tua lại cây thành thời xa xưa\n"
+msgstr "Đang tua lại cây thành thời xa xưa...\n"
 
 #, c-format
 msgid "Trying merge strategy %s...\n"
-msgstr "Đang thử chiến lược hòa trộn %s\n"
+msgstr "Đang thử chiến lược hòa trộn %s...\n"
 
 #, c-format
 msgid "No merge strategy handled the merge.\n"
-msgstr "Không có chiến lược hòa trộn nào được nắm giữ (handle) sự hòa trộn.\n"
+msgstr "Không có chiến lược hòa trộn nào có thể xử lý việc hòa trộn.\n"
 
 #, c-format
 msgid "Merge with strategy %s failed.\n"
@@ -8209,9 +8405,12 @@ msgstr "Sử dụng chiến lược %s để chuẩn bị giải quyết bằng
 
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
+msgstr "Hòa trộn tự động đã xong; dừng trước khi chuyển giao như đã yêu cầu\n"
+
+#, c-format
+msgid "When finished, apply stashed changes with `git stash pop`\n"
 msgstr ""
-"Hòa trộn tự động đã trở nên tốt; bị dừng trước khi việc chuyển giao được yêu "
-"cầu\n"
+"Sau khi hoàn thành, áp dụng các thay đổi trong stash với `git stash pop` \n"
 
 #, c-format
 msgid "warning: tag input does not pass fsck: %s"
@@ -8219,11 +8418,11 @@ msgstr "cảnh báo: đầu vào thẻ không qua kiểm tra fsck: %s"
 
 #, c-format
 msgid "error: tag input does not pass fsck: %s"
-msgstr "lỗi: đầu vào thẻ không vượt qua fsck: %s"
+msgstr "lỗi: đầu vào thẻ không qua kiểm tra fsck: %s"
 
 #, c-format
 msgid "%d (FSCK_IGNORE?) should never trigger this callback"
-msgstr "%d (FSCK_IGNORE?) không bao giờ nên kích hoạt cuộc gọi ngược này"
+msgstr "%d (FSCK_IGNORE?) không bao giờ nên kích hoạt callback này"
 
 #, c-format
 msgid "could not read tagged object '%s'"
@@ -8231,24 +8430,20 @@ msgstr "không thể đọc đối tượng được đánh thẻ %s"
 
 #, c-format
 msgid "object '%s' tagged as '%s', but is a '%s' type"
-msgstr "đối tượng %s được đánh thẻ là %s, không phải là kiểu %s"
-
-msgid "could not read from stdin"
-msgstr "không thể đọc từ đầu vào tiêu chuẩn"
+msgstr "đối tượng '%s' được đánh thẻ là '%s', nhưng là kiểu '%s'"
 
 msgid "tag on stdin did not pass our strict fsck check"
 msgstr ""
 "thẻ trên stdin đã không vượt qua kiểm tra fsck nghiêm ngặt của chúng tôi"
 
 msgid "tag on stdin did not refer to a valid object"
-msgstr ""
-"thẻ trên đầu vào tiêu chuẩn không chỉ đến một lần chuyển giao hợp lệ nào cả"
+msgstr "thẻ trên stdin không chỉ đến một đối tượng hợp lệ"
 
 msgid "unable to write tag file"
-msgstr "không thể ghi vào tập tin lưu thẻ"
+msgstr "không thể ghi vào tập tin thẻ"
 
 msgid "input is NUL terminated"
-msgstr "đầu vào được chấm dứt bởi NUL"
+msgstr "đầu vào được kết thúc bởi NUL"
 
 msgid "allow missing objects"
 msgstr "cho phép thiếu đối tượng"
@@ -8288,7 +8483,7 @@ msgid "write multi-pack bitmap"
 msgstr "ghi multi-pack bitmap"
 
 msgid "write multi-pack index containing only given indexes"
-msgstr "ghi mục lục multi-pack chỉ chứa các mục lục đã cho"
+msgstr "ghi chỉ mục multi-pack chỉ chứa các chỉ mục đã cho"
 
 msgid "refs snapshot for selecting bitmap commits"
 msgstr "ảnh chụp nhanh refs để chọn các lần chuyển giao ánh xạ"
@@ -8301,11 +8496,11 @@ msgstr ""
 "vào một bó cái mà lớn hơn kích thước này"
 
 msgid "git mv [<options>] <source>... <destination>"
-msgstr "git mv [<các tùy chọn>] <nguồn> <đích>"
+msgstr "git mv [<các tùy chọn>] <nguồn>... <đích>"
 
 #, c-format
 msgid "Directory %s is in index and no submodule?"
-msgstr "Thư mục “%s” có ở trong chỉ mục mà không có mô-đun con?"
+msgstr "Thư mục '%s' có ở trong chỉ mục mà không có mô-đun con?"
 
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr ""
@@ -8313,7 +8508,7 @@ msgstr ""
 
 #, c-format
 msgid "%.*s is in index"
-msgstr "%.*s trong bảng mục lục"
+msgstr "%.*s trong chỉ mục"
 
 msgid "force move/rename even if target exists"
 msgstr "ép buộc di chuyển hay đổi tên thậm chí cả khi đích đã tồn tại"
@@ -8323,20 +8518,23 @@ msgstr "bỏ qua các lỗi liên quan đến di chuyển, đổi tên"
 
 #, c-format
 msgid "destination '%s' is not a directory"
-msgstr "có đích “%s” nhưng đây không phải là một thư mục"
+msgstr "có đích '%s' nhưng đây không phải là một thư mục"
 
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
-msgstr "Đang kiểm tra việc đổi tên của “%s” thành “%s”\n"
+msgstr "Đang kiểm tra việc đổi tên của '%s' thành '%s'\n"
 
 msgid "bad source"
 msgstr "nguồn sai"
 
+msgid "destination exists"
+msgstr "đích đã tồn tại sẵn rồi"
+
 msgid "can not move directory into itself"
 msgstr "không thể di chuyển một thư mục vào trong chính nó được"
 
-msgid "cannot move directory over file"
-msgstr "không di chuyển được thư mục thông qua tập tin"
+msgid "destination already exists"
+msgstr "đích đã tồn tại sẵn rồi"
 
 msgid "source directory is empty"
 msgstr "thư mục nguồn là trống rỗng"
@@ -8347,12 +8545,9 @@ msgstr "không nằm dưới sự quản lý mã nguồn"
 msgid "conflicted"
 msgstr "bị xung đột"
 
-msgid "destination exists"
-msgstr "đích đã tồn tại sẵn rồi"
-
 #, c-format
 msgid "overwriting '%s'"
-msgstr "đang ghi đè lên “%s”"
+msgstr "đang ghi đè lên '%s'"
 
 msgid "Cannot overwrite"
 msgstr "Không thể ghi đè"
@@ -8363,6 +8558,9 @@ msgstr "nhiều nguồn cho cùng một đích"
 msgid "destination directory does not exist"
 msgstr "thư mục đích không tồn tại"
 
+msgid "destination exists in the index"
+msgstr "đích đã tồn tại sẵn trong chỉ mục"
+
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s, nguồn=%s, đích=%s"
@@ -8373,10 +8571,10 @@ msgstr "Đổi tên %s thành %s\n"
 
 #, c-format
 msgid "renaming '%s' failed"
-msgstr "gặp lỗi khi đổi tên “%s”"
+msgstr "gặp lỗi khi đổi tên '%s'"
 
 msgid "git name-rev [<options>] <commit>..."
-msgstr "git name-rev [<các tùy chọn>] <commit>"
+msgstr "git name-rev [<các tùy chọn>] <commit>..."
 
 msgid "git name-rev [<options>] --all"
 msgstr "git name-rev [<các tùy chọn>] --all"
@@ -8404,33 +8602,37 @@ msgid "deprecated: use --annotate-stdin instead"
 msgstr "đã lạc hậu: hãy dùng --annotate-stdin để thay thế"
 
 msgid "annotate text from stdin"
-msgstr "chú giải chữ từ đầu vào tiêu chuẩn stdin"
+msgstr "chú giải chữ từ stdin"
 
 msgid "allow to print `undefined` names (default)"
-msgstr "cho phép in các tên “chưa định nghĩa” (mặc định)"
+msgstr "cho phép in các tên `chưa định nghĩa` (mặc định)"
 
 msgid "dereference tags in the input (internal use)"
-msgstr "bãi bỏ tham chiếu các thẻ trong đầu vào (dùng nội bộ)"
+msgstr "giải tham chiếu các thẻ trong đầu vào (dùng nội bộ)"
 
 msgid "git notes [--ref <notes-ref>] [list [<object>]]"
 msgstr "git notes [--ref <notes-ref>] [list [<đối-tượng>]]"
 
 msgid ""
-"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F <file> "
-"| (-c | -C) <object>] [<object>]"
+"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [--[no-]separator|--"
+"separator=<paragraph-break>] [--[no-]stripspace] [-m <msg> | -F <file> | (-c "
+"| -C) <object>] [<object>]"
 msgstr ""
-"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <lời-nhắn> | -F "
-"<tập-tin> | (-c | -C) <đối-tượng>] [<đối-tượng>]"
+"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [--[no-]separator|--"
+"separator=<paragraph-break>] [--[no-]stripspace] [-m <lời-nhắn> | -F <tập-"
+"tin> | (-c | -C) <đối-tượng>] [<đối-tượng>]"
 
 msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>"
 msgstr "git notes [--ref <notes-ref>] copy [-f] <từ-đối-tượng> <đến-đối-tượng>"
 
 msgid ""
-"git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F <file> | "
-"(-c | -C) <object>] [<object>]"
+"git notes [--ref <notes-ref>] append [--allow-empty] [--[no-]separator|--"
+"separator=<paragraph-break>] [--[no-]stripspace] [-m <msg> | -F <file> | (-c "
+"| -C) <object>] [<object>]"
 msgstr ""
-"git notes [--ref <notes-ref>] append [--allow-empty] [-m <lời-nhắn> | -F "
-"<tập-tin> | (-c | -C) <đối-tượng>] [<đối-tượng>]"
+"git notes [--ref <notes-ref>] append [--allow-empty] [--[no-]separator|--"
+"separator=<paragraph-break>] [--[no-]stripspace] [-m <lời-nhắn> | -F <tập-"
+"tin> | (-c | -C) <đối-tượng>] [<đối-tượng>]"
 
 msgid "git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]"
 msgstr "git notes [--ref <notes-ref>] edit [--allow-empty] [<đối-tượng>]"
@@ -8444,7 +8646,7 @@ msgstr ""
 "git notes [--ref <notes-ref>] merge [-v | -q] [-s <chiến-lược> ] <notes-ref>"
 
 msgid "git notes [--ref <notes-ref>] remove [<object>...]"
-msgstr "git notes [--ref <notes-ref>] remove [<đối-tượng>]"
+msgstr "git notes [--ref <notes-ref>] remove [<đối-tượng>...]"
 
 msgid "git notes [--ref <notes-ref>] prune [-n] [-v]"
 msgstr "git notes [--ref <notes-ref>] prune [-n] [-v]"
@@ -8462,7 +8664,7 @@ msgid "git notes copy [<options>] <from-object> <to-object>"
 msgstr "git notes copy [<các tùy chọn>] <từ-đối-tượng> <đến-đối-tượng>"
 
 msgid "git notes copy --stdin [<from-object> <to-object>]..."
-msgstr "git notes copy --stdin [<từ-đối-tượng> <đến-đối-tượng>]"
+msgstr "git notes copy --stdin [<từ-đối-tượng> <đến-đối-tượng>]..."
 
 msgid "git notes append [<options>] [<object>]"
 msgstr "git notes append [<các tùy chọn>] [<đối-tượng>]"
@@ -8491,16 +8693,12 @@ msgstr "git notes prune [<các tùy chọn>]"
 msgid "Write/edit the notes for the following object:"
 msgstr "Ghi hay sửa ghi chú cho đối tượng sau đây:"
 
-#, c-format
-msgid "unable to start 'show' for object '%s'"
-msgstr "không thể khởi chạy “show” cho đối tượng “%s”"
-
 msgid "could not read 'show' output"
-msgstr "không thể đọc kết xuất “show”"
+msgstr "không thể đọc kết xuất 'show'"
 
 #, c-format
 msgid "failed to finish 'show' for object '%s'"
-msgstr "gặp lỗi khi hoàn thành “show” cho đối tượng “%s”"
+msgstr "gặp lỗi khi hoàn thành 'show' cho đối tượng '%s'"
 
 msgid "please supply the note contents using either -m or -F option"
 msgstr ""
@@ -8515,27 +8713,23 @@ msgstr "nội dung ghi chú còn lại %s"
 
 #, c-format
 msgid "could not open or read '%s'"
-msgstr "không thể mở hay đọc “%s”"
+msgstr "không thể mở hay đọc '%s'"
 
 #, c-format
 msgid "failed to resolve '%s' as a valid ref."
-msgstr "gặp lỗi khi phân giải “%s” như là một tham chiếu hợp lệ."
+msgstr "gặp lỗi khi phân giải '%s' thành một tham chiếu hợp lệ."
 
 #, c-format
 msgid "failed to read object '%s'."
-msgstr "gặp lỗi khi đọc đối tượng “%s”."
+msgstr "gặp lỗi khi đọc đối tượng '%s'."
 
 #, c-format
 msgid "cannot read note data from non-blob object '%s'."
-msgstr "không thể đọc dữ liệu ghi chú từ đối tượng không-blob “%s”."
-
-#, c-format
-msgid "malformed input line: '%s'."
-msgstr "dòng đầu vào dị hình: “%s”."
+msgstr "không thể đọc dữ liệu ghi chú từ đối tượng không-blob '%s'."
 
 #, c-format
 msgid "failed to copy notes from '%s' to '%s'"
-msgstr "gặp lỗi khi sao chép ghi chú (note) từ “%s” sang “%s”"
+msgstr "gặp lỗi khi sao chép ghi chú (note) từ '%s' sang '%s'"
 
 #. TRANSLATORS: the first %s will be replaced by a git
 #. notes command: 'add', 'merge', 'remove', etc.
@@ -8566,13 +8760,22 @@ msgstr "cho lưu trữ ghi chú trống rỗng"
 msgid "replace existing notes"
 msgstr "thay thế ghi chú trước"
 
+msgid "<paragraph-break>"
+msgstr "<dấu ngắt đoạn>"
+
+msgid "insert <paragraph-break> between paragraphs"
+msgstr "chèn <dấu ngắt đoạn> giữa các đoạn văn"
+
+msgid "remove unnecessary whitespace"
+msgstr "Xóa bỏ các khoảng trắng không cần thiết"
+
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
 msgstr ""
 "Không thể thêm các ghi chú. Đã tìm thấy các ghi chú đã có sẵn cho đối tượng "
-"%s. Sử dụng tùy chọn “-f” để ghi đè lên các ghi chú cũ"
+"%s. Sử dụng tùy chọn '-f' để ghi đè lên các ghi chú cũ"
 
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
@@ -8583,10 +8786,10 @@ msgid "Removing note for object %s\n"
 msgstr "Đang gỡ bỏ ghi chú (note) cho đối tượng %s\n"
 
 msgid "read objects from stdin"
-msgstr "đọc các đối tượng từ đầu vào tiêu chuẩn"
+msgstr "đọc các đối tượng từ stdin"
 
 msgid "load rewriting config for <command> (implies --stdin)"
-msgstr "tải cấu hình chép lại cho <lá»\87nh> (ngầm Ä\91á»\8bnh là --stdin)"
+msgstr "tải cấu hình chép lại cho <lá»\87nh> (ngụ Ã½ --stdin)"
 
 msgid "too few arguments"
 msgstr "quá ít đối số"
@@ -8597,7 +8800,7 @@ msgid ""
 "existing notes"
 msgstr ""
 "Không thể sao chép các ghi chú. Đã tìm thấy các ghi chú đã có sẵn cho đối "
-"tượng %s. Sử dụng tùy chọn “-f” để ghi đè lên các ghi chú cũ"
+"tượng %s. Sử dụng tùy chọn '-f' để ghi đè lên các ghi chú cũ"
 
 #, c-format
 msgid "missing notes on source object %s. Cannot copy."
@@ -8608,8 +8811,8 @@ msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
 "Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
 msgstr ""
-"Các tùy chọn -m/-F/-c/-C đã cổ không còn dùng nữa cho lệnh con “edit”.\n"
-"Xin hãy sử dụng lệnh sau để thay thế: “git notes add -f -m/-F/-c/-C”.\n"
+"Các tùy chọn -m/-F/-c/-C đã không còn dùng cho lệnh con 'edit'.\n"
+"Xin hãy sử dụng lệnh sau để thay thế: 'git notes add -f -m/-F/-c/-C'.\n"
 
 msgid "failed to delete ref NOTES_MERGE_PARTIAL"
 msgstr "gặp lỗi khi xóa tham chiếu NOTES_MERGE_PARTIAL"
@@ -8618,7 +8821,7 @@ msgid "failed to delete ref NOTES_MERGE_REF"
 msgstr "gặp lỗi khi xóa tham chiếu NOTES_MERGE_REF"
 
 msgid "failed to remove 'git notes merge' worktree"
-msgstr "gặp lỗi khi gỡ bỏ cây làm việc “git notes merge”"
+msgstr "gặp lỗi khi gỡ bỏ cây làm việc 'git notes merge'"
 
 msgid "failed to read ref NOTES_MERGE_PARTIAL"
 msgstr "gặp lỗi khi đọc tham chiếu NOTES_MERGE_PARTIAL"
@@ -8627,7 +8830,7 @@ msgid "could not find commit from NOTES_MERGE_PARTIAL."
 msgstr "không thể tìm thấy lần chuyển giao từ NOTES_MERGE_PARTIAL."
 
 msgid "could not parse commit from NOTES_MERGE_PARTIAL."
-msgstr "không thể phân tích cú pháp lần chuyển giao từ NOTES_MERGE_PARTIAL."
+msgstr "không hiểu cú pháp lần chuyển giao từ NOTES_MERGE_PARTIAL."
 
 msgid "failed to resolve NOTES_MERGE_REF"
 msgstr "gặp lỗi khi phân giải NOTES_MERGE_REF"
@@ -8649,7 +8852,7 @@ msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
 msgstr ""
-"phân giải các xung đột “notes” sử dụng chiến lược đã đưa ra (manual/ours/"
+"phân giải các xung đột 'notes' sử dụng chiến lược đã đưa ra (manual/ours/"
 "theirs/union/cat_sort_uniq)"
 
 msgid "Committing unmerged notes"
@@ -8691,49 +8894,48 @@ msgid ""
 "abort'.\n"
 msgstr ""
 "Gặp lỗi khi hòa trộn các ghi chú tự động. Sửa các xung đột này trong %s và "
-"chuyển giao kết quả bằng “git notes merge --commit”, hoặc bãi bỏ việc hòa "
-"trộn bằng “git notes merge --abort”.\n"
+"chuyển giao kết quả bằng 'git notes merge --commit', hoặc huỷ bỏ việc hòa "
+"trộn bằng 'git notes merge --abort'.\n"
 
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
-msgstr "Gặp lỗi khi phân giải “%s” như là một tham chiếu hợp lệ."
+msgstr "Gặp lỗi khi phân giải '%s' thành một tham chiếu hợp lệ."
 
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "Đối tượng %s không có ghi chú (note)\n"
 
 msgid "attempt to remove non-existent note is not an error"
-msgstr "cố gắng gỡ bỏ một note chưa từng tồn tại không phải là một lỗi"
+msgstr "việc gỡ bỏ một note không tồn tại không phải là lỗi"
 
 msgid "read object names from the standard input"
-msgstr "đọc tên đối tượng từ thiết bị nhập chuẩn"
+msgstr "đọc tên đối tượng từ stdin"
 
 msgid "do not remove, show only"
 msgstr "không gỡ bỏ, chỉ hiển thị"
 
 msgid "report pruned notes"
-msgstr "báo cáo các đối tượng đã prune"
+msgstr "liệt kê các đối tượng đã prune"
 
 msgid "notes-ref"
 msgstr "notes-ref"
 
 msgid "use notes from <notes-ref>"
-msgstr "dùng “notes” từ <notes-ref>"
+msgstr "dùng 'notes' từ <notes-ref>"
 
 #, c-format
-msgid "unknown subcommand: %s"
-msgstr "không hiểu câu lệnh con: %s"
+msgid "unknown subcommand: `%s'"
+msgstr "không hiểu câu lệnh con: `%s'"
 
-msgid ""
-"git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]"
+msgid "git pack-objects --stdout [<options>] [< <ref-list> | < <object-list>]"
 msgstr ""
-"git pack-objects --stdout [các tùy chọn…] [< <danh-sách-tham-chiếu> | < "
+"git pack-objects --stdout [<các tùy chọn>] [< <danh-sách-tham-chiếu> | < "
 "<danh-sách-đối-tượng>]"
 
 msgid ""
-"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
+"git pack-objects [<options>] <base-name> [< <ref-list> | < <object-list>]"
 msgstr ""
-"git pack-objects [các tùy chọn…] <base-name> [< <danh-sách-ref> | < <danh-"
+"git pack-objects [<các tùy chọn>] <base-name> [< <danh-sách-ref> | < <danh-"
 "sách-đối-tượng>]"
 
 #, c-format
@@ -8772,14 +8974,14 @@ msgstr "Đang ghi lại các đối tượng"
 
 #, c-format
 msgid "failed to stat %s"
-msgstr "gặp lỗi khi lấy thông tin thống kê về %s"
+msgstr "gặp lỗi khi stat %s"
 
 #, c-format
 msgid "failed utime() on %s"
-msgstr "gặp lỗi utime() trên “%s”"
+msgstr "gặp lỗi utime() trên '%s'"
 
 msgid "failed to write bitmap index"
-msgstr "gặp lỗi khi ghi mục lục ánh xạ"
+msgstr "gặp lỗi khi ghi chỉ mục ánh xạ"
 
 #, c-format
 msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
@@ -8805,7 +9007,7 @@ msgstr "không thể lấy kích cỡ của %s"
 
 #, c-format
 msgid "unable to parse object header of %s"
-msgstr "không thể phân tích phần đầu đối tượng của “%s”"
+msgstr "không thể đọc phần đầu đối tượng của '%s'"
 
 #, c-format
 msgid "object %s cannot be read"
@@ -8826,11 +9028,11 @@ msgstr "Nén delta dùng tới %d tuyến trình"
 
 #, c-format
 msgid "unable to pack objects reachable from tag %s"
-msgstr "không thể đóng gói các đối tượng tiếp cận được từ thẻ “%s”"
+msgstr "không thể đóng gói các đối tượng tiếp cận được từ thẻ '%s'"
 
 #, c-format
 msgid "unable to get type of object %s"
-msgstr "không thể lấy kiểu của đối tượng “%s”"
+msgstr "không thể lấy kiểu của đối tượng '%s'"
 
 msgid "Compressing objects"
 msgstr "Đang nén các đối tượng"
@@ -8838,28 +9040,32 @@ msgstr "Đang nén các đối tượng"
 msgid "inconsistency with delta count"
 msgstr "mâu thuẫn với số lượng delta"
 
+#, c-format
+msgid "invalid pack.allowPackReuse value: '%s'"
+msgstr "giá trị pack.allowPackReuse không hợp lệ: '%s'"
+
 #, c-format
 msgid ""
 "value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
 "hash> <uri>' (got '%s')"
 msgstr ""
-"giá trị của uploadpack.blobpackfileuri phải có dạng <object-hash> <pack-"
-"hash> <uri>” (nhận “%s”)"
+"giá trị của uploadpack.blobpackfileuri phải có dạng '<object-hash> <pack-"
+"hash> <uri>' (nhận '%s')"
 
 #, c-format
 msgid ""
 "object already configured in another uploadpack.blobpackfileuri (got '%s')"
 msgstr ""
 "đối tượng đã được cấu hình trong một uploadpack.blobpackfileuri khác (đã "
-"nhận “%s”)"
+"nhận '%s')"
 
 #, c-format
 msgid "could not get type of object %s in pack %s"
-msgstr "không thể lấy kiểu của đối tượng “%s” trong gói “%s”"
+msgstr "không thể lấy kiểu của đối tượng '%s' trong gói '%s'"
 
 #, c-format
 msgid "could not find pack '%s'"
-msgstr "không thể tìm thấy gói “%s”"
+msgstr "không thể tìm thấy gói '%s'"
 
 #, c-format
 msgid "packfile %s cannot be accessed"
@@ -8879,7 +9085,7 @@ msgid ""
 "expected edge object ID, got garbage:\n"
 " %s"
 msgstr ""
-"cần ID đối tượng cạnh, nhận được rác:\n"
+"cần ID đối tượng cạnh,  rác:\n"
 " %s"
 
 #, c-format
@@ -8887,14 +9093,14 @@ msgid ""
 "expected object ID, got garbage:\n"
 " %s"
 msgstr ""
-"cần ID đối tượng, nhận được rác:\n"
+"cần ID đối tượng,  rác:\n"
 " %s"
 
 msgid "could not load cruft pack .mtimes"
 msgstr "không thể tải cruft pack .mtimes"
 
 msgid "cannot open pack index"
-msgstr "không thể mở mục lục của gói"
+msgstr "không thể mở chỉ mục của gói"
 
 #, c-format
 msgid "loose object at %s could not be examined"
@@ -8905,31 +9111,37 @@ msgstr "không thể buộc mất đối tượng"
 
 #, c-format
 msgid "not a rev '%s'"
-msgstr "không phải một rev “%s”"
+msgstr "không phải một rev '%s'"
 
 #, c-format
 msgid "bad revision '%s'"
-msgstr "điểm xem xét sai “%s”"
+msgstr "điểm xem xét sai '%s'"
 
 msgid "unable to add recent objects"
 msgstr "không thể thêm các đối tượng mới dùng"
 
 #, c-format
 msgid "unsupported index version %s"
-msgstr "phiên bản mục lục không được hỗ trợ %s"
+msgstr "phiên bản chỉ mục không được hỗ trợ %s"
 
 #, c-format
 msgid "bad index version '%s'"
-msgstr "phiên bản mục lục sai “%s”"
+msgstr "phiên bản chỉ mục sai '%s'"
+
+msgid "show progress meter during object writing phase"
+msgstr "hiển thị bộ đo tiến triển trong suốt pha ghi đối tượng"
+
+msgid "similar to --all-progress when progress meter is shown"
+msgstr "tương tự --all-progress khi bộ đo tiến trình được xuất hiện"
 
 msgid "<version>[,<offset>]"
 msgstr "<phiên bản>[,offset]"
 
 msgid "write the pack index file in the specified idx format version"
-msgstr "ghi tập tin bảng mục lục gói (pack) ở phiên bản định dạng idx đã cho"
+msgstr "ghi tập tin chỉ mục gói (pack) ở phiên bản định dạng idx đã cho"
 
 msgid "maximum size of each output pack file"
-msgstr "kh thước tối đa cho tập tin gói được tạo"
+msgstr "kích thước tối đa cho tập tin gói được tạo"
 
 msgid "ignore borrowed objects from alternate object store"
 msgstr "bỏ qua các đối tượng vay mượn từ kho đối tượng thay thế"
@@ -8944,7 +9156,7 @@ msgid "limit pack window by memory in addition to object limit"
 msgstr "giới hạn cửa sổ đóng gói theo bộ nhớ cộng thêm với giới hạn đối tượng"
 
 msgid "maximum length of delta chain allowed in the resulting pack"
-msgstr "độ dài tối đa của chuỗi móc xích “delta” được phép trong gói kết quả"
+msgstr "độ dài tối đa của chuỗi móc xích 'delta' được phép trong gói kết quả"
 
 msgid "reuse existing deltas"
 msgstr "dùng lại các delta sẵn có"
@@ -8962,7 +9174,7 @@ msgid "do not create an empty pack output"
 msgstr "không thể tạo kết xuất gói trống rỗng"
 
 msgid "read revision arguments from standard input"
-msgstr "đọc tham số “revision” từ thiết bị nhập chuẩn"
+msgstr "đọc tham số 'revision' từ stdin"
 
 msgid "limit the objects to those that are not yet packed"
 msgstr "giới hạn các đối tượng thành những cái mà chúng vẫn chưa được đóng gói"
@@ -8974,13 +9186,13 @@ msgid "include objects referred by reflog entries"
 msgstr "bao gồm các đối tượng được tham chiếu bởi các mục reflog"
 
 msgid "include objects referred to by the index"
-msgstr "bao gồm các đối tượng được tham chiếu bởi mục lục"
+msgstr "bao gồm các đối tượng được tham chiếu bởi chỉ mục"
 
 msgid "read packs from stdin"
-msgstr "đọc các gói từ đầu vào tiêu chuẩn"
+msgstr "đọc các gói từ stdin"
 
 msgid "output pack to stdout"
-msgstr "xuất gói ra đầu ra tiêu chuẩn"
+msgstr "xuất gói ra stdout"
 
 msgid "include tag objects that refer to objects to be packed"
 msgstr "bao gồm các đối tượng tham chiếu đến các đối tượng được đóng gói"
@@ -8993,16 +9205,16 @@ msgstr "pack mất các đối tượng không thể đọc được"
 
 msgid "unpack unreachable objects newer than <time>"
 msgstr ""
-"xả nén (gỡ khỏi gói) các đối tượng không thể đọc được mới hơn <thời-gian>"
+"giải nén (gỡ khỏi gói) các đối tượng không thể đọc được mới hơn <thời-gian>"
 
 msgid "create a cruft pack"
 msgstr "tạo gói cruft"
 
 msgid "expire cruft objects older than <time>"
-msgstr "các đối tượng cruft hết hạn cũ hơn khoảng <thời gian>"
+msgstr "các đối tượng cruft hết hạn cũ hơn <mốc thời gian>"
 
 msgid "use the sparse reachability algorithm"
-msgstr "sử dụng thuật toán “sparse reachability”"
+msgstr "sử dụng thuật toán 'sparse reachability'"
 
 msgid "create thin packs"
 msgstr "tạo gói nhẹ"
@@ -9020,25 +9232,25 @@ msgid "pack compression level"
 msgstr "mức nén gói"
 
 msgid "do not hide commits by grafts"
-msgstr "không ẩn các lần chuyển giao bởi “grafts”"
+msgstr "không ẩn các lần chuyển giao bởi 'grafts'"
 
 msgid "use a bitmap index if available to speed up counting objects"
-msgstr "dùng mục lục ánh xạ nếu có thể được để nâng cao tốc độ đếm đối tượng"
+msgstr "dùng chỉ mục ánh xạ nếu có thể được để nâng cao tốc độ đếm đối tượng"
 
 msgid "write a bitmap index together with the pack index"
-msgstr "ghi một mục lục ánh xạ cùng với mục lục gói"
+msgstr "ghi một chỉ mục ánh xạ cùng với chỉ mục gói"
 
 msgid "write a bitmap index if possible"
-msgstr "ghi mục lục ánh xạ nếu được"
+msgstr "ghi chỉ mục ánh xạ nếu được"
 
 msgid "handling for missing objects"
 msgstr "xử lý cho thiếu đối tượng"
 
 msgid "do not pack objects in promisor packfiles"
-msgstr "không thể đóng gói các đối tượng trong các tập tin gói hứa hẹn"
+msgstr "không thể đóng gói các đối tượng trong các tập tin gói promisor"
 
 msgid "respect islands during delta compression"
-msgstr "tôn trọng island trong suốt quá trình nén “delta”"
+msgstr "tôn trọng island trong suốt quá trình nén 'delta'"
 
 msgid "protocol"
 msgstr "giao thức"
@@ -9048,7 +9260,7 @@ msgstr "loại trừ bất kỳ cấu hình uploadpack.blobpackfileuri với gia
 
 #, c-format
 msgid "delta chain depth %d is too deep, forcing %d"
-msgstr "mức sau xích delta %d là quá sâu, buộc dùng %d"
+msgstr "mức delta chain %d là quá sâu, buộc dùng %d"
 
 #, c-format
 msgid "pack.deltaCacheLimit is too high, forcing %d"
@@ -9066,36 +9278,30 @@ msgid "minimum pack size limit is 1 MiB"
 msgstr "giới hạn kích thước tối thiểu của gói là 1 MiB"
 
 msgid "--thin cannot be used to build an indexable pack"
-msgstr "--thin không thể được dùng để xây dựng gói đánh mục lục được"
-
-msgid "cannot use --filter without --stdout"
-msgstr "không thể dùng tùy chọn --filter mà không có --stdout"
+msgstr "không thể dùng --thin để xây dựng gói đánh chỉ mục được"
 
 msgid "cannot use --filter with --stdin-packs"
 msgstr "không thể dùng tùy chọn --filter với --stdin-packs"
 
 msgid "cannot use internal rev list with --stdin-packs"
-msgstr "không thể dùng danh sách rev bên trong với --stdin-packs"
+msgstr "không thể dùng danh sách rev nội bộ với --stdin-packs"
 
 msgid "cannot use internal rev list with --cruft"
-msgstr "không thể dùng danh sách rev bên trong với --cruft"
+msgstr "không thể dùng danh sách rev nội bộ với --cruft"
 
 msgid "cannot use --stdin-packs with --cruft"
-msgstr "không thể dùng tùy chọn --stdin-packs  với --cruft"
-
-msgid "cannot use --max-pack-size with --cruft"
-msgstr "không thể dùng tùy chọn --max-pack-size với --cruft"
+msgstr "không thể dùng tùy chọn --stdin-packs với --cruft"
 
 msgid "Enumerating objects"
-msgstr "Đánh số các đối tượng"
+msgstr "Duyệt các đối tượng"
 
 #, c-format
 msgid ""
 "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
-"reused %<PRIu32>"
+"reused %<PRIu32> (from %<PRIuMAX>)"
 msgstr ""
-"Tổng %<PRIu32> (delta %<PRIu32>), dùng lại %<PRIu32> (delta %<PRIu32>), pack-"
-"reused %<PRIu32>"
+"Tổng %<PRIu32> (delta %<PRIu32>), dùng lại %<PRIu32> (delta %<PRIu32>),dùng "
+"lại pack %<PRIu32> (trong số %<PRIuMAX>)"
 
 msgid ""
 "'git pack-redundant' is nominated for removal.\n"
@@ -9104,14 +9310,21 @@ msgid ""
 "and let us know you still use it by sending an e-mail\n"
 "to <git@vger.kernel.org>.  Thanks.\n"
 msgstr ""
-"“git pack-redundant” được đề cử để loại bỏ.\n"
-"Nếu bạn vẫn sử dụng lệnh này, vui lòng bổ sung\n"
-"thêm một tùy chọn, “--i-still-use-this”, trên dòng lệnh\n"
+"'git pack-redundant' đã được đề cử để loại bỏ.\n"
+"Nếu bạn vẫn còn sử dụng lệnh này, vui lòng bổ sung\n"
+"thêm một tùy chọn, '--i-still-use-this', trên dòng lệnh\n"
 "và cho chúng tôi biết bạn vẫn sử dụng nó bằng cách gửi e-mail\n"
-"đến <git@vger.kernel.org>.  Cảm ơn.\n"
+"đến <git@vger.kernel.org>. Xin cảm ơn.\n"
 
-msgid "git pack-refs [<options>]"
-msgstr "git pack-refs [<các tùy chọn>]"
+msgid "refusing to run without --i-still-use-this"
+msgstr "từ chối chạy lệnh này mà không có --i-still-use-this"
+
+msgid ""
+"git pack-refs [--all] [--no-prune] [--auto] [--include <pattern>] [--exclude "
+"<pattern>]"
+msgstr ""
+"git pack-refs [--all] [--no-prune] [--auto] [--include <pattern>] [--exclude "
+"<pattern>]"
 
 msgid "pack everything"
 msgstr "đóng gói mọi thứ"
@@ -9119,23 +9332,45 @@ msgstr "đóng gói mọi thứ"
 msgid "prune loose refs (default)"
 msgstr "prune (cắt cụt) những tham chiếu bị mất (mặc định)"
 
+msgid "auto-pack refs as needed"
+msgstr "tự động pack tham chiếu nếu cần"
+
+msgid "references to include"
+msgstr "bao gồm các tham chiếu"
+
+msgid "references to exclude"
+msgstr "loại trừ các tham chiếu"
+
+msgid "git patch-id [--stable | --unstable | --verbatim]"
+msgstr "git patch-id [--stable | --unstable | --verbatim]"
+
+msgid "use the unstable patch-id algorithm"
+msgstr "sử dụng thuật toán patch-id unstable"
+
+msgid "use the stable patch-id algorithm"
+msgstr "sử dụng thuật toán patch-id stable"
+
+msgid "don't strip whitespace from the patch"
+msgstr "không lược bỏ khoảng trắng thừa từ bản vá"
+
 msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
-msgstr "git prune [-n] [-v] [--progress] [--expire <thời-gian>] [--] [<head>…]"
+msgstr ""
+"git prune [-n] [-v] [--progress] [--expire <thời-gian>] [--] [<head>...]"
 
 msgid "report pruned objects"
-msgstr "báo cáo các đối tượng đã prune"
+msgstr "liệt kê các đối tượng đã prune"
 
 msgid "expire objects older than <time>"
 msgstr "các đối tượng hết hạn cũ hơn khoảng <thời gian>"
 
 msgid "limit traversal to objects outside promisor packfiles"
-msgstr "giới hạn giao đến các đối tượng nằm ngoài các tập tin gói hứa hẹn"
+msgstr "giới hạn giao đến các đối tượng nằm ngoài các tập tin gói promisor"
 
 msgid "cannot prune in a precious-objects repo"
 msgstr "không thể tỉa bớt trong một kho đối_tượng_vĩ_đại"
 
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
-msgstr "git pull [<các tùy chọn>] [<kho-chứa> [<refspec>]]"
+msgstr "git pull [<các tùy chọn>] [<kho-chứa> [<refspec>...]]"
 
 msgid "control for recursive fetching of submodules"
 msgstr "điều khiển việc lấy về đệ quy của các mô-đun-con"
@@ -9164,6 +9399,12 @@ msgstr "ép buộc ghi đè lên nhánh nội bộ"
 msgid "number of submodules pulled in parallel"
 msgstr "số lượng mô-đun-con được đẩy lên đồng thời"
 
+msgid "use IPv4 addresses only"
+msgstr "chỉ dùng địa chỉ IPv4"
+
+msgid "use IPv6 addresses only"
+msgstr "chỉ dùng địa chỉ IPv6"
+
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
@@ -9181,9 +9422,9 @@ msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
 msgstr ""
-"Đại thể điều này có nghĩa là bạn đã cung cấp đặc tả đường dẫn dạng dùng ký "
+"Đại khái điều này có nghĩa là bạn đã cung cấp đặc tả đường dẫn dạng dùng ký "
 "tự\n"
-"đại diện mà nó lại không khớp trên điểm cuối máy phục vụ."
+"đại diện mà nó lại không khớp trên điểm cuối máy chủ."
 
 #, c-format
 msgid ""
@@ -9191,16 +9432,16 @@ msgid ""
 "a branch. Because this is not the default configured remote\n"
 "for your current branch, you must specify a branch on the command line."
 msgstr ""
-"Bạn yêu cầu pull từ máy dịch vụ “%s”, nhưng lại chưa chỉ định\n"
-"nhánh nào. Bởi vì đây không phải là máy dịch vụ được cấu hình\n"
-"theo mặc định cho nhánh hiện tại của bạn, bạn phải chỉ định\n"
+"Bạn yêu cầu pull từ máy dịch vụ '%s', nhưng lại chưa chỉ định\n"
+"nhánh nào. Bởi vì đây không phải là máy chủ được cấu hình\n"
+"mặc định cho nhánh hiện tại của bạn, bạn phải chỉ định\n"
 "một nhánh trên dòng lệnh."
 
 msgid "You are not currently on a branch."
-msgstr "Hiện tại bạn chẳng ở nhánh nào cả."
+msgstr "Hiện tại bạn đang không ở trên nhánh nào."
 
 msgid "Please specify which branch you want to rebase against."
-msgstr "Vui lòng chỉ định nhánh nào bạn muốn cải tổ lại."
+msgstr "Vui lòng chỉ định nhánh bạn muốn cải tổ lại."
 
 msgid "Please specify which branch you want to merge with."
 msgstr "Vui lòng chỉ định nhánh nào bạn muốn hòa trộn vào."
@@ -9220,22 +9461,23 @@ msgstr "Ở đây không có thông tin theo dõi cho nhánh hiện hành."
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:"
 msgstr ""
-"Nếu bạn muốn theo dõi thông tin cho nhánh này bạn có thể thực hiện bằng lệnh:"
+"Nếu bạn muốn thiết lập thông tin theo dõi cho nhánh này bạn có thể thực hiện "
+"bằng lệnh:"
 
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
 "from the remote, but no such ref was fetched."
 msgstr ""
-"Các đặc tả cấu hình của bạn để hòa trộn với tham chiếu “%s”\n"
-"từ máy dịch vụ, nhưng không có nhánh nào như thế được lấy về."
+"Cấu hình của bạn nói cần hòa trộn với tham chiếu '%s'\n"
+"từ máy dịch vụ, nhưng không có tham chiếu nào như thế được lấy về."
 
 #, c-format
 msgid "unable to access commit %s"
-msgstr "không thể truy cập lần chuyển giao “%s”"
+msgstr "không thể truy cập lần chuyển giao '%s'"
 
 msgid "ignoring --verify-signatures for rebase"
-msgstr "bỏ qua --verify-signatures khi rebase"
+msgstr "bỏ qua --verify-signatures khi cải tổ"
 
 msgid ""
 "You have divergent branches and need to specify how to reconcile them.\n"
@@ -9252,31 +9494,30 @@ msgid ""
 "or --ff-only on the command line to override the configured default per\n"
 "invocation.\n"
 msgstr ""
-"Bạn có các nhánh phân kỳ và cần chỉ định cách hòa hợp chúng.\n"
-"Bạn có thể làm như vậy bằng cách chạy một trong những lệnh sau đây\n"
-"thỉnh thoảng trước khi thực hiện lệnh pull tiếp theo của bạn:\n"
+"Bạn có các nhánh phân kỳ và cần chỉ định cách hợp nhất chúng.\n"
+"Bạn có thể làm vậy bằng cách chạy một trong những lệnh sau đây\n"
+"trước khi thực hiện lệnh pull tiếp theo của bạn:\n"
 "\n"
-"  git config pull.rebase false  # merge\n"
-"  git config pull.rebase true   # rebase\n"
-"  git config pull.ff only       # chỉ fast-forward\n"
+"  git config pull.rebase false  # hợp nhất\n"
+"  git config pull.rebase true   # cải tổ\n"
+"  git config pull.ff only       # chỉ chuyển tiếp nhanh\n"
 "\n"
 "Bạn có thể thay thế \"git config\" với \"git config --global\" để thiết lập "
 "mặc định\n"
-"ưu tiên cho tất cả các kho. Bạn cũng có thể chuyển qua --rebase, --no-"
-"rebase,\n"
-"hoặc --ff-only trên dòng lệnh để ghi đè các mặc định đã cấu hình cho mỗi\n"
+"ưu tiên cho tất cả các kho. Bạn cũng có thể chỉ định --rebase, --no-rebase,\n"
+"hoặc --ff-only trên dòng lệnh để ghi đè cấu hình mặc định cho từng\n"
 "lần gọi.\n"
 
 msgid "Updating an unborn branch with changes added to the index."
 msgstr ""
-"Đang cập nhật một nhánh chưa được sinh ra với các thay đổi được thêm vào "
-"bảng mục lục."
+"Đang cập nhật một nhánh chưa được sinh ra từ các thay đổi được thêm vào mục "
+"lục."
 
 msgid "pull with rebase"
 msgstr "pull với rebase"
 
-msgid "please commit or stash them."
-msgstr "xin hãy chuyển giao hoặc tạm cất (stash) chúng."
+msgid "Please commit or stash them."
+msgstr "Xin hãy chuyển giao hoặc tạm cất chúng."
 
 #, c-format
 msgid ""
@@ -9286,7 +9527,7 @@ msgid ""
 msgstr ""
 "fetch đã cập nhật head nhánh hiện tại.\n"
 "đang chuyển-tiếp-nhanh cây làm việc của bạn từ\n"
-"lần chuyển giaot %s."
+"lần chuyển giao %s."
 
 #, c-format
 msgid ""
@@ -9299,30 +9540,29 @@ msgid ""
 msgstr ""
 "Không thể chuyển tiếp nhanh cây làm việc của bạn.\n"
 "Sau khi chắc chắn rằng mình đã ghi lại mọi thứ\n"
-"quý báu từ kết xuất của lệnh\n"
+"quan trọng từ đầu ra của lệnh\n"
 "$ git diff %s\n"
 "chạy\n"
 "$ git reset --hard\n"
-"để khôi phục lại."
+"để khôi phục."
 
 msgid "Cannot merge multiple branches into empty head."
-msgstr "Không thể hòa trộn nhiều nhánh vào trong một head trống rỗng."
+msgstr "Không thể hòa trộn nhiều nhánh vào một head trống rỗng."
 
 msgid "Cannot rebase onto multiple branches."
-msgstr "Không thể thực hiện lệnh rebase (cải tổ) trên nhiều nhánh."
+msgstr "Không thể thực hiện lệnh cải tổ trên nhiều nhánh."
 
 msgid "Cannot fast-forward to multiple branches."
 msgstr "Không thể thực hiện chuyển tiếp nhanh trên nhiều nhánh."
 
 msgid "Need to specify how to reconcile divergent branches."
-msgstr "Caanfchir định làm thế nào để giải quyết các nhánh phân kỳ."
+msgstr "Cần chỉ định làm thế nào để giải quyết các nhánh phân kỳ."
 
 msgid "cannot rebase with locally recorded submodule modifications"
-msgstr ""
-"không thể cải tổ với các thay đổi mô-đun-con được ghi lại một cách cục bộ"
+msgstr "không thể cải tổ với các thay đổi submodule cục bộ"
 
 msgid "git push [<options>] [<repository> [<refspec>...]]"
-msgstr "git push [<các tùy chọn>] [<kho-chứa> [<refspec>]]"
+msgstr "git push [<các tùy chọn>] [<kho-chứa> [<refspec>...]]"
 
 msgid "tag shorthand without <tag>"
 msgstr "dùng tốc ký thẻ không có <thẻ>"
@@ -9335,14 +9575,13 @@ msgid ""
 "To choose either option permanently, see push.default in 'git help config'.\n"
 msgstr ""
 "\n"
-"Để chọn mỗi tùy chọn một cách cố định, xem push.default trong git help "
-"config.\n"
+"Để chọn mỗi tùy chọn một cách cố định, xem push.default trong 'git help "
+"config'.\n"
 
 msgid ""
 "\n"
-"To avoid automatically configuring upstream branches when their name\n"
-"doesn't match the local branch, see option 'simple' of branch."
-"autoSetupMerge\n"
+"To avoid automatically configuring an upstream branch when its name\n"
+"won't match the local branch, see option 'simple' of branch.autoSetupMerge\n"
 "in 'git help config'.\n"
 msgstr ""
 "\n"
@@ -9407,8 +9646,7 @@ msgid ""
 "%s"
 msgstr ""
 "Nhánh hiện tại %s không có nhánh thượng nguồn nào.\n"
-"Để push (đẩy lên) nhánh hiện tại và đặt máy chủ này làm thượng nguồn "
-"(upstream), sử dụng\n"
+"Để đẩy lên nhánh hiện tại và đặt máy chủ này làm thượng nguồn, sử dụng\n"
 "\n"
 "    git push --set-upstream %s %s\n"
 "%s"
@@ -9420,8 +9658,8 @@ msgstr "Nhánh hiện tại %s có nhiều nhánh thượng nguồn, từ chối
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr ""
-"Bạn đã không chỉ ra một refspecs nào để đẩy lên, và push.default là \"không "
-"là gì cả\"."
+"Bạn đã không chỉ ra một refspecs nào để đẩy lên, và push.default "
+"là\"nothing\"."
 
 #, c-format
 msgid ""
@@ -9429,48 +9667,46 @@ msgid ""
 "your current branch '%s', without telling me what to push\n"
 "to update which remote branch."
 msgstr ""
-"Bạn đang push (đẩy lên) máy chủ “%s”, mà nó không phải là thượng nguồn "
-"(upstream) của\n"
-"nhánh hiện tại “%s” của bạn, mà không báo cho tôi biết là cái gì được push\n"
-"để cập nhật nhánh máy chủ nào."
+"Bạn đang đẩy lên máy chủ '%s', không phải là thượng nguồn của\n"
+"nhánh hiện tại '%s' của bạn, mà không báo cho tôi biết là cần đẩy lên\n"
+"nhánh nào để cập nhật nhánh nào."
 
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
-"its remote counterpart. Integrate the remote changes (e.g.\n"
-"'git pull ...') before pushing again.\n"
+"its remote counterpart. If you want to integrate the remote changes,\n"
+"use 'git pull' before pushing again.\n"
 "See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
-"Viá»\87c cập nhật bá»\8b từ chá»\91i bá»\9fi vì Ä\91ầu mút của nhánh hiá»\87n tại của bạn nằm Ä\91ằng\n"
-"sau bộ phận tương ứng của máy chủ. Hòa trộn với các thay đổi từ máy chủ\n"
-"(v.d. \"git pull …\") trước khi đẩy lên lần nữa.\n"
-"Xem “Note about fast-forwards” trong “git push --help” để có thông tin chi "
+"Viá»\87c cập nhật bá»\8b từ chá»\91i bá»\9fi vì Ä\91á»\89nh của nhánh hiá»\87n tại của bạn Ä\91ứng sau\n"
+"nhánh tương ứng của máy chủ. Nếu bạn cần hòa trộn với các thay đổi từ\n"
+"máy chủ, hãy chạy 'git pull' trước khi đẩy lên.\n"
+"Xem 'Note about fast-forwards' trong 'git push --help' để biết thông tin chi "
 "tiết."
 
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
-"counterpart. Check out this branch and integrate the remote changes\n"
-"(e.g. 'git pull ...') before pushing again.\n"
+"counterpart. If you want to integrate the remote changes, use 'git pull'\n"
+"before pushing again.\n"
 "See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
-"Việc cập nhật bị từ chối bởi vì đầu mút của nhánh đã đẩy lên nằm đằng sau "
-"bộ\n"
-"phận tương ứng của máy chủ. Checkou nhánh này và hòa trộn với các thay đổi\n"
-"từ máy chủ (v.d. “git pull …”) trước khi lại push lần nữa.\n"
-"Xem “Note about fast-forwards” trong “git push --help” để có thông tin chi "
+"Việc cập nhật bị từ chối bởi vì đỉnh của nhánh đã đẩy lên đứng sau\n"
+"nhánh tương ứng của máy chủ. Nếu bạn cần hòa trộn với các thay đổi từ\n"
+"máy chủ, hãy chạy 'git pull' trước khi đẩy lên.\n"
+"Xem 'Note about fast-forwards' trong 'git push --help' để biết thông tin chi "
 "tiết."
 
 msgid ""
-"Updates were rejected because the remote contains work that you do\n"
-"not have locally. This is usually caused by another repository pushing\n"
-"to the same ref. You may want to first integrate the remote changes\n"
-"(e.g., 'git pull ...') before pushing again.\n"
+"Updates were rejected because the remote contains work that you do not\n"
+"have locally. This is usually caused by another repository pushing to\n"
+"the same ref. If you want to integrate the remote changes, use\n"
+"'git pull' before pushing again.\n"
 "See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
-"Việc cập nhật bị từ chối bởi vì máy chủ có chứa công việc mà bạn không\n"
-"có ở máy nội bộ của mình. Lỗi này thường có nguyên nhân bởi kho khác đẩy\n"
-"dữ liệu lên cùng một tham chiếu. Bạn có lẽ muốn hòa trộn với các thay đổi\n"
-"từ máy chủ (v.d. “git pull…”) trước khi lại push lần nữa.\n"
-"Xem “Note about fast-forwards” trong “git push --help” để có thông tin chi "
+"Việc cập nhật bị từ chối bởi vì máy chủ có chứa thay đổi mà bạn không\n"
+"có ở nhánh của mình. Lỗi này thường xảy ra khi kho khác đẩy dữ liệu\n"
+"lên cùng một tham chiếu. Nếu bạn cần hòa trộn với các thay đổi từ\n"
+"máy chủ, hãy chạy 'git pull' trước khi đẩy lên.\n"
+"Xem 'Note about fast-forwards' trong 'git push --help' để biết thông tin chi "
 "tiết."
 
 msgid "Updates were rejected because the tag already exists in the remote."
@@ -9481,22 +9717,22 @@ msgid ""
 "or update a remote ref to make it point at a non-commit object,\n"
 "without using the '--force' option.\n"
 msgstr ""
-"Không thể cập nhật một tham chiếu trên máy chủ mà nó chỉ đến đối tượng "
-"không\n"
-"phải là lần chuyển giao, hoặc cập nhật một tham chiếu máy chủ để nó chỉ đến "
-"đối tượng\n"
-"không phải chuyển giao, mà không sử dụng tùy chọn “--force”.\n"
+"Không thể cập nhật tham chiếu trên máy chủ đang chỉ đến đối tượng không\n"
+"phải là lần chuyển giao, hoặc cập nhật tham chiếu trên máy chủ để nó\n"
+"chỉ đến đối tượng không phải lần chuyển giao, mà không sử dụng\n"
+"tùy chọn '--force'.\n"
 
 msgid ""
-"Updates were rejected because the tip of the remote-tracking\n"
-"branch has been updated since the last checkout. You may want\n"
-"to integrate those changes locally (e.g., 'git pull ...')\n"
-"before forcing an update.\n"
+"Updates were rejected because the tip of the remote-tracking branch has\n"
+"been updated since the last checkout. If you want to integrate the\n"
+"remote changes, use 'git pull' before pushing again.\n"
+"See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
-"Việc cập nhật bị từ chối bởi vì đầu mút của nhánh theo dõi máy chủ\n"
-"đã được cập nhật kể từ sau lần lấy ra cuối cùng. Bạn có lẽ muốn\n"
-"tích hợp các thay đổi này một cách cục bộ (v.d. \"git pull …\")\n"
-"trước khi ép buộc một cập nhật.\n"
+"Việc cập nhật bị từ chối bởi vì đỉnh của nhánh theo dõi máy chủ đã được\n"
+"cập nhật sau lần checkout trước. Nếu bạn cần hòa trộn với các thay đổi từ\n"
+"máy chủ, hãy chạy 'git pull' trước khi đẩy lên.\n"
+"Xem 'Note about fast-forwards' trong 'git push --help' để biết thông tin chi "
+"tiết."
 
 #, c-format
 msgid "Pushing to %s\n"
@@ -9504,7 +9740,13 @@ msgstr "Đang đẩy lên %s\n"
 
 #, c-format
 msgid "failed to push some refs to '%s'"
-msgstr "gặp lỗi khi đẩy tới một số tham chiếu đến “%s”"
+msgstr "gặp lỗi khi đẩy tới một số tham chiếu đến '%s'"
+
+msgid ""
+"recursing into submodule with push.recurseSubmodules=only; using on-demand "
+"instead"
+msgstr ""
+"đệ quy vào mô-đun con với push.recurseSubmodules=only; thay bằng on-demand"
 
 #, c-format
 msgid "invalid value for '%s'"
@@ -9513,17 +9755,17 @@ msgstr "giá trị cho '%s' không hợp lệ"
 msgid "repository"
 msgstr "kho"
 
-msgid "push all refs"
-msgstr "đẩy tất cả các tham chiếu"
+msgid "push all branches"
+msgstr "đẩy tất cả các nhánh"
 
 msgid "mirror all refs"
-msgstr "mirror tất cả các tham chiếu"
+msgstr "sao tất cả các tham chiếu"
 
 msgid "delete refs"
 msgstr "xóa các tham chiếu"
 
-msgid "push tags (can't be used with --all or --mirror)"
-msgstr "đẩy các thẻ (không dùng cùng với --all hay --mirror)"
+msgid "push tags (can't be used with --all or --branches or --mirror)"
+msgstr "đẩy các thẻ (không dùng cùng với --all hay --branches hay --mirror)"
 
 msgid "force updates"
 msgstr "ép buộc cập nhật"
@@ -9538,7 +9780,7 @@ msgid "require remote updates to be integrated locally"
 msgstr "yêu cầu máy chủ cập nhật để thích hợp với máy cục bộ"
 
 msgid "control recursive pushing of submodules"
-msgstr "điều khiển việc đẩy lên (push) đệ qui của mô-đun-con"
+msgstr "điều khiển việc đẩy lên (push) đệ quy của mô-đun-con"
 
 msgid "use thin pack"
 msgstr "tạo gói nhẹ"
@@ -9569,7 +9811,7 @@ msgstr "--delete không hợp lý nếu không có bất kỳ tham chiếu nào"
 
 #, c-format
 msgid "bad repository '%s'"
-msgstr "repository (kho) sai “%s”"
+msgstr "repository (kho) sai '%s'"
 
 msgid ""
 "No configured push destination.\n"
@@ -9605,7 +9847,7 @@ msgstr ""
 "git range-diff [<các tùy chọn>] <old-base>..<old-tip> <new-base>..<new-tip>"
 
 msgid "git range-diff [<options>] <old-tip>...<new-tip>"
-msgstr "git range-diff [<các tùy chọn>] <old-tip><new-tip>"
+msgstr "git range-diff [<các tùy chọn>] <old-tip>...<new-tip>"
 
 msgid "git range-diff [<options>] <base> <old-tip> <new-tip>"
 msgstr "git range-diff [<các tùy chọn>] <base> <old-tip> <new-tip>"
@@ -9617,7 +9859,7 @@ msgid "notes"
 msgstr "ghi chú"
 
 msgid "passed to 'git log'"
-msgstr "chuyển cho “git log”"
+msgstr "chuyển cho 'git log'"
 
 msgid "only emit output related to the first range"
 msgstr "chỉ phát ra kết xuất liên quan đến vùng đầu tiên"
@@ -9625,30 +9867,37 @@ msgstr "chỉ phát ra kết xuất liên quan đến vùng đầu tiên"
 msgid "only emit output related to the second range"
 msgstr "chỉ phát ra kết xuất liên quan đến vùng thứ hai"
 
+#, c-format
+msgid "not a revision: '%s'"
+msgstr "không phải một revision '%s'"
+
 #, c-format
 msgid "not a commit range: '%s'"
-msgstr "không phải là vùng chuyển giao: “%s”"
+msgstr "không phải là vùng chuyển giao: '%s'"
 
-msgid "single arg format must be symmetric range"
-msgstr "định dạng đối số đơn phải là một vùng đối xứng"
+#, c-format
+msgid "not a symmetric range: '%s'"
+msgstr "không phải là vùng tương xứng: '%s'"
 
 msgid "need two commit ranges"
-msgstr "cần hai vùng lần chuyển giao"
+msgstr "cần hai vùng chuyển giao"
 
 msgid ""
-"git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>) "
-"[-u | -i]] [--no-sparse-checkout] [--index-output=<file>] (--empty | <tree-"
-"ish1> [<tree-ish2> [<tree-ish3>]])"
-msgstr ""
 "git read-tree [(-m [--trivial] [--aggressive] | --reset | --"
-"prefix=<tiền_tố>) [-u | -i]] [--no-sparse-checkout] [--index-"
-"output=<tập_tin>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
+"prefix=<prefix>)\n"
+"              [-u | -i]] [--index-output=<file>] [--no-sparse-checkout]\n"
+"              (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
+msgstr ""
+"git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<tiền "
+"tố>)\n"
+"              [-u | -i]] [--index-output=<tập tin>] [--no-sparse-checkout]\n"
+"              (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
 
 msgid "write resulting index to <file>"
-msgstr "ghi mục lục kết quả vào <tập-tin>"
+msgstr "ghi chỉ mục kết quả vào <tập-tin>"
 
 msgid "only empty the index"
-msgstr "chỉ với bảng mục lục trống rỗng"
+msgstr "chỉ với chỉ mục trống rỗng"
 
 msgid "Merging"
 msgstr "Hòa trộn"
@@ -9658,10 +9907,10 @@ msgstr "thực hiện một hòa trộn thêm vào việc đọc"
 
 msgid "3-way merge if no file level merging required"
 msgstr ""
-"hòa trộn kiểu “3-way” nếu không có tập tin mức hòa trộn nào được yêu cầu"
+"hòa trộn kiểu '3-way' nếu không có tập tin mức hòa trộn nào được yêu cầu"
 
 msgid "3-way merge in presence of adds and removes"
-msgstr "hòa trộn 3-way trong sự hiện diện của “adds” và “removes”"
+msgstr "hòa trộn 3-way trong sự hiện diện của 'adds' và 'removes'"
 
 msgid "same as -m, but discard unmerged entries"
 msgstr "giống với -m, nhưng bỏ qua các mục chưa được hòa trộn"
@@ -9670,7 +9919,7 @@ msgid "<subdirectory>/"
 msgstr "<thư-mục-con>/"
 
 msgid "read the tree into the index under <subdirectory>/"
-msgstr "đọc cây vào trong bảng mục lục dưới <thư_mục_con>/"
+msgstr "đọc cây vào trong chỉ mục dưới <thư_mục_con>/"
 
 msgid "update working tree with merge result"
 msgstr "cập nhật cây làm việc với kết quả hòa trộn"
@@ -9679,25 +9928,25 @@ msgid "gitignore"
 msgstr "gitignore"
 
 msgid "allow explicitly ignored files to be overwritten"
-msgstr "cho phép các tập tin rõ ràng bị lờ đi được ghi đè"
+msgstr "cho phép các tập tin rõ ràng bị bỏ qua được ghi đè"
 
 msgid "don't check the working tree after merging"
 msgstr "không kiểm tra cây làm việc sau hòa trộn"
 
 msgid "don't update the index or the work tree"
-msgstr "không cập nhật bảng mục lục hay cây làm việc"
+msgstr "không cập nhật chỉ mục hay cây làm việc"
 
 msgid "skip applying sparse checkout filter"
-msgstr "bỏ qua áp dụng bộ lọc lấy ra (checkout) thưa thớt"
+msgstr "bỏ qua áp dụng bộ lọc sparse checkout (checkout thưa)"
 
 msgid "debug unpack-trees"
-msgstr "gỡ lỗi “unpack-trees”"
+msgstr "gỡ lỗi 'unpack-trees'"
 
 msgid "suppress feedback messages"
 msgstr "không xuất các thông tin phản hồi"
 
 msgid "You need to resolve your current index first"
-msgstr "Bạn cần phải giải quyết bảng mục lục hiện tại của bạn trước đã"
+msgstr "Bạn cần phải giải quyết chỉ mục hiện tại của bạn trước đã"
 
 msgid ""
 "git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
@@ -9714,7 +9963,7 @@ msgstr ""
 
 #, c-format
 msgid "could not read '%s'."
-msgstr "không thể đọc “%s”."
+msgstr "không thể đọc '%s'."
 
 #, c-format
 msgid "could not create temporary %s"
@@ -9734,34 +9983,20 @@ msgid "%s requires the merge backend"
 msgstr "%s cần một ứng dụng hòa trộn chạy phía sau"
 
 #, c-format
-msgid "could not get 'onto': '%s'"
-msgstr "không thể đặt lấy “onto”: “%s”"
+msgid "invalid onto: '%s'"
+msgstr "onto không hợp lệ: '%s'"
 
 #, c-format
 msgid "invalid orig-head: '%s'"
-msgstr "orig-head không hợp lệ: “%s”"
+msgstr "orig-head không hợp lệ: '%s'"
 
 #, c-format
 msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
-msgstr "đang bỏ qua allow_rerere_autoupdate không hợp lệ: “%s”"
+msgstr "đang bỏ qua allow_rerere_autoupdate không hợp lệ: '%s'"
 
 #, c-format
 msgid "could not remove '%s'"
-msgstr "không thể gỡ bỏ “%s”"
-
-msgid ""
-"Resolve all conflicts manually, mark them as resolved with\n"
-"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
-"You can instead skip this commit: run \"git rebase --skip\".\n"
-"To abort and get back to the state before \"git rebase\", run \"git rebase --"
-"abort\"."
-msgstr ""
-"Giải quyết vấn đề này thủ công, hãy đanh dấu chúng đã được giải quyết bằng\n"
-"hãy chạy lệnh \"git add/rm <các_tập_tin_xung_đột>\", sau đó chạy \"git "
-"rebase --continue\".\n"
-"Bạn có thể bỏ qua miếng vá, chạy \"git rebase --skip\".\n"
-"Để bãi bỏ và quay trở lại trạng thái trước \"git rebase\", chạy \"git rebase "
-"--abort\"."
+msgstr "không thể gỡ bỏ '%s'"
 
 #, c-format
 msgid ""
@@ -9774,24 +10009,44 @@ msgid ""
 "As a result, git cannot rebase them."
 msgstr ""
 "\n"
-"git chạm trán một lỗi trong khi đang chuẩn bị các miếng vá để diễn lại\n"
+"git gặp phải một lỗi trong khi đang chuẩn bị các bản vá để diễn lại\n"
 "những điểm xét duyệt này:\n"
 "\n"
 "    %s\n"
 "\n"
-"Kết quả là git không thể cải tổ lại chúng."
+"Kết quả là, git không thể cải tổ lại chúng."
+
+#, c-format
+msgid "Unknown rebase-merges mode: %s"
+msgstr "Không hiểu chế độ cải tổ: %s"
 
 #, c-format
 msgid "could not switch to %s"
 msgstr "không thể chuyển đến %s"
 
+msgid "apply options and merge options cannot be used together"
+msgstr ""
+"không thể tổ hợp các tùy chọn áp dụng với các tùy chọn hòa trộn với nhau"
+
+msgid "--empty=ask is deprecated; use '--empty=stop' instead."
+msgstr "không cho dùng --empty=ask nữa; hãy thay thế bằng '--empty=stop'."
+
 #, c-format
 msgid ""
-"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
-"\"."
+"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and "
+"\"stop\"."
+msgstr ""
+"kiểu rỗng không được nhận dạng '%s'; giá trị hợp lệ là \"drop\", \"keep\", "
+"và \"stop\"."
+
+msgid ""
+"--rebase-merges with an empty string argument is deprecated and will stop "
+"working in a future version of Git. Use --rebase-merges without an argument "
+"instead, which does the same thing."
 msgstr ""
-"kiểu rỗng không được nhận dạng “%s”; giá trị hợp lệ là \"drop\", \"keep\", "
-"và \"ask\"."
+"--rebase-merges với tham số xâu rỗng được coi là lỗi thời và sẽ không còn "
+"hoạt động trong Git tương lai. Thay vào đó dùng --rebase-merges không có "
+"tham số, cho kết quả như nhau."
 
 #, c-format
 msgid ""
@@ -9803,10 +10058,10 @@ msgid ""
 "\n"
 msgstr ""
 "%s\n"
-"Vui lòng chỉ định nhánh nào bạn muốn cải tổ dựa vào.\n"
+"Vui lòng chỉ định nhánh nào bạn muốn cải tổ lên.\n"
 "Xem git-rebase(1) để biết thêm chi tiết.\n"
 "\n"
-"    git rebase “<nhánh>”\n"
+"    git rebase '<nhánh>'\n"
 "\n"
 
 #, c-format
@@ -9816,7 +10071,7 @@ msgid ""
 "    git branch --set-upstream-to=%s/<branch> %s\n"
 "\n"
 msgstr ""
-"Nếu bạn muốn theo dõi thông tin cho nhánh này bạn có thể thực hiện bằng "
+"Nếu bạn muốn đặt thông tin theo dõi cho nhánh này bạn có thể thực hiện bằng "
 "lệnh:\n"
 "\n"
 "    git branch --set-upstream-to=%s/<nhánh> %s\n"
@@ -9832,17 +10087,16 @@ msgid "rebase onto given branch instead of upstream"
 msgstr "cải tổ vào nhánh đã cho thay cho thượng nguồn"
 
 msgid "use the merge-base of upstream and branch as the current base"
-msgstr ""
-"sử dụng các cơ sở hòa trộn của thượng nguồn và nhánh như là cơ sở hiện tại"
+msgstr "sử dụng gốc hòa trộn của thượng nguồn và nhánh làm gốc hiện tại"
 
 msgid "allow pre-rebase hook to run"
 msgstr "cho phép móc (hook) pre-rebase được chạy"
 
 msgid "be quiet. implies --no-stat"
-msgstr "hãy im lặng. ý là --no-stat"
+msgstr "im lặng. ngụ ý --no-stat"
 
 msgid "display a diffstat of what changed upstream"
-msgstr "hiển thị một diffstat của những thay đổi thượng nguồn"
+msgstr "hiển thị diffstat của những thay đổi thượng nguồn"
 
 msgid "do not show diffstat of what changed upstream"
 msgstr "đừng hiển thị diffstat của những thay đổi thượng nguồn"
@@ -9860,10 +10114,10 @@ msgid "synonym of --reset-author-date"
 msgstr "đồng nghĩa với --reset-author-date"
 
 msgid "passed to 'git apply'"
-msgstr "chuyển cho “git apply”"
+msgstr "chuyển cho 'git apply'"
 
 msgid "ignore changes in whitespace"
-msgstr "lờ đi sự thay đổi do khoảng trắng gây ra"
+msgstr "bỏ qua sự thay đổi do khoảng trắng gây ra"
 
 msgid "cherry-pick all commits, even if unchanged"
 msgstr ""
@@ -9873,19 +10127,19 @@ msgid "continue"
 msgstr "tiếp tục"
 
 msgid "skip current patch and continue"
-msgstr "bỏ qua miếng vá hiện hành và tiếp tục"
+msgstr "bỏ qua bản vá hiện hành và tiếp tục"
 
 msgid "abort and check out the original branch"
-msgstr "bãi bỏ và lấy ra nhánh nguyên thủy"
+msgstr "huỷ bỏ và checkout nhánh gốc"
 
 msgid "abort but keep HEAD where it is"
-msgstr "bãi bỏ nhưng vẫn vẫn giữ HEAD chỉ đến nó"
+msgstr "huỷ bỏ nhưng vẫn vẫn giữ nguyên HEAD"
 
 msgid "edit the todo list during an interactive rebase"
-msgstr "sửa danh sách cần làm trong quá trình “rebase” (cải tổ) tương tác"
+msgstr "sửa danh sách cần làm trong quá trình 'rebase' (cải tổ) tương tác"
 
 msgid "show the patch file being applied or merged"
-msgstr "hiển thị miếng vá đã được áp dụng hay hòa trộn"
+msgstr "hiển thị bản vá đã được áp dụng hay hòa trộn"
 
 msgid "use apply strategies to rebase"
 msgstr "dùng chiến lược áp dụng để cải tổ"
@@ -9908,6 +10162,9 @@ msgstr "bỏ qua các lần chuyển giao mà nó bắt đầu trống rỗng"
 msgid "move commits that begin with squash!/fixup! under -i"
 msgstr "di chuyển các lần chuyển giao mà bắt đầu bằng squash!/fixup! dưới -i"
 
+msgid "update branches that point to commits that are being rebased"
+msgstr "cập nhật các nhánh trỏ đến commit đang được cải tổ"
+
 msgid "add exec lines after each commit of the editable list"
 msgstr "thêm các dòng thực thi sau từng lần chuyển giao của danh sách sửa được"
 
@@ -9918,7 +10175,7 @@ msgid "try to rebase merges instead of skipping them"
 msgstr "cố thử cải tổ các hòa trộn thay vì bỏ qua chúng"
 
 msgid "use 'merge-base --fork-point' to refine upstream"
-msgstr "dùng “merge-base --fork-point” để định nghĩa lại thượng nguồn"
+msgstr "dùng 'merge-base --fork-point' để định nghĩa lại thượng nguồn"
 
 msgid "use the given merge strategy"
 msgstr "dùng chiến lược hòa trộn đã cho"
@@ -9933,7 +10190,7 @@ msgid "rebase all reachable commits up to the root(s)"
 msgstr "cải tổ tất các các lần chuyển giao cho đến root"
 
 msgid "automatically re-schedule any `exec` that fails"
-msgstr "lập lịch lại một cách tự động bất kỳ “exec“ bị lỗi"
+msgstr "lập lịch lại một cách tự động bất kỳ 'exec' bị lỗi"
 
 msgid "apply all changes, even those already present upstream"
 msgstr ""
@@ -9941,7 +10198,7 @@ msgstr ""
 
 msgid "It looks like 'git am' is in progress. Cannot rebase."
 msgstr ""
-"Hình như đang trong quá trình thực hiện lệnh “git am”. Không thể rebase."
+"Hình như đang trong quá trình thực hiện lệnh 'git am'. Không thể rebase."
 
 msgid ""
 "`rebase --preserve-merges` (-p) is no longer supported.\n"
@@ -9949,7 +10206,7 @@ msgid ""
 "Or downgrade to v2.33, or earlier, to complete the rebase."
 msgstr ""
 "`rebase --preserve-merges` (-p) không còn được hỗ trợ nữa.\n"
-"Dùng `git rebase --abort` để chấm dứt việc cải tổ hiện tại.\n"
+"Dùng `git rebase --abort` để kết thúc việc cải tổ hiện tại.\n"
 "Hoặc là hạ phiên bản phần mềm xuống v2.33,\n"
 "hoặc trước nữa, để hoàn thành việc cải tổ."
 
@@ -9963,12 +10220,12 @@ msgstr ""
 "'preserve',\n"
 "cái mà giờ không còn được hỗ trợ nữa; dùng 'merges' để thay thế"
 
-msgid "No rebase in progress?"
-msgstr "Không có tiến trình rebase nào phải không?"
+msgid "no rebase in progress"
+msgstr "không có cải tổ đang được thực hiện"
 
 msgid "The --edit-todo action can only be used during interactive rebase."
 msgstr ""
-"Hành động “--edit-todo” chỉ có thể dùng trong quá trình “rebase” (sửa lịch "
+"Hành động '--edit-todo' chỉ có thể dùng trong quá trình 'rebase' (sửa lịch "
 "sử) tương tác."
 
 msgid "Cannot read HEAD"
@@ -10000,67 +10257,67 @@ msgid ""
 "valuable there.\n"
 msgstr ""
 "Hình như là ở đây sẵn có một thư mục %s, và\n"
-"Tôi tự hỏi có phải bạn đang ở giữa một lệnh rebase khác. Nếu đúng là\n"
+"có lẽ bạn đang ở giữa một lệnh rebase khác. Nếu đúng là\n"
 "như vậy, xin hãy thử\n"
 "\t%s\n"
 "Nếu không phải thế, hãy thử\n"
 "\t%s\n"
-"và chạy TÔI lần nữa. TÔI dừng lại trong trường hợp bạn vẫn\n"
-"có má»\99t sá»\91 thứ quý giá ở đây.\n"
+"và chạy TÔI lần nữa. TÔI sẽ dừng lại vì có khả năng bạn vẫn\n"
+"còn má»\99t sá»\91 thứ quan trá»\8dng ở đây.\n"
 
 msgid "switch `C' expects a numerical value"
-msgstr "tùy chọn “%c” cần một giá trị bằng số"
-
-#, c-format
-msgid "Unknown mode: %s"
-msgstr "Không hiểu chế độ: %s"
+msgstr "tùy chọn '%c' cần một giá trị bằng số"
 
-msgid "--strategy requires --merge or --interactive"
-msgstr "--strategy cần --merge hay --interactive"
+msgid ""
+"apply options are incompatible with rebase.rebaseMerges.  Consider adding --"
+"no-rebase-merges"
+msgstr ""
+"tuỳ chọn apply không tương thích với rebase.rebaseMerges. Cân nhắc dùng --no-"
+"rebase-merges"
 
-msgid "apply options and merge options cannot be used together"
+msgid ""
+"apply options are incompatible with rebase.updateRefs.  Consider adding --no-"
+"update-refs"
 msgstr ""
-"không thể tổ hợp các tùy chọn áp dụng với các tùy chọn hòa trộn với nhau"
+"tuỳ chọn apply không tương thích với rebase.updateRefs. Cân nhắc dùng --no-"
+"update-refs"
 
 #, c-format
 msgid "Unknown rebase backend: %s"
-msgstr "Không hiểu ứng dụng chạy phía sau lệnh cải tổ: %s"
+msgstr "Không hiểu backend cải tổ: %s"
 
 msgid "--reschedule-failed-exec requires --exec or --interactive"
 msgstr "--reschedule-failed-exec cần --exec hay --interactive"
 
 #, c-format
 msgid "invalid upstream '%s'"
-msgstr "thượng nguồn không hợp lệ “%s”"
+msgstr "thượng nguồn không hợp lệ '%s'"
 
 msgid "Could not create new root commit"
 msgstr "Không thể tạo lần chuyển giao gốc mới"
 
 #, c-format
 msgid "no such branch/commit '%s'"
-msgstr "không có nhánh/lần chuyển giao “%s” như thế"
+msgstr "không có nhánh/lần chuyển giao '%s' như thế"
 
 #, c-format
 msgid "No such ref: %s"
 msgstr "Không có tham chiếu nào như thế: %s"
 
-msgid "Could not resolve HEAD to a revision"
-msgstr "Không thể phân giải lần chuyển giao HEAD đến một điểm xét duyệt"
+msgid "Could not resolve HEAD to a commit"
+msgstr "không thể phân giải HEAD thành tên lần chuyển giao"
 
 #, c-format
 msgid "'%s': need exactly one merge base with branch"
-msgstr "“%s”: cần chính xác một cơ sở hòa trộn với nhánh"
+msgstr "'%s': cần chính xác một gốc hòa trộn với nhánh"
 
 #, c-format
 msgid "'%s': need exactly one merge base"
-msgstr "“%s”: cần chính xác một cơ sở hòa trộn"
+msgstr "'%s': cần chính xác một gốc hòa trộn"
 
 #, c-format
 msgid "Does not point to a valid commit '%s'"
-msgstr "Không chỉ đến một lần chuyển giao không hợp lệ “%s”"
-
-msgid "Please commit or stash them."
-msgstr "Xin hãy chuyển giao hoặc tạm cất (stash) chúng."
+msgstr "Không chỉ đến một lần chuyển giao không hợp lệ '%s'"
 
 msgid "HEAD is up to date."
 msgstr "HEAD đã cập nhật."
@@ -10090,7 +10347,7 @@ msgstr "Thay đổi từ %s thành %s:\n"
 #, c-format
 msgid "First, rewinding head to replay your work on top of it...\n"
 msgstr ""
-"Trước tiên, di chuyển head để xem lại các công việc trên đỉnh của nó\n"
+"Trước tiên, di chuyển head để xem lại các công việc trên đỉnh của nó...\n"
 
 msgid "Could not detach HEAD"
 msgstr "Không thể tách rời HEAD"
@@ -10117,19 +10374,19 @@ msgid ""
 "To squelch this message and still keep the default behaviour, set\n"
 "'receive.denyCurrentBranch' configuration variable to 'refuse'."
 msgstr ""
-"Theo mặc định, việc cập nhật nhánh hiện tại trong một kho không-thuần\n"
+"Theo mặc định, việc cập nhật nhánh hiện tại trong một kho không bare\n"
 "bị từ chối, bởi vì nó sẽ làm cho chỉ mục và cây làm việc mâu thuẫn với\n"
-"cái mà bạn đẩy lên, và sẽ yêu cầu lệnh “git reset --hard” để mà làm\n"
+"cái mà bạn đẩy lên, và sẽ yêu cầu lệnh 'git reset --hard' để làm\n"
 "cho cây làm việc khớp với HEAD.\n"
 "\n"
-"Bạn có thể đặt biến cấu hình “receive.denyCurrentBranch” thành\n"
-"“ignore” hay “warn” trong kho máy chủ để cho phép đẩy lên nhánh\n"
+"Bạn có thể đặt biến cấu hình 'receive.denyCurrentBranch' thành\n"
+"'ignore' hay 'warn' trong kho máy chủ để cho phép đẩy lên nhánh\n"
 "hiện tại của nó; tuy nhiên, không nên làm như thế trừ phi bạn\n"
 "sắp đặt để cập nhật cây làm việc của nó tương ứng với cái mà bạn đẩy\n"
 "lên theo cách nào đó.\n"
 "\n"
-"Để chấm dứt lời nhắn này và vẫn giữ cách ứng xử mặc định, hãy đặt\n"
-"biến cấu hình “receive.denyCurrentBranch” thành “refuse”."
+"Để tắt lời nhắn này và vẫn giữ hành vi mặc định, hãy đặt\n"
+"biến cấu hình 'receive.denyCurrentBranch' thành 'refuse'."
 
 msgid ""
 "By default, deleting the current branch is denied, because the next\n"
@@ -10142,14 +10399,14 @@ msgid ""
 "To squelch this message, you can set it to 'refuse'."
 msgstr ""
 "Theo mặc định, việc cập xóa nhánh hiện tại bị từ chối, bởi vì\n"
-"lệnh “git clone” tiếp theo sẽ không có tác dụng trong việc lấy\n"
+"lệnh 'git clone' tiếp theo sẽ không có tác dụng trong việc lấy\n"
 "ra bất kỳ tập tin nào, dẫn đến hỗn loạn\n"
 "\n"
-"Bạn có thể đặt biến cấu hình “receive.denyDeleteCurrent” thành\n"
-"“warn” hay “ignore” trong kho máy chủ để cho phép đẩy xóa nhánh\n"
+"Bạn có thể đặt biến cấu hình 'receive.denyDeleteCurrent' thành\n"
+"'warn' hay 'ignore' trong kho máy chủ để cho phép đẩy xóa nhánh\n"
 "hiện tại của nó có hoặc không cảnh báo.\n"
 "\n"
-"Để chấm dứt lời nhắn này, bạn hãy đặt nó thành “refuse”."
+"Để tắt lời nhắn này, bạn hãy đặt nó thành 'refuse'."
 
 msgid "quiet"
 msgstr "im lặng"
@@ -10160,6 +10417,9 @@ msgstr "bạn phải chỉ định thư mục"
 msgid "git reflog [show] [<log-options>] [<ref>]"
 msgstr "git reflog [show] [<các tùy chọn>] [<tham chiếu>]"
 
+msgid "git reflog list"
+msgstr "git reflog list"
+
 msgid ""
 "git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
 "                  [--rewrite] [--updateref] [--stale-fix]\n"
@@ -10185,6 +10445,10 @@ msgstr "git reflog exists <tham_chiếu>"
 msgid "invalid timestamp '%s' given to '--%s'"
 msgstr "dấu vết thời gian không hợp lệ '%s' đưa cho '--%s'"
 
+#, c-format
+msgid "%s does not accept arguments: '%s'"
+msgstr "%s không nhận các đối số: '%s'"
+
 msgid "do not actually prune any entries"
 msgstr "thực tế không cắt ngắn bất kỳ mục tin nào"
 
@@ -10222,7 +10486,7 @@ msgstr "giới hạn xử lý với reflogs chỉ từ thư mục làm việc hi
 
 #, c-format
 msgid "Marking reachable objects..."
-msgstr "Đánh dấu các đối tượng tiếp cận được"
+msgstr "Đánh dấu các đối tượng tiếp cận được..."
 
 #, c-format
 msgid "%s points nowhere!"
@@ -10260,10 +10524,10 @@ msgstr "git remote prune [-n | --dry-run] <tên>"
 msgid ""
 "git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
 msgstr ""
-"git remote [-v | --verbose] update [-p | --prune] [(<nhóm> | <máy-chủ>)]"
+"git remote [-v | --verbose] update [-p | --prune] [(<nhóm> | <máy-chủ>)...]"
 
 msgid "git remote set-branches [--add] <name> <branch>..."
-msgstr "git remote set-branches [--add] <tên> <nhánh>"
+msgstr "git remote set-branches [--add] <tên> <nhánh>..."
 
 msgid "git remote get-url [--push] [--all] <name>"
 msgstr "git remote set-url [--push] [--all] <tên>"
@@ -10281,10 +10545,10 @@ msgid "git remote add [<options>] <name> <url>"
 msgstr "git remote add [<các tùy chọn>] <tên> <url>"
 
 msgid "git remote set-branches <name> <branch>..."
-msgstr "git remote set-branches <tên> <nhánh>"
+msgstr "git remote set-branches <tên> <nhánh>..."
 
 msgid "git remote set-branches --add <name> <branch>..."
-msgstr "git remote set-branches --add <tên> <nhánh>"
+msgstr "git remote set-branches --add <tên> <nhánh>..."
 
 msgid "git remote show [<options>] <name>"
 msgstr "git remote show [<các tùy chọn>] <tên>"
@@ -10293,7 +10557,7 @@ msgid "git remote prune [<options>] <name>"
 msgstr "git remote prune [<các tùy chọn>] <tên>"
 
 msgid "git remote update [<options>] [<group> | <remote>]..."
-msgstr "git remote update [<các tùy chọn>] [<nhóm> | <máy-chủ>]"
+msgstr "git remote update [<các tùy chọn>] [<nhóm> | <máy-chủ>]..."
 
 #, c-format
 msgid "Updating %s"
@@ -10301,27 +10565,28 @@ msgstr "Đang cập nhật %s"
 
 #, c-format
 msgid "Could not fetch %s"
-msgstr "Không thể lấy“%s” về"
+msgstr "Không thể lấy'%s' về"
 
 msgid ""
 "--mirror is dangerous and deprecated; please\n"
 "\t use --mirror=fetch or --mirror=push instead"
 msgstr ""
-"--mirror nguy hiểm và không dùng nữa; xin hãy\n"
+"--mirror nguy hiểm và không được dùng nữa; xin hãy\n"
 "\t sử dụng tùy chọn --mirror=fetch hoặc --mirror=push để thay thế"
 
 #, c-format
-msgid "unknown mirror argument: %s"
-msgstr "không hiểu tham số máy bản sao (mirror): %s"
+msgid "unknown --mirror argument: %s"
+msgstr "không hiểu tham số --mirror: %s"
 
 msgid "fetch the remote branches"
 msgstr "lấy về các nhánh từ máy chủ"
 
-msgid "import all tags and associated objects when fetching"
-msgstr "nhập vào tất cả các đối tượng thẻ và thành phần liên quan khi lấy về"
-
-msgid "or do not fetch any tag at all (--no-tags)"
-msgstr "hoặc không lấy về bất kỳ thẻ nào (--no-tags)"
+msgid ""
+"import all tags and associated objects when fetching\n"
+"or do not fetch any tag at all (--no-tags)"
+msgstr ""
+"nhập vào tất cả các thẻ và đối tượng liên quan khi lấy về\n"
+"hoặc không nhận về một thẻ nào cả (--no-tags)"
 
 msgid "branch(es) to track"
 msgstr "các nhánh để theo dõi"
@@ -10336,7 +10601,7 @@ msgid "specifying a master branch makes no sense with --mirror"
 msgstr "đang chỉ định một nhánh master không hợp lý với tùy chọn --mirror"
 
 msgid "specifying branches to track makes sense only with fetch mirrors"
-msgstr "chỉ định những nhánh để theo dõi chỉ hợp lý với các “fetch mirror”"
+msgstr "chỉ định những nhánh để theo dõi chỉ hợp lý với các 'fetch mirror'"
 
 #, c-format
 msgid "remote %s already exists."
@@ -10344,7 +10609,7 @@ msgstr "máy chủ %s đã tồn tại rồi."
 
 #, c-format
 msgid "Could not setup master '%s'"
-msgstr "Không thể cài đặt nhánh master “%s”"
+msgstr "Không thể cài đặt nhánh master '%s'"
 
 #, c-format
 msgid "more than one %s"
@@ -10352,7 +10617,7 @@ msgstr "nhiều hơn một %s"
 
 #, c-format
 msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
-msgstr "nhánh chưa được quản lý.%s.rebase=%s; giả định là “true”"
+msgstr "nhánh chưa được quản lý.%s.rebase=%s; giả định là 'true'"
 
 #, c-format
 msgid "Could not get fetch map for refspec %s"
@@ -10366,11 +10631,11 @@ msgstr "(xóa)"
 
 #, c-format
 msgid "could not set '%s'"
-msgstr "không thể đặt “%s”"
+msgstr "không thể đặt '%s'"
 
 #, c-format
 msgid "could not unset '%s'"
-msgstr "không thể thôi đặt “%s”"
+msgstr "không thể thôi đặt '%s'"
 
 #, c-format
 msgid ""
@@ -10380,15 +10645,15 @@ msgid ""
 msgstr ""
 "Cấu hình %s remote.pushDefault trong:\n"
 "\t%s:%d\n"
-"bây giờ tên trên máy chủ không tồn tại “%s”"
+"bây giờ tên trên máy chủ không tồn tại '%s'"
 
 #, c-format
 msgid "No such remote: '%s'"
-msgstr "Không có máy chủ nào như vậy: “%s”"
+msgstr "Không có máy chủ nào như vậy: '%s'"
 
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
-msgstr "Không thể đổi tên phần của cấu hình từ “%s” thành “%s”"
+msgstr "Không thể đổi tên phần của cấu hình từ '%s' thành '%s'"
 
 #, c-format
 msgid ""
@@ -10396,20 +10661,20 @@ msgid ""
 "\t%s\n"
 "\tPlease update the configuration manually if necessary."
 msgstr ""
-"Không cập nhật “non-default fetch respec”\n"
+"Không cập nhật tham chiếu fetch không mặc định\n"
 "\t%s\n"
-"\tXin hãy cập nhật phần cấu hình một cách thủ công nếu thấy cần thiết."
+"\tXin hãy cập nhật phần cấu hình một cách thủ công nếu cần."
 
 msgid "Renaming remote references"
 msgstr "Đổi tên các tham chiếu máy chủ"
 
 #, c-format
 msgid "deleting '%s' failed"
-msgstr "gặp lỗi khi xóa “%s”"
+msgstr "gặp lỗi khi xóa '%s'"
 
 #, c-format
 msgid "creating '%s' failed"
-msgstr "gặp lỗi khi tạo “%s”"
+msgstr "gặp lỗi khi tạo '%s'"
 
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
@@ -10424,7 +10689,7 @@ msgstr[0] ""
 
 #, c-format
 msgid "Could not remove config section '%s'"
-msgstr "Không thể gỡ bỏ phần cấu hình “%s”"
+msgstr "Không thể gỡ bỏ phần cấu hình '%s'"
 
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
@@ -10433,8 +10698,11 @@ msgstr " mới (lần lấy về tiếp theo sẽ lưu trong remotes/%s)"
 msgid " tracked"
 msgstr " được theo dõi"
 
+msgid " skipped"
+msgstr " được bỏ qua"
+
 msgid " stale (use 'git remote prune' to remove)"
-msgstr " cÅ© rích (dùng â\80\9cgit remote pruneâ\80\9d Ä\91á»\83 gỡ bá»\8f)"
+msgstr " Ä\91ã cÅ© (dùng 'git remote prune' Ä\91á»\83 xoá bá»\8f)"
 
 msgid " ???"
 msgstr " ???"
@@ -10546,15 +10814,15 @@ msgstr " (trạng thái không được yêu cầu)"
 
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
-msgstr[0] "  Những nhánh nội bộ đã được cấu hình cho lệnh “git pull”:"
+msgstr[0] "  Những nhánh nội bộ đã được cấu hình cho lệnh 'git pull':"
 
 msgid "  Local refs will be mirrored by 'git push'"
-msgstr "  refs nội bộ sẽ được phản chiếu bởi lệnh “git push”"
+msgstr "  refs nội bộ sẽ được phản chiếu bởi lệnh 'git push'"
 
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
-msgstr[0] "  Những tham chiếu nội bộ được cấu hình cho lệnh “git push”%s:"
+msgstr[0] "  Những tham chiếu nội bộ được cấu hình cho lệnh 'git push'%s:"
 
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "đặt refs/remotes/<tên>/HEAD cho phù hợp với máy chủ"
@@ -10609,7 +10877,7 @@ msgstr "cắt máy chủ sau khi lấy về"
 
 #, c-format
 msgid "No such remote '%s'"
-msgstr "Không có máy chủ nào có tên “%s”"
+msgstr "Không có máy chủ nào có tên '%s'"
 
 msgid "add branch"
 msgstr "thêm nhánh"
@@ -10625,10 +10893,10 @@ msgstr "trả về mọi URL"
 
 #, c-format
 msgid "no URLs configured for remote '%s'"
-msgstr "không có URL nào được cấu hình cho nhánh “%s”"
+msgstr "không có URL nào được cấu hình cho nhánh '%s'"
 
 msgid "manipulate push URLs"
-msgstr "đẩy các “URL” bằng tay"
+msgstr "đẩy các 'URL' bằng tay"
 
 msgid "add URL"
 msgstr "thêm URL"
@@ -10665,35 +10933,45 @@ msgstr ""
 
 msgid "could not start pack-objects to repack promisor objects"
 msgstr ""
-"không thể lấy thông tin thống kê pack-objects để mà đóng gói lại các đối "
-"tượng hứa hẹn"
+"không thể lấy thông tin thống kê pack-objects để đóng gói lại các đối tượng "
+"promisor"
+
+msgid "failed to feed promisor objects to pack-objects"
+msgstr "gặp lỗi khi đưa promisor object cho pack-objects"
 
 msgid "repack: Expecting full hex object ID lines only from pack-objects."
 msgstr ""
-"repack: Đang chỉ cần các dòng ID đối tượng dạng thập lục phân đầy dủ từ pack-"
-"objects."
+"repack: Đang chỉ cần các dòng ID đối tượng dạng hexa đầy đủ từ pack-objects."
 
 msgid "could not finish pack-objects to repack promisor objects"
-msgstr "không thể hoàn tất pack-objects để đóng gói các đối tượng hứa hẹn"
+msgstr "không thể hoàn tất pack-objects để đóng gói các đối tượng promisor"
 
 #, c-format
 msgid "cannot open index for %s"
-msgstr "không thể mở mục lục cho “%s”"
+msgstr "không thể mở chỉ mục cho %s"
 
 #, c-format
 msgid "pack %s too large to consider in geometric progression"
-msgstr "gói %s là quá lớn để được xem là trong tiến trình hình học"
+msgstr "gói %s quá lớn để xem xét cấp số nhân"
 
 #, c-format
 msgid "pack %s too large to roll up"
-msgstr "gói %s là quá lớn để được cuộn lại"
+msgstr "gói %s quá lớn để cuộn lại"
 
 #, c-format
 msgid "could not open tempfile %s for writing"
 msgstr "không thể mở tập tin tạm %s để ghi"
 
 msgid "could not close refs snapshot tempfile"
-msgstr "không thể đóng tập tin tạm thời chụp nhanh các tham chiếu"
+msgstr "không thể đóng tập tin snapshot các tham chiếu"
+
+#, c-format
+msgid "could not remove stale bitmap: %s"
+msgstr "không thể xoá bỏ bitmap đã cũ: %s"
+
+#, c-format
+msgid "pack prefix %s does not begin with objdir %s"
+msgstr "tiền tố gói '%s' không được bắt đầu với objdir '.%s'"
 
 msgid "pack everything in a single pack"
 msgstr "đóng gói mọi thứ trong một gói đơn"
@@ -10708,8 +10986,8 @@ msgstr ""
 msgid "approxidate"
 msgstr "ngày ước tính"
 
-msgid "with -C, expire objects older than this"
-msgstr "với -C, các đối tượng hết hạn cũ hơn khoảng này"
+msgid "with --cruft, expire objects older than this"
+msgstr "với --cruft, đánh dấu hết hạn các đối tượng cũ hơn khoảng này"
 
 msgid "remove redundant packs, and run git-prune-packed"
 msgstr "xóa bỏ các gói dư thừa, và chạy git-prune-packed"
@@ -10727,7 +11005,7 @@ msgid "pass --local to git-pack-objects"
 msgstr "chuyển --local cho git-pack-objects"
 
 msgid "write bitmap index"
-msgstr "ghi mục lục ánh xạ"
+msgstr "ghi chỉ mục ánh xạ"
 
 msgid "pass --delta-islands to git-pack-objects"
 msgstr "chuyển --delta-islands cho git-pack-objects"
@@ -10739,7 +11017,7 @@ msgid "with -a, repack unreachable objects"
 msgstr "với -a, đóng gói lại các đối tượng không thể đọc được"
 
 msgid "size of the window used for delta compression"
-msgstr "kích thước cửa sổ được dùng cho nén “delta”"
+msgstr "kích thước cửa sổ được dùng cho nén 'delta'"
 
 msgid "bytes"
 msgstr "byte"
@@ -10748,7 +11026,7 @@ msgid "same as the above, but limit memory size instead of entries count"
 msgstr "giống như trên, nhưng giới hạn kích thước bộ nhớ hay vì số lượng"
 
 msgid "limits the maximum delta depth"
-msgstr "giới hạn độ sâu tối đa của “delta”"
+msgstr "giới hạn độ sâu tối đa của 'delta'"
 
 msgid "limits the maximum number of threads"
 msgstr "giới hạn số lượng tối đa tuyến trình"
@@ -10766,25 +11044,35 @@ msgid "find a geometric progression with factor <N>"
 msgstr "tìm một tiến trình hình học với hệ số <N>"
 
 msgid "write a multi-pack index of the resulting packs"
-msgstr "ghi mục lục “multi-pack” của các gói kết quả"
+msgstr "ghi chỉ mục 'multi-pack' của các gói kết quả"
+
+msgid "pack prefix to store a pack containing pruned objects"
+msgstr "tiền tố của gói để lưu gói gồm những đối tượng đã loại bỏ"
+
+msgid "pack prefix to store a pack containing filtered out objects"
+msgstr "tiền tố của gói để lưu gói gồm những đối tượng đã lọc bỏ"
 
 msgid "cannot delete packs in a precious-objects repo"
-msgstr "không thể xóa các gói trong một kho đối_tượng_vĩ_đại"
+msgstr "không thể xóa các gói trong một kho đối tượng cần thiết"
+
+#, c-format
+msgid "option '%s' can only be used along with '%s'"
+msgstr "tuỳ chọn '%s' chỉ có thể được dùng với '%s'"
 
 msgid "Nothing new to pack."
-msgstr "Không có gì mới để mà đóng gói."
+msgstr "Không có gì mới để đóng gói."
 
 #, c-format
-msgid "pack prefix %s does not begin with objdir %s"
-msgstr "tiền tố gói “%s” không được bắt đầu với objdir “.%s”"
+msgid "renaming pack to '%s' failed"
+msgstr "gặp lỗi khi đổi tên gói thành '%s'"
 
 #, c-format
-msgid "missing required file: %s"
-msgstr "thiếu tập tin cần thiết: %s"
+msgid "pack-objects did not write a '%s' file for pack %s-%s"
+msgstr "pack-objects không ghi tập tin '%s' cho gói %s-%s"
 
 #, c-format
 msgid "could not unlink: %s"
-msgstr "không thể bỏ liên kết: %s"
+msgstr "không thể unlink: %s"
 
 msgid "git replace [-f] <object> <replacement>"
 msgstr "git replace [-f] <đối-tượng> <thay-thế>"
@@ -10793,37 +11081,37 @@ msgid "git replace [-f] --edit <object>"
 msgstr "git replace [-f] --edit <đối tượng>"
 
 msgid "git replace [-f] --graft <commit> [<parent>...]"
-msgstr "git replace [-f] --graft <lần_chuyển_giao> [<cha_mẹ>]"
+msgstr "git replace [-f] --graft <lần_chuyển_giao> [<cha_mẹ>...]"
 
 msgid "git replace -d <object>..."
-msgstr "git replace -d <đối tượng>"
+msgstr "git replace -d <đối tượng>..."
 
 msgid "git replace [--format=<format>] [-l [<pattern>]]"
-msgstr "git replace [--format=<định_dạng>] [-l [<mẫu>]]"
+msgstr "git replace [--format=<định dạng>] [-l [<mẫu>]]"
 
 #, c-format
 msgid ""
 "invalid replace format '%s'\n"
 "valid formats are 'short', 'medium' and 'long'"
 msgstr ""
-"định dạng thay thế không hợp lệ “%s”\n"
-"định dạng hợp lệ là “short”, “medium” và “long”"
+"định dạng thay thế không hợp lệ '%s'\n"
+"định dạng hợp lệ là 'short', 'medium' và 'long'"
 
 #, c-format
 msgid "replace ref '%s' not found"
-msgstr "không tìm thấy tham chiếu thay thế “%s”"
+msgstr "không tìm thấy tham chiếu thay thế '%s'"
 
 #, c-format
 msgid "Deleted replace ref '%s'"
-msgstr "Đã xóa tham chiếu thay thế “%s”"
+msgstr "Đã xóa tham chiếu thay thế '%s'"
 
 #, c-format
 msgid "'%s' is not a valid ref name"
-msgstr "“%s” không phải tên tham chiếu hợp lệ"
+msgstr "'%s' không phải tên tham chiếu hợp lệ"
 
 #, c-format
 msgid "replace ref '%s' already exists"
-msgstr "tham chiếu thay thế “%s” đã tồn tại rồi"
+msgstr "tham chiếu thay thế '%s' đã tồn tại rồi"
 
 #, c-format
 msgid ""
@@ -10832,19 +11120,19 @@ msgid ""
 "while '%s' points to a replacement object of type '%s'."
 msgstr ""
 "Các đối tượng phải cùng kiểu.\n"
-"“%s” chỉ đến đối tượng thay thế của kiểu “%s”\n"
-"trong khi “%s” chỉ đến đối tượng tham chiếu của kiểu “%s”."
+"'%s' chỉ đến đối tượng thay thế của kiểu '%s'\n"
+"trong khi '%s' chỉ đến đối tượng tham chiếu của kiểu '%s'."
 
 #, c-format
 msgid "unable to open %s for writing"
-msgstr "không thể mở “%s” để ghi"
+msgstr "không thể mở '%s' để ghi"
 
 msgid "cat-file reported failure"
-msgstr "cat-file đã báo cáo gặp lỗi nghiêm trọng"
+msgstr "cat-file đã báo nghiêm trọng"
 
 #, c-format
 msgid "unable to open %s for reading"
-msgstr "không thể mở “%s” để đọc"
+msgstr "không thể mở '%s' để đọc"
 
 msgid "unable to spawn mktree"
 msgstr "không thể sinh tiến trình con mktree"
@@ -10853,7 +11141,7 @@ msgid "unable to read from mktree"
 msgstr "không thể đọc từ mktree"
 
 msgid "mktree reported failure"
-msgstr "mktree đã báo cáo gặp lỗi nghiêm trọng"
+msgstr "mktree đã báo lỗi nghiêm trọng"
 
 msgid "mktree did not return an object name"
 msgstr "mktree đã không trả về một tên đối tượng"
@@ -10874,46 +11162,46 @@ msgstr "việc sửa tập tin đối tượng gặp lỗi"
 
 #, c-format
 msgid "new object is the same as the old one: '%s'"
-msgstr "đối tượng mới là giống với cái cũ: “%s”"
+msgstr "đối tượng mới là giống với cái cũ: '%s'"
 
 #, c-format
 msgid "could not parse %s as a commit"
-msgstr "không thể phân tích %s như là một lần chuyển giao"
+msgstr "không thể đọc %s như là một lần chuyển giao"
 
 #, c-format
 msgid "bad mergetag in commit '%s'"
-msgstr "thẻ hòa trộn sai trong lần chuyển giao “%s”"
+msgstr "thẻ hòa trộn sai trong lần chuyển giao '%s'"
 
 #, c-format
 msgid "malformed mergetag in commit '%s'"
-msgstr "thẻ hòa trộn không đúng dạng ở lần chuyển giao “%s”"
+msgstr "thẻ hòa trộn bất thường dạng ở lần chuyển giao '%s'"
 
 #, c-format
 msgid ""
 "original commit '%s' contains mergetag '%s' that is discarded; use --edit "
 "instead of --graft"
 msgstr ""
-"lần chuyển giao gốc “%s” có chứa thẻ hòa trộn “%s” cái mà bị loại bỏ; dùng "
-"tùy chọn --edit thay cho --graft"
+"lần chuyển giao gốc '%s' có chứa thẻ hòa trộn '%s' đã bị loại bỏ; dùng tùy "
+"chọn --edit thay cho --graft"
 
 #, c-format
 msgid "the original commit '%s' has a gpg signature"
-msgstr "lần chuyển giao gốc “%s” có chữ ký GPG"
+msgstr "lần chuyển giao gốc '%s' có chữ ký GPG"
 
 msgid "the signature will be removed in the replacement commit!"
 msgstr "chữ ký sẽ được bỏ đi trong lần chuyển giao thay thế!"
 
 #, c-format
 msgid "could not write replacement commit for: '%s'"
-msgstr "không thể ghi lần chuyển giao thay thế cho: “%s”"
+msgstr "không thể ghi lần chuyển giao thay thế cho: '%s'"
 
 #, c-format
 msgid "graft for '%s' unnecessary"
-msgstr "graft cho “%s” không cần thiết"
+msgstr "graft cho '%s' không cần thiết"
 
 #, c-format
 msgid "new commit is the same as the old one: '%s'"
-msgstr "lần chuyển giao mới là giống với cái cũ: “%s”"
+msgstr "lần chuyển giao mới là giống với cái cũ: '%s'"
 
 #, c-format
 msgid ""
@@ -10974,19 +11262,85 @@ msgstr "--convert-graft-file không nhận đối số"
 msgid "only one pattern can be given with -l"
 msgstr "chỉ một mẫu được chỉ ra với tùy chọn -l"
 
-msgid "git rerere [clear | forget <path>... | status | remaining | diff | gc]"
+msgid "need some commits to replay"
+msgstr "cần các chuyển giao để phát lại"
+
+msgid "--onto and --advance are incompatible"
+msgstr "--onto và --advance xung khắc"
+
+msgid "all positive revisions given must be references"
+msgstr "mọi điểm xét duyệt cộng thêm phải là tên tham chiếu"
+
+msgid "argument to --advance must be a reference"
+msgstr "tham số cho --advance phải là tham chiếu"
+
+msgid ""
+"cannot advance target with multiple sources because ordering would be ill-"
+"defined"
+msgstr "không thể đẩy nhánh với nhiều nguồn vì thứ tự không xác định"
+
+msgid ""
+"cannot implicitly determine whether this is an --advance or --onto operation"
+msgstr "không thể tự xác định là thực hiện --advance hay --onto"
+
+msgid ""
+"cannot advance target with multiple source branches because ordering would "
+"be ill-defined"
+msgstr "không thể đẩy nhánh với nhiều nhánh nguồn vì thứ tự không xác định"
+
+msgid "cannot implicitly determine correct base for --onto"
+msgstr "không thể tự xác định gốc thực hiện --onto"
+
+msgid ""
+"(EXPERIMENTAL!) git replay ([--contained] --onto <newbase> | --advance "
+"<branch>) <revision-range>..."
+msgstr ""
+"(TRONG QUÁ TRÌNH THỬ NGHIỆM!) git replay ([--contained] --onto <gốc mới>  | "
+"--advance <nhánh>) <khoảng-xét-duyệt>..."
+
+msgid "make replay advance given branch"
+msgstr "đẩy nhánh này trong khi phát lại"
+
+msgid "replay onto given commit"
+msgstr "phát lại vào commit này"
+
+msgid "advance all branches contained in revision-range"
+msgstr "đẩy tất cả các nhánh có trong khoảng-xét-duyệt "
+
+msgid "option --onto or --advance is mandatory"
+msgstr "tuỳ chọn --onto hoặc --advance là bắt buộc"
+
+#, c-format
+msgid ""
+"some rev walking options will be overridden as '%s' bit in 'struct rev_info' "
+"will be forced"
+msgstr ""
+"một số tuỳ chọn duyệt qua điểm xét duyệt sẽ bị bỏ qua do bit '%s' trong "
+"'struct rev_info' bị ép bật/tắt"
+
+msgid "error preparing revisions"
+msgstr "gặp lỗi khi chuẩn bị các điểm xét duyệt"
+
+msgid "replaying down to root commit is not supported yet!"
+msgstr "chưa hỗ trợ phát lại đến lần chuyển giao gốc!"
+
+msgid "replaying merge commits is not supported yet!"
+msgstr "chưa hỗ trợ phát lại các lần hoà trộn!"
+
+msgid ""
+"git rerere [clear | forget <pathspec>... | diff | status | remaining | gc]"
 msgstr ""
-"git rerere [clear | forget <đường dẫn>… | status | remaining | diff | gc]"
+"git rerere [clear | forget <đường dẫn>... | diff | status | remaining | gc]"
 
 msgid "register clean resolutions in index"
-msgstr "sổ ghi dọn sạch các phân giải trong bản mục lục"
+msgstr "ghi lại các lần giải quyết ổn thoả xung đột trong chỉ mục"
 
 msgid "'git rerere forget' without paths is deprecated"
-msgstr "“git rerere forget” mà không có các đường dẫn là đã lạc hậu"
+msgstr "không còn dùng 'git rerere forget' mà không có các đường dẫn"
 
 #, c-format
 msgid "unable to generate diff for '%s'"
-msgstr "không thể tạo khác biệt cho “%s”"
+msgstr "không thể tạo diff cho '%s'"
 
 msgid ""
 "git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"
@@ -10994,7 +11348,7 @@ msgstr ""
 "git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"
 
 msgid "git reset [-q] [<tree-ish>] [--] <pathspec>..."
-msgstr "git reset [-q] [<tree-ish>] [--] <đặc/tả/đường/dẫn>"
+msgstr "git reset [-q] [<tree-ish>] [--] <đặc/tả/đường/dẫn>..."
 
 msgid ""
 "git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<tree-ish>]"
@@ -11002,7 +11356,7 @@ msgstr ""
 "git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<tree-ish>]"
 
 msgid "git reset --patch [<tree-ish>] [--] [<pathspec>...]"
-msgstr "git reset --patch [<tree-ish>] [--] [<đặc/tả/đường/dẫn>]"
+msgstr "git reset --patch [<tree-ish>] [--] [<đặc/tả/đường/dẫn>...]"
 
 msgid "mixed"
 msgstr "pha trộn"
@@ -11041,16 +11395,16 @@ msgid "be quiet, only report errors"
 msgstr "làm việc ở chế độ im lặng, chỉ hiển thị khi có lỗi"
 
 msgid "skip refreshing the index after reset"
-msgstr "bỏ qua làm tươi mục lục sau khi đặt lại"
+msgstr "bỏ qua làm mới chỉ mục sau khi reset"
 
 msgid "reset HEAD and index"
-msgstr "đặt lại (reset) HEAD và bảng mục lục"
+msgstr "đặt lại HEAD và chỉ mục"
 
 msgid "reset only HEAD"
-msgstr "chỉ đặt lại (reset) HEAD"
+msgstr "chỉ đặt lại HEAD"
 
 msgid "reset HEAD, index and working tree"
-msgstr "đặt lại HEAD, bảng mục lục và cây làm việc"
+msgstr "đặt lại HEAD, chỉ mục và cây làm việc"
 
 msgid "reset HEAD but keep local changes"
 msgstr "đặt lại HEAD nhưng giữ lại các thay đổi nội bộ"
@@ -11060,16 +11414,16 @@ msgstr "chỉ ghi lại những đường dẫn thực sự sẽ được thêm
 
 #, c-format
 msgid "Failed to resolve '%s' as a valid revision."
-msgstr "Gặp lỗi khi phân giải “%s” như là điểm xét duyệt hợp lệ."
+msgstr "Gặp lỗi khi phân giải '%s' thành điểm xét duyệt hợp lệ."
 
 #, c-format
 msgid "Failed to resolve '%s' as a valid tree."
-msgstr "Gặp lỗi khi phân giải “%s” như là một cây (tree) hợp lệ."
+msgstr "Gặp lỗi khi phân giải '%s' như là một cây (tree) hợp lệ."
 
 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
 msgstr ""
-"--mixed với các đường dẫn không còn dùng nữa; hãy thay thế bằng lệnh “git "
-"reset -- </các/đường/dẫn>."
+"không cho dùng --mixed với các đường dẫn nữa; hãy thay thế bằng lệnh 'git "
+"reset -- </các/đường/dẫn>'."
 
 #, c-format
 msgid "Cannot do %s reset with paths."
@@ -11077,7 +11431,7 @@ msgstr "Không thể thực hiện lệnh %s reset với các đường dẫn."
 
 #, c-format
 msgid "%s reset is not allowed in a bare repository"
-msgstr "%s reset không được phép trên kho thuần"
+msgstr "%s reset không được phép trên kho chứa bare"
 
 msgid "Unstaged changes after reset:"
 msgstr "Những thay đổi được đưa ra khỏi bệ phóng sau khi reset:"
@@ -11087,21 +11441,25 @@ msgid ""
 "It took %.2f seconds to refresh the index after reset.  You can use\n"
 "'--no-refresh' to avoid this."
 msgstr ""
-"Việc này cần %.2f giây để làm tươi mới mục lục sau khi đặt lại. Bạn có thể "
+"Việc này cần %.2f giây để làm tươi mới chỉ mục sau khi đặt lại. Bạn có thể "
 "sử dụng\n"
-"“--no-refresh” tránh điều này."
+"'--no-refresh' tránh điều này."
 
 #, c-format
 msgid "Could not reset index file to revision '%s'."
-msgstr "Không thể đặt lại (reset) bảng mục lục thành điểm xét duyệt “%s”."
+msgstr "Không thể đặt lại (reset) chỉ mục thành điểm xét duyệt '%s'."
 
 msgid "Could not write new index file."
-msgstr "Không thể ghi tập tin lưu bảng mục lục mới."
+msgstr "Không thể ghi tập tin chỉ mục mới."
 
 #, c-format
 msgid "unable to get disk usage of %s"
 msgstr "không thể dung lượng đĩa đã dùng của %s"
 
+#, c-format
+msgid "invalid value for '%s': '%s', the only allowed format is '%s'"
+msgstr "giá trị không hợp lệ cho '%s': '%s', chỉ cho phép định dạng là '%s'"
+
 msgid "rev-list does not support display of notes"
 msgstr "rev-list không hỗ trợ hiển thị các ghi chú"
 
@@ -11110,22 +11468,25 @@ msgid "marked counting and '%s' cannot be used together"
 msgstr "đánh dấu để đếm và '%s' không thể dùng cùng nhau"
 
 msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
-msgstr "git rev-parse --parseopt [<các tùy chọn>] -- [<các tham số>]"
+msgstr "git rev-parse --parseopt [<các tùy chọn>] -- [<các tham số>...]"
 
 msgid "keep the `--` passed as an arg"
-msgstr "giữ lại “--” chuyển sang làm tham số"
+msgstr "giữ lại '--' chuyển sang làm tham số"
 
 msgid "stop parsing after the first non-option argument"
-msgstr "dừng phân tích sau đối số đầu tiên không có tùy chọn"
+msgstr "dừng đọc sau đối số đầu tiên không có tùy chọn"
 
 msgid "output in stuck long form"
 msgstr "kết xuất trong định dạng gậy dài"
 
 msgid "premature end of input"
-msgstr "đầu vào chấm dứt bất thường"
+msgstr "đầu vào kết thúc bất thường"
 
 msgid "no usage string given before the `--' separator"
-msgstr "không có chuỗi cách dùng nào được đưa ra trước dấu phân cách “--”"
+msgstr "không có chuỗi cách dùng nào được đưa ra trước dấu phân cách '--'"
+
+msgid "missing opt-spec before option flags"
+msgstr "thiếu opt-spec trước các tuỳ chọn"
 
 msgid "Needed a single revision"
 msgstr "Cần một điểm xét duyệt đơn"
@@ -11137,9 +11498,9 @@ msgid ""
 "\n"
 "Run \"git rev-parse --parseopt -h\" for more information on the first usage."
 msgstr ""
-"git rev-parse --parseopt [<các tùy chọn>] -- [<các đối số>]\n"
-"   hoặc: git rev-parse --sq-quote [<đ.số>]\n"
-"   hoặc: git rev-parse [<các tùy chọn>] [<đ.số>]\n"
+"git rev-parse --parseopt [<các tùy chọn>] -- [<các đối số>...]\n"
+"   hoặc: git rev-parse --sq-quote [<đ.số>...]\n"
+"   hoặc: git rev-parse [<các tùy chọn>] [<đ.số>...]\n"
 "\n"
 "Chạy lệnh \"git rev-parse --parseopt -h\" để có thêm thông tin về cách dùng."
 
@@ -11148,7 +11509,7 @@ msgstr "--resolve-git-dir cần một tham số"
 
 #, c-format
 msgid "not a gitdir '%s'"
-msgstr "không phải một thư mục git “%s”"
+msgstr "không phải một thư mục git '%s'"
 
 msgid "--git-path requires an argument"
 msgstr "--git-path cần một tham số"
@@ -11169,6 +11530,13 @@ msgstr "--default cần một tham số"
 msgid "--prefix requires an argument"
 msgstr "--prefix cần một tham số"
 
+msgid "no object format specified"
+msgstr "không chỉ ra định dạng đối tượng"
+
+#, c-format
+msgid "unsupported object format: %s"
+msgstr "không hỗ trợ định dạng đối tượng: %s"
+
 #, c-format
 msgid "unknown mode for --abbrev-ref: %s"
 msgstr "không hiểu chế độ cho --abbrev-ref: %s"
@@ -11176,25 +11544,36 @@ msgstr "không hiểu chế độ cho --abbrev-ref: %s"
 msgid "this operation must be run in a work tree"
 msgstr "thao tác này phải được thực hiện trong thư mục làm việc"
 
+msgid "Could not read the index"
+msgstr "Không thể đọc chỉ mục"
+
 #, c-format
 msgid "unknown mode for --show-object-format: %s"
 msgstr "không hiểu chế độ cho --show-object-format: %s"
 
-msgid "git revert [<options>] <commit-ish>..."
-msgstr "git revert [<các tùy chọn>] <commit-ish>…"
-
-msgid "git revert <subcommand>"
-msgstr "git revert <lệnh-con>"
+msgid ""
+"git revert [--[no-]edit] [-n] [-m <parent-number>] [-s] [-S[<keyid>]] "
+"<commit>..."
+msgstr ""
+"git revert [--[no-]edit] [-n] [-m <parent-number>] [-s] [-S[<keyid>]] "
+"<commit>..."
 
-msgid "git cherry-pick [<options>] <commit-ish>..."
-msgstr "git cherry-pick [<các tùy chọn>] <commit-ish>…"
+msgid "git revert (--continue | --skip | --abort | --quit)"
+msgstr "git revert (--continue | --skip | --abort | --quit)"
+
+msgid ""
+"git cherry-pick [--edit] [-n] [-m <parent-number>] [-s] [-x] [--ff]\n"
+"                [-S[<keyid>]] <commit>..."
+msgstr ""
+"git cherry-pick [--edit] [-n] [-m <parent-number>] [-s] [-x] [--ff]\n"
+"                [-S[<keyid>]] <commit>..."
 
-msgid "git cherry-pick <subcommand>"
-msgstr "git cherry-pick <lệnh-con>"
+msgid "git cherry-pick (--continue | --skip | --abort | --quit)"
+msgstr "git cherry-pick (--continue | --skip | --abort | --quit)"
 
 #, c-format
 msgid "option `%s' expects a number greater than zero"
-msgstr "tùy chọn “%s” cần một giá trị bằng số lớn hơn không"
+msgstr "tùy chọn '%s' cần một giá trị bằng số lớn hơn không"
 
 #, c-format
 msgid "%s: %s cannot be used with %s"
@@ -11239,8 +11618,8 @@ msgstr "cấm khởi tạo lần chuyển giao trống rỗng"
 msgid "allow commits with empty messages"
 msgstr "chấp nhận chuyển giao mà không ghi chú gì"
 
-msgid "keep redundant, empty commits"
-msgstr "giữ lại các lần chuyển giao dư thừa, rỗng"
+msgid "deprecated: use --empty=keep instead"
+msgstr "đã lạc hậu: hãy dùng --empty=keep"
 
 msgid "use the 'reference' format to refer to commits"
 msgstr "dùng định dạng 'tham chiếu' để quy cho các lần chuyển giao"
@@ -11251,8 +11630,14 @@ msgstr "hoàn nguyên gặp lỗi"
 msgid "cherry-pick failed"
 msgstr "cherry-pick gặp lỗi"
 
-msgid "git rm [<options>] [--] <file>..."
-msgstr "git rm [<các tùy chọn>] [--] <tập-tin>…"
+msgid ""
+"git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch]\n"
+"       [--quiet] [--pathspec-from-file=<file> [--pathspec-file-nul]]\n"
+"       [--] [<pathspec>...]"
+msgstr ""
+"git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch]\n"
+"       [--quiet] [--pathspec-from-file=<tập tin> [--pathspec-file-nul]]\n"
+"       [--] [<đặc/tả/đường/dẫn>...]]"
 
 msgid ""
 "the following file has staged content different from both the\n"
@@ -11273,7 +11658,7 @@ msgstr ""
 
 msgid "the following file has changes staged in the index:"
 msgid_plural "the following files have changes staged in the index:"
-msgstr[0] "các tập tin sau đây có thay đổi trạng thái trong bảng mục lục:"
+msgstr[0] "các tập tin sau đây có thay đổi trạng thái trong chỉ mục:"
 
 msgid ""
 "\n"
@@ -11290,13 +11675,13 @@ msgid "do not list removed files"
 msgstr "không liệt kê các tập tin đã gỡ bỏ"
 
 msgid "only remove from the index"
-msgstr "chỉ gỡ bỏ từ mục lục"
+msgstr "chỉ gỡ bỏ từ chỉ mục"
 
 msgid "override the up-to-date check"
 msgstr "ghi đè lên kiểm tra cập nhật"
 
 msgid "allow recursive removal"
-msgstr "cho phép gỡ bỏ đệ qui"
+msgstr "cho phép gỡ bỏ đệ quy"
 
 msgid "exit with a zero status even if nothing matched"
 msgstr "thoát ra với trạng thái khác không thậm chí nếu không có gì khớp"
@@ -11310,7 +11695,7 @@ msgstr ""
 
 #, c-format
 msgid "not removing '%s' recursively without -r"
-msgstr "không thể gỡ bỏ “%s” một cách đệ qui mà không có tùy chọn -r"
+msgstr "không thể gỡ bỏ '%s' một cách đệ quy mà không có tùy chọn -r"
 
 #, c-format
 msgid "git rm: unable to remove %s"
@@ -11320,37 +11705,43 @@ msgid ""
 "git send-pack [--mirror] [--dry-run] [--force]\n"
 "              [--receive-pack=<git-receive-pack>]\n"
 "              [--verbose] [--thin] [--atomic]\n"
+"              [--[no-]signed | --signed=(true|false|if-asked)]\n"
 "              [<host>:]<directory> (--all | <ref>...)"
 msgstr ""
 "git send-pack [--mirror] [--dry-run] [--force]\n"
 "              [--receive-pack=<git-receive-pack>]\n"
 "              [--verbose] [--thin] [--atomic]\n"
-"              [<host>:]<thư mục> (--all | <tham chiếu>…)"
+"              [--[no-]signed | --signed=(true|false|if-asked)]\n"
+"              [<host>:]<thư mục> (--all | <tham chiếu>...)"
 
 msgid "remote name"
 msgstr "tên máy dịch vụ"
 
+msgid "push all refs"
+msgstr "đẩy tất cả các tham chiếu"
+
 msgid "use stateless RPC protocol"
 msgstr "dùng giao thức RPC không ổn định"
 
 msgid "read refs from stdin"
-msgstr "đọc tham chiếu từ đầu vào tiêu chuẩn"
+msgstr "đọc tham chiếu từ stdin"
 
 msgid "print status from remote helper"
 msgstr "in các trạng thái từ phần hướng dẫn trên máy dịch vụ"
 
 msgid "git shortlog [<options>] [<revision-range>] [[--] <path>...]"
-msgstr "git shortlog [<các tùy chọn>] [<vùng-xét-duyệt>] [[--] [<đường/dẫn>…]]"
+msgstr ""
+"git shortlog [<các tùy chọn>] [<vùng-xét-duyệt>] [[--] [<đường/dẫn>...]]"
 
 msgid "git log --pretty=short | git shortlog [<options>]"
 msgstr "git log --pretty=short | git shortlog [<các tùy chọn>]"
 
 msgid "using multiple --group options with stdin is not supported"
-msgstr ""
-"việc dùng nhiều tùy chọn --group với đầu ra tiêu chuẩn là không được hỗ trợ"
+msgstr "việc dùng nhiều tùy chọn --group với stdin là không được hỗ trợ"
 
-msgid "using --group=trailer with stdin is not supported"
-msgstr "việc dùng --group=trailer với đầu ra tiêu chuẩn là không được hỗ trợ"
+#, c-format
+msgid "using %s with stdin is not supported"
+msgstr "không hỗ trợ dùng %s cùng stdin"
 
 #, c-format
 msgid "unknown group type: %s"
@@ -11387,15 +11778,17 @@ msgid ""
 "git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
 "                [--current] [--color[=<when>] | --no-color] [--sparse]\n"
 "                [--more=<n> | --list | --independent | --merge-base]\n"
-"                [--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]"
+"                [--no-name | --sha1-name] [--topics]\n"
+"                [(<rev> | <glob>)...]"
 msgstr ""
 "git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
 "                [--current] [--color[=<when>] | --no-color] [--sparse]\n"
 "                [--more=<n> | --list | --independent | --merge-base]\n"
-"                [--no-name | --sha1-name] [--topics] [(<rev> | <glob>)…]"
+"                [--no-name | --sha1-name] [--topics]\n"
+"                [(<rev> | <glob>)...]"
 
 msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
-msgstr "git show-branch (-g | --reflog)[=<n>[,<nền>]] [--list] [<ref>]"
+msgstr "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
 
 #, c-format
 msgid "ignoring %s; cannot handle more than %d ref"
@@ -11413,7 +11806,7 @@ msgid "show remote-tracking branches"
 msgstr "hiển thị các nhánh remote-tracking"
 
 msgid "color '*!+-' corresponding to the branch"
-msgstr "màu “*!+-” tương ứng với nhánh"
+msgstr "màu '*!+-' tương ứng với nhánh"
 
 msgid "show <n> more commits after the common ancestor"
 msgstr "hiển thị thêm <n> lần chuyển giao sau cha mẹ chung"
@@ -11431,7 +11824,7 @@ msgid "name commits with their object names"
 msgstr "đặt tên các lần chuyển giao bằng các tên của đối tượng của chúng"
 
 msgid "show possible merge bases"
-msgstr "hiển thị mọi cơ sở có thể dùng để hòa trộn"
+msgstr "hiển thị mọi gốc hòa trộn khả dụng"
 
 msgid "show refs unreachable from any other ref"
 msgstr "hiển thị các tham chiếu không thể được đọc bởi bất kỳ tham chiếu khác"
@@ -11443,7 +11836,7 @@ msgid "show only commits not on the first branch"
 msgstr "chỉ hiển thị các lần chuyển giao không nằm trên nhánh đầu tiên"
 
 msgid "show merges reachable from only one tip"
-msgstr "hiá»\83n thá»\8b các lần hòa trá»\99n có thá»\83 Ä\91á»\8dc Ä\91ược chá»\89 từ má»\99t Ä\91ầu mút"
+msgstr "hiá»\83n thá»\8b các lần hòa trá»\99n có thá»\83 Ä\91á»\8dc Ä\91ược chá»\89 từ má»\99t Ä\91á»\89nh"
 
 msgid "topologically sort, maintaining date order where possible"
 msgstr "sắp xếp hình thái học, bảo trì thứ tự ngày nếu có thể"
@@ -11452,7 +11845,7 @@ msgid "<n>[,<base>]"
 msgstr "<n>[,<cơ_sở>]"
 
 msgid "show <n> most recent ref-log entries starting at base"
-msgstr "hiển thị <n> các mục “ref-log” gần nhất kể từ nền (base)"
+msgstr "hiển thị <n> các mục 'ref-log' gần nhất kể từ nền (base)"
 
 msgid "no branches given, and HEAD is not valid"
 msgstr "chưa đưa ra nhánh, và HEAD không hợp lệ"
@@ -11476,7 +11869,7 @@ msgstr[0] "không thể xử lý nhiều hơn %d điểm xét duyệt."
 
 #, c-format
 msgid "'%s' is not a valid ref."
-msgstr "“%s” không phải tham chiếu hợp lệ."
+msgstr "'%s' không phải tham chiếu hợp lệ."
 
 #, c-format
 msgid "cannot find commit %s (%s)"
@@ -11489,61 +11882,83 @@ msgid "Unknown hash algorithm"
 msgstr "Không hiểu thuật toán băm dữ liệu"
 
 msgid ""
-"git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --"
-"hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<pattern>...]"
+"git show-ref [--head] [-d | --dereference]\n"
+"             [-s | --hash[=<n>]] [--abbrev[=<n>]] [--tags]\n"
+"             [--heads] [--] [<pattern>...]"
+msgstr ""
+"git show-ref [--head] [-d | --dereference]\n"
+"             [-s | --hash[=<n>]] [--abbrev[=<n>]] [--tags]\n"
+"             [--heads] [--] [<mẫu>...]"
+
+msgid ""
+"git show-ref --verify [-q | --quiet] [-d | --dereference]\n"
+"             [-s | --hash[=<n>]] [--abbrev[=<n>]]\n"
+"             [--] [<ref>...]"
 msgstr ""
-"git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --"
-"hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<mẫu>…]"
+"git show-ref --verify [-q | --quiet] [-d | --dereference]\n"
+"             [-s | --hash[=<n>]] [--abbrev[=<n>]]\n"
+"             [--] [<mẫu>...]"
 
 msgid "git show-ref --exclude-existing[=<pattern>]"
 msgstr "git show-ref --exclude-existing[=<mẫu>]"
 
+msgid "git show-ref --exists <ref>"
+msgstr "git show-ref --exists <tham_chiếu>"
+
+msgid "reference does not exist"
+msgstr "tham chiếu không tồn tại"
+
+msgid "failed to look up reference"
+msgstr "gặp lỗi khi tìm tham chiếu"
+
 msgid "only show tags (can be combined with heads)"
 msgstr "chỉ hiển thị thẻ (có thể tổ hợp cùng với đầu)"
 
 msgid "only show heads (can be combined with tags)"
 msgstr "chỉ hiển thị đầu (có thể tổ hợp cùng với thẻ)"
 
+msgid "check for reference existence without resolving"
+msgstr "kiểm tra tồn tại tham chiếu nhưng không phân giải"
+
 msgid "stricter reference checking, requires exact ref path"
-msgstr ""
-"việc kiểm tra tham chiếu chính xác, đòi hỏi chính xác đường dẫn tham chiếu"
+msgstr "kiểm tra tham chiếu chính xác, đòi hỏi chính xác đường dẫn tham chiếu"
 
 msgid "show the HEAD reference, even if it would be filtered out"
 msgstr "hiển thị tham chiếu HEAD, ngay cả khi nó đã được lọc ra"
 
 msgid "dereference tags into object IDs"
-msgstr "bãi bỏ tham chiếu các thẻ thành ra các ID đối tượng"
+msgstr "giải tham chiếu các thẻ thành các ID đối tượng"
 
 msgid "only show SHA1 hash using <n> digits"
 msgstr "chỉ hiển thị mã băm SHA1 sử dụng <n> chữ số"
 
 msgid "do not print results to stdout (useful with --verify)"
-msgstr ""
-"không hiển thị kết quả ra đầu ra chuẩn (stdout) (chỉ hữu dụng với --verify)"
+msgstr "không hiển thị kết quả ra stdout (hữu dụng khi dùng cùng --verify)"
 
 msgid "show refs from stdin that aren't in local repository"
-msgstr ""
-"hiển thị các tham chiếu từ đầu vào tiêu chuẩn (stdin) cái mà không ở kho nội "
-"bộ"
+msgstr "hiển thị các tham chiếu từ stdin mà không ở kho nội bộ"
 
-msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
-msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <các-tùy-chọn>"
+msgid ""
+"git sparse-checkout (init | list | set | add | reapply | disable | check-"
+"rules) [<options>]"
+msgstr ""
+"git sparse-checkout (init | list | set | add | reapply | disable | check-"
+"rules) [<các-tùy-chọn>]"
 
 msgid "this worktree is not sparse"
-msgstr "cây làm việc này không phải là sparse"
+msgstr "cây làm việc này không thưa"
 
 msgid "this worktree is not sparse (sparse-checkout file may not exist)"
 msgstr ""
-"không thể phân tích cú pháp cây làm việc này (tập tin sparse-checkout có lẽ "
-"không tồn tại)"
+"cây làm việc này không thưa (tập tin sparse-checkout có lẽ không tồn tại)"
 
 #, c-format
 msgid ""
 "directory '%s' contains untracked files, but is not in the sparse-checkout "
 "cone"
 msgstr ""
-"thư mục “%s” có chứa các tập tin chưa được theo dõi, nhưng lại không trong "
-"“sparse-checkout cone”"
+"thư mục '%s' có chứa các tập tin chưa được theo dõi, nhưng không nằm trong "
+"'sparse-checkout cone' (vùng checkout thưa)"
 
 #, c-format
 msgid "failed to remove directory '%s'"
@@ -11556,35 +11971,35 @@ msgid "failed to initialize worktree config"
 msgstr "gặp lỗi khi khởi tạo cấu hình cây làm việc"
 
 msgid "failed to modify sparse-index config"
-msgstr "gặp lỗi khi sửa cấu hình \"sparse-index\""
+msgstr "gặp lỗi khi sửa cấu hình sparse-index"
 
 msgid "initialize the sparse-checkout in cone mode"
 msgstr "khởi tạo sparse-checkout trong chế độ nón"
 
 msgid "toggle the use of a sparse index"
-msgstr "bật tắt việc sử dụng một \"sparse index\""
+msgstr "bật tắt việc sử dụng sparse index"
 
 #, c-format
 msgid "unable to create leading directories of %s"
-msgstr "không thể tạo các thư mục dẫn đầu của “%s”"
+msgstr "không thể tạo các thư mục dẫn đầu của '%s'"
 
 #, c-format
 msgid "failed to open '%s'"
-msgstr "gặp lỗi khi mở “%s”"
+msgstr "gặp lỗi khi mở '%s'"
 
 #, c-format
 msgid "could not normalize path %s"
-msgstr "không thể thường hóa đường dẫn “%s”"
+msgstr "không thể thường hóa đường dẫn '%s'"
 
 #, c-format
 msgid "unable to unquote C-style string '%s'"
-msgstr "không thể bỏ trích dẫn chuỗi kiểu C “%s”"
+msgstr "không thể bỏ trích dẫn chuỗi kiểu C '%s'"
 
 msgid "unable to load existing sparse-checkout patterns"
 msgstr "không thể tải các mẫu sparse-checkout"
 
 msgid "existing sparse-checkout patterns do not use cone mode"
-msgstr "đặt các mẫu sparse-checkout sẵn có không sử dụng chế độ cone"
+msgstr "các mẫu sparse-checkout sẵn có không sử dụng chế độ cone"
 
 msgid "please run from the toplevel directory in non-cone mode"
 msgstr "vui lòng chạy từ thư mục mức cao nhất trong chế độ non-cone"
@@ -11619,8 +12034,8 @@ msgid ""
 "pass a leading slash before paths such as '%s' if you want a single file "
 "(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
 msgstr ""
-"chuyển một dấu xổ chéo dẫn đầu đường dẫn như là '%s' nếu bạn muốn một tập "
-"tin đơn (xem NON-CONE PROBLEMS trong hướng dẫn sử dụng git-sparse-checkout)."
+"dùng dấu gạch chéo dẫn đầu trước đường dẫn như '%s' nếu bạn muốn một tập tin "
+"đơn lẻ (xem NON-CONE PROBLEMS trong hướng dẫn sử dụng git-sparse-checkout)."
 
 msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
 msgstr "git sparse-checkout add [--skip-checks] (--stdin | <các mẫu>)"
@@ -11628,11 +12043,11 @@ msgstr "git sparse-checkout add [--skip-checks] (--stdin | <các mẫu>)"
 msgid ""
 "skip some sanity checks on the given paths that might give false positives"
 msgstr ""
-"bỏ qua một số kiểm tra đúng mục trên đường dẫn đã cho cái mà có thể đưa ra "
-"xác thực sai"
+"bỏ qua một số tiền kiểm tra có thể không cho kết quả đúng trên các đường dẫn "
+"đã cho"
 
 msgid "read patterns from standard in"
-msgstr "đọc các mẫu từ đầu vào tiêu chuẩn"
+msgstr "đọc các mẫu từ stdin"
 
 msgid "no sparse-checkout to add to"
 msgstr "không có sparse-checkout để thêm vào"
@@ -11645,76 +12060,82 @@ msgstr ""
 "(--stdin | <các mẫu>)"
 
 msgid "must be in a sparse-checkout to reapply sparsity patterns"
-msgstr "phải trong một sparse-checkout để áp dụng lại các mẫu sparse"
+msgstr "phải trong sparse-checkout để áp dụng lại các mẫu sparse"
 
 msgid "error while refreshing working directory"
 msgstr "gặp lỗi khi đọc lại thư mục làm việc"
 
-msgid "git stash list [<options>]"
-msgstr "git stash list [<các tùy chọn>]"
+msgid ""
+"git sparse-checkout check-rules [-z] [--skip-checks][--[no-]cone] [--rules-"
+"file <file>]"
+msgstr ""
+"git sparse-checkout check-rules [-z] [--skip-checks][--[no-]cone] [--rules-"
+"file <tập tin>]"
 
-msgid "git stash show [<options>] [<stash>]"
-msgstr "git stash show [<các tùy chọn>] <stash>"
+msgid "terminate input and output files by a NUL character"
+msgstr "kết thúc các bản ghi vào và ra bằng ký tự NULL"
 
-msgid "git stash drop [-q|--quiet] [<stash>]"
-msgstr "git stash drop [-q|--quiet] [<stash>]"
+msgid "when used with --rules-file interpret patterns as cone mode patterns"
+msgstr "khi dùng với --rules-file, dùng mẫu ở chế độ cone"
 
-msgid "git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]"
-msgstr "git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]"
+msgid "use patterns in <file> instead of the current ones."
+msgstr "dùng mẫu từ <tập tin> thay vì các mẫu hiện tại"
 
-msgid "git stash branch <branchname> [<stash>]"
-msgstr "git stash branch <tên-nhánh> [<stash>]"
+msgid "git stash list [<log-options>]"
+msgstr "git stash list [<các tùy chọn>]"
 
 msgid ""
-"git stash [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--"
-"quiet]\n"
-"          [-u|--include-untracked] [-a|--all] [-m|--message <message>]\n"
-"          [--pathspec-from-file=<file> [--pathspec-file-nul]]\n"
-"          [--] [<pathspec>...]]"
+"git stash show [-u | --include-untracked | --only-untracked] [<diff-"
+"options>] [<stash>]"
 msgstr ""
-"git stash [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--"
-"quiet]\n"
-"          [-u|--include-untracked] [-a|--all] [-m|--message <ghi chú>]\n"
-"          [--pathspec-from-file=<tập_tin> [--pathspec-file-nul]]\n"
-"          [--] [<đặc/tả/đường/dẫn>…]]"
+"git stash show [-u | --include-untracked | --only-untracked] [<diff-"
+"options>] [<stash>]"
 
-msgid ""
-"git stash save [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--"
-"quiet]\n"
-"          [-u|--include-untracked] [-a|--all] [<message>]"
-msgstr ""
-"git stash save [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--"
-"quiet]\n"
-"          [-u|--include-untracked] [-a|--all] [<ghi chú>]"
+msgid "git stash drop [-q | --quiet] [<stash>]"
+msgstr "git stash drop [-q | --quiet] [<stash>]"
+
+msgid "git stash pop [--index] [-q | --quiet] [<stash>]"
+msgstr "git stash pop [--index] [-q | --quiet] [<stash>]"
 
-msgid "git stash pop [--index] [-q|--quiet] [<stash>]"
-msgstr "git stash pop [--index] [-q|--quiet] [<stash>]"
+msgid "git stash apply [--index] [-q | --quiet] [<stash>]"
+msgstr "git stash apply [--index] [-q | --quiet] [<stash>]"
 
-msgid "git stash apply [--index] [-q|--quiet] [<stash>]"
-msgstr "git stash apply [--index] [-q|--quiet] [<stash>]"
+msgid "git stash branch <branchname> [<stash>]"
+msgstr "git stash branch <tên-nhánh> [<stash>]"
 
-msgid "git stash store [-m|--message <message>] [-q|--quiet] <commit>"
-msgstr "git stash store [-m|--message <ghi chú>] [-q|--quiet] <commit>"
+msgid "git stash store [(-m | --message) <message>] [-q | --quiet] <commit>"
+msgstr "git stash store [(-m | --message) <ghi chú>] [-q | --quiet] <commit>"
 
 msgid ""
-"git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
-"          [-u|--include-untracked] [-a|--all] [-m|--message <message>]\n"
+"git stash [push [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q "
+"| --quiet]\n"
+"          [-u | --include-untracked] [-a | --all] [(-m | --message) "
+"<message>]\n"
+"          [--pathspec-from-file=<file> [--pathspec-file-nul]]\n"
 "          [--] [<pathspec>...]]"
 msgstr ""
-"git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
-"          [-u|--include-untracked] [-a|--all] [-m|--message <lời nhắn>]\n"
-"          [--] [<đặc/tả/đường/dẫn>…]]"
+"git stash [push [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q "
+"| --quiet]\n"
+"          [-u | --include-untracked] [-a | --all] [(-m | --message) <ghi "
+"chú>]\n"
+"          [--pathspec-from-file=<tập tin> [--pathspec-file-nul]]\n"
+"          [--] [<đặc/tả/đường/dẫn>...]]"
 
 msgid ""
-"git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
-"               [-u|--include-untracked] [-a|--all] [<message>]"
+"git stash save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | "
+"--quiet]\n"
+"          [-u | --include-untracked] [-a | --all] [<message>]"
 msgstr ""
-"git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
-"               [-u|--include-untracked] [-a|--all] [<ghi chú>]"
+"git stash save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | "
+"--quiet]\n"
+"          [-u | --include-untracked] [-a | --all] [<ghi chú>]"
+
+msgid "git stash create [<message>]"
+msgstr "git stash create [<ghi chú>]"
 
 #, c-format
 msgid "'%s' is not a stash-like commit"
-msgstr "“%s” không phải là lần chuyển giao kiểu-stash (cất đi)"
+msgstr "'%s' không phải là lần chuyển giao kiểu-stash"
 
 #, c-format
 msgid "Too many revisions specified:%s"
@@ -11725,10 +12146,10 @@ msgstr "Không tìm thấy các mục tạm cất (stash) nào."
 
 #, c-format
 msgid "%s is not a valid reference"
-msgstr "“%s” không phải một tham chiếu hợp lệ"
+msgstr "'%s' không phải một tham chiếu hợp lệ"
 
 msgid "git stash clear with arguments is unimplemented"
-msgstr "git stash clear với các tham số là chưa được thực hiện"
+msgstr "git stash clear với các tham số là chưa được hỗ trợ"
 
 #, c-format
 msgid ""
@@ -11736,7 +12157,8 @@ msgid ""
 "            %s -> %s\n"
 "         to make room.\n"
 msgstr ""
-"CẢNH BÁO: Tệp chưa được theo dõi theo cách của tệp được theo dõi!  Đổi tên\n"
+"CẢNH BÁO: tập tin chưa được theo dõi chắn đường tập tin được theo dõi! Đổi "
+"tên\n"
 "            %s -> %s\n"
 "         để nhường chỗ.\n"
 
@@ -11748,7 +12170,7 @@ msgid "could not generate diff %s^!."
 msgstr "không thể tạo diff %s^!."
 
 msgid "conflicts in index. Try without --index."
-msgstr "xung đột trong bảng mục lục. Hãy thử mà không dùng tùy chọn --index."
+msgstr "xung đột trong chỉ mục. Hãy thử mà không dùng tùy chọn --index."
 
 msgid "could not save index tree"
 msgstr "không thể ghi lại cây chỉ mục"
@@ -11758,13 +12180,13 @@ msgid "Merging %s with %s"
 msgstr "Đang hòa trộn %s với %s"
 
 msgid "Index was not unstashed."
-msgstr "Bảng mục lục đã không được bỏ stash."
+msgstr "chỉ mục đã không được bỏ stash."
 
 msgid "could not restore untracked files from stash"
 msgstr "không thể phục hồi các tập tin chưa theo dõi từ mục cất đi (stash)"
 
 msgid "attempt to recreate the index"
-msgstr "gặp lỗi đọc bảng mục lục"
+msgstr "gặp lỗi đọc chỉ mục"
 
 #, c-format
 msgid "Dropped %s (%s)"
@@ -11776,7 +12198,7 @@ msgstr "%s: Không thể xóa bỏ mục stash"
 
 #, c-format
 msgid "'%s' is not a stash reference"
-msgstr "”%s” không phải tham chiếu đến stash"
+msgstr "'%s' không phải tham chiếu đến stash"
 
 msgid "The stash entry is kept in case you need it again."
 msgstr "Các mục tạm cất (stash) được giữ trong trường hợp bạn lại cần nó."
@@ -11785,7 +12207,7 @@ msgid "No branch name specified"
 msgstr "Chưa chỉ ra tên của nhánh"
 
 msgid "failed to parse tree"
-msgstr "gặp lỗi khi phân tích cây"
+msgstr "gặp lỗi khi đọc cây"
 
 msgid "failed to unpack trees"
 msgstr "gặp lỗi khi tháo dỡ cây"
@@ -11816,7 +12238,7 @@ msgid "You do not have the initial commit yet"
 msgstr "Bạn chưa còn có lần chuyển giao khởi tạo"
 
 msgid "Cannot save the current index state"
-msgstr "Không thể ghi lại trạng thái bảng mục lục hiện hành"
+msgstr "Không thể ghi lại trạng thái chỉ mục hiện hành"
 
 msgid "Cannot save the untracked files"
 msgstr "Không thể ghi lại các tập tin chưa theo dõi"
@@ -11837,7 +12259,7 @@ msgid "Can't use --staged and --include-untracked or --all at the same time"
 msgstr "Không thể dùng --staged và --include-untracked hay --all cùng một lúc"
 
 msgid "Did you forget to 'git add'?"
-msgstr "Có lẽ bạn đã quên “git add ” phải không?"
+msgstr "Có lẽ bạn đã quên 'git add'?"
 
 msgid "No local changes to save"
 msgstr "Không có thay đổi nội bộ nào được ghi lại"
@@ -11850,19 +12272,19 @@ msgstr "Không thể ghi lại trạng thái hiện hành"
 
 #, c-format
 msgid "Saved working directory and index state %s"
-msgstr "Đã ghi lại thư mục làm việc và trạng thái mục lục %s"
+msgstr "Đã ghi lại thư mục làm việc và trạng thái chỉ mục %s"
 
 msgid "Cannot remove worktree changes"
 msgstr "Không thể gỡ bỏ các thay đổi cây-làm-việc"
 
 msgid "keep index"
-msgstr "giữ nguyên bảng mục lục"
+msgstr "giữ nguyên chỉ mục"
 
 msgid "stash staged changes only"
 msgstr "chỉ tạm cất đi các thay đổi đã đưa lên bệ phóng"
 
 msgid "stash in patch mode"
-msgstr "cất đi ở chế độ miếng vá"
+msgstr "cất đi ở chế độ vá"
 
 msgid "quiet mode"
 msgstr "chế độ im lặng"
@@ -11881,29 +12303,27 @@ msgstr "treo trước ký tự ghi chú và ký tự khoảng trắng cho từng
 
 #, c-format
 msgid "Expecting a full ref name, got %s"
-msgstr "Cần tên tham chiếu dạng đầy đủ, nhưng lại nhận được %s"
+msgstr "Cần tên tham chiếu dạng đầy đủ, nhưng lại có %s"
+
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "không thể lấy thẻ quản kho cho mô-đun-con '%s'"
 
 #, c-format
 msgid ""
 "could not look up configuration '%s'. Assuming this repository is its own "
 "authoritative upstream."
 msgstr ""
-"không thể tìm thấy cấu hình “%s”. Coi rằng đây là kho thượng nguồn có quyền "
+"không thể tìm thấy cấu hình '%s'. Coi rằng đây là kho thượng nguồn có quyền "
 "sở hữu chính nó."
 
-msgid "alternative anchor for relative paths"
-msgstr "điểm neo thay thế cho các đường dẫn tương đối"
-
-msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper list [--prefix=</đường/dẫn>] [</đường/dẫn>…]"
-
 #, c-format
 msgid "No url found for submodule path '%s' in .gitmodules"
-msgstr "Không tìm thấy url cho đường dẫn mô-đun-con “%s” trong .gitmodules"
+msgstr "Không tìm thấy url cho đường dẫn mô-đun-con '%s' trong .gitmodules"
 
 #, c-format
 msgid "Entering '%s'\n"
-msgstr "Đang vào “%s”\n"
+msgstr "Đang vào '%s'\n"
 
 #, c-format
 msgid ""
@@ -11929,44 +12349,44 @@ msgstr "chặn kết xuất của từng lệnh mô-đun-con"
 msgid "recurse into nested submodules"
 msgstr "đệ quy vào trong mô-đun-con lồng nhau"
 
-msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
-msgstr "git submodule--helper foreach [--quiet] [--recursive] [--]  <lệnh>"
+msgid "git submodule foreach [--quiet] [--recursive] [--] <command>"
+msgstr "git submodule foreach [--quiet] [--recursive] [--]  <lệnh>"
 
 #, c-format
 msgid "Failed to register url for submodule path '%s'"
-msgstr "Gặp lỗi khi đăng ký url cho đường dẫn mô-đun-con “%s”"
+msgstr "Gặp lỗi khi đăng ký url cho đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Submodule '%s' (%s) registered for path '%s'\n"
-msgstr "Mô-đun-con “%s” (%s) được đăng ký cho đường dẫn “%s”\n"
+msgstr "Mô-đun-con '%s' (%s) được đăng ký cho đường dẫn '%s'\n"
 
 #, c-format
 msgid "warning: command update mode suggested for submodule '%s'\n"
-msgstr "cảnh báo: chế độ lệnh cập nhật được gợi ý cho mô-đun-con “%s”\n"
+msgstr "cảnh báo: chế độ lệnh cập nhật được gợi ý cho mô-đun-con '%s'\n"
 
 #, c-format
 msgid "Failed to register update mode for submodule path '%s'"
-msgstr "Gặp lỗi khi đăng ký chế độ cập nhật cho đường dẫn mô-đun-con “%s”"
+msgstr "Gặp lỗi khi đăng ký chế độ cập nhật cho đường dẫn mô-đun-con '%s'"
 
 msgid "suppress output for initializing a submodule"
 msgstr "chặn kết xuất của khởi tạo một mô-đun-con"
 
-msgid "git submodule--helper init [<options>] [<path>]"
-msgstr "git submodule--helper init [<các tùy chọn>] [</đường/dẫn>]"
+msgid "git submodule init [<options>] [<path>]"
+msgstr "git submodule init [<các tùy chọn>] [</đường/dẫn>]"
 
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr ""
 "không tìm thấy ánh xạ (mapping) mô-đun-con trong .gitmodules cho đường dẫn "
-"“%s”"
+"'%s'"
 
 #, c-format
 msgid "could not resolve HEAD ref inside the submodule '%s'"
-msgstr "không thể phân giải tham chiếu HEAD bên trong mô-đun-con “%s”"
+msgstr "không thể phân giải tham chiếu HEAD bên trong mô-đun-con '%s'"
 
 #, c-format
 msgid "failed to recurse into submodule '%s'"
-msgstr "gặp lỗi khi đệ quy vào trong mô-đun-con “%s”"
+msgstr "gặp lỗi khi đệ quy vào trong mô-đun-con '%s'"
 
 msgid "suppress submodule status output"
 msgstr "chặn kết xuất về tình trạng mô-đun-con"
@@ -11975,15 +12395,12 @@ msgid ""
 "use commit stored in the index instead of the one stored in the submodule "
 "HEAD"
 msgstr ""
-"dùng lần chuyển giao lưu trong mục lục thay cho cái được lưu trong HEAD mô-"
+"dùng lần chuyển giao lưu trong chỉ mục thay cho cái được lưu trong HEAD mô-"
 "đun-con"
 
 msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
 msgstr ""
-"git submodule status [--quiet] [--cached] [--recursive] [</đường/dẫn>…]"
-
-msgid "git submodule--helper name <path>"
-msgstr "git submodule--helper name </đường/dẫn>"
+"git submodule status [--quiet] [--cached] [--recursive] [</đường/dẫn>...]"
 
 #, c-format
 msgid "* %s %s(blob)->%s(submodule)"
@@ -12001,61 +12418,57 @@ msgstr "%s"
 
 #, c-format
 msgid "couldn't hash object from '%s'"
-msgstr "không thể băm đối tượng từ “%s”"
+msgstr "không thể băm đối tượng từ '%s'"
 
 #, c-format
 msgid "unexpected mode %o\n"
 msgstr "gặp chế độ không như mong chờ %o\n"
 
 msgid "use the commit stored in the index instead of the submodule HEAD"
-msgstr "hùng lần chuyển giao đã lưu trong mục lục thay cho HEAD mô-đun-con"
+msgstr "hùng lần chuyển giao đã lưu trong chỉ mục thay cho HEAD mô-đun-con"
 
 msgid "compare the commit in the index with that in the submodule HEAD"
-msgstr "để so sánh lần trong mục lục với cái trong HEAD mô-đun-con"
+msgstr "để so sánh lần trong chỉ mục với cái trong HEAD mô-đun-con"
 
 msgid "skip submodules with 'ignore_config' value set to 'all'"
 msgstr ""
-"bỏ qua các mô-đun-con với giá trị của “ignore_config” được đặt thành “all”"
+"bỏ qua các mô-đun-con với giá trị của 'ignore_config' được đặt thành 'all'"
 
 msgid "limit the summary size"
 msgstr "giới hạn kích cỡ tổng hợp"
 
-msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
+msgid "git submodule summary [<options>] [<commit>] [--] [<path>]"
 msgstr ""
-"git submodule--helper summary [<các tùy chọn>] [<lần_chuyển_giao>] [--] [</"
-"đường/dẫn>]"
+"git submodule summary [<các tùy chọn>] [<lần_chuyển_giao>] [--] [</đường/"
+"dẫn>]"
 
 msgid "could not fetch a revision for HEAD"
 msgstr "không thể lấy về một điểm xem xét cho HEAD"
 
 #, c-format
 msgid "Synchronizing submodule url for '%s'\n"
-msgstr "Url mô-đun-con đồng bộ hóa cho “%s”\n"
+msgstr "Url mô-đun-con đồng bộ hóa cho '%s'\n"
 
 #, c-format
 msgid "failed to register url for submodule path '%s'"
-msgstr "gặp lỗi khi đăng ký url cho đường dẫn mô-đun-con “%s”"
-
-#, c-format
-msgid "failed to get the default remote for submodule '%s'"
-msgstr "gặp lỗi khi lấy máy chủ mặc định cho mô-đun-con “%s”"
+msgstr "gặp lỗi khi đăng ký url cho đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "failed to update remote for submodule '%s'"
-msgstr "gặp lỗi khi cập nhật cho mô-đun-con “%s”"
+msgstr "gặp lỗi khi cập nhật cho mô-đun-con '%s'"
 
 msgid "suppress output of synchronizing submodule url"
 msgstr "chặn kết xuất của url mô-đun-con đồng bộ"
 
-msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
-msgstr "git submodule--helper sync [--quiet] [--recursive] [</đường/dẫn>]"
+msgid "git submodule sync [--quiet] [--recursive] [<path>]"
+msgstr "git submodule sync [--quiet] [--recursive] [</đường/dẫn>]"
 
 #, c-format
 msgid ""
 "Submodule work tree '%s' contains a .git directory. This will be replaced "
 "with a .git file by using absorbgitdirs."
 msgstr ""
-"Cây làm việc mô-đun-con “%s” có chứa thư mục .git. Việc này sẽ được thay thế "
+"Cây làm việc mô-đun-con '%s' có chứa thư mục .git. Việc này sẽ được thay thế "
 "với một tập tin .git bằng các sử dụng absorbgitdirs."
 
 #, c-format
@@ -12063,24 +12476,24 @@ msgid ""
 "Submodule work tree '%s' contains local modifications; use '-f' to discard "
 "them"
 msgstr ""
-"Cây làm việc mô-đun-con “%s” chứa các thay đổi nội bộ; hãy dùng “-f” để loại "
+"Cây làm việc mô-đun-con '%s' chứa các thay đổi nội bộ; hãy dùng '-f' để loại "
 "bỏ chúng đi"
 
 #, c-format
 msgid "Cleared directory '%s'\n"
-msgstr "Đã xóa thư mục “%s”\n"
+msgstr "Đã xóa thư mục '%s'\n"
 
 #, c-format
 msgid "Could not remove submodule work tree '%s'\n"
-msgstr "Không thể gỡ bỏ cây làm việc mô-đun-con “%s”\n"
+msgstr "Không thể gỡ bỏ cây làm việc mô-đun-con '%s'\n"
 
 #, c-format
 msgid "could not create empty submodule directory %s"
-msgstr "không thể tạo thư mục mô-đun-con rỗng “%s”"
+msgstr "không thể tạo thư mục mô-đun-con rỗng '%s'"
 
 #, c-format
 msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
-msgstr "Mô-đun-con “%s” (%s) được đăng ký cho đường dẫn “%s”\n"
+msgstr "Mô-đun-con '%s' (%s) được đăng ký cho đường dẫn '%s'\n"
 
 msgid "remove submodule working trees even if they contain local changes"
 msgstr "gỡ bỏ cây làm việc của mô-đun-con ngay cả khi nó có thay đổi nội bộ"
@@ -12091,10 +12504,11 @@ msgstr "bỏ đăng ký tất cả các trong mô-đun-con"
 msgid ""
 "git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
 msgstr ""
-"git submodule deinit [--quiet] [-f | --force] [--all | [--]  [</đường/dẫn>…]]"
+"git submodule deinit [--quiet] [-f | --force] [--all | [--]  [</đường/"
+"dẫn>...]]"
 
 msgid "Use '--all' if you really want to deinitialize all submodules"
-msgstr "Dùng “--all” nếu bạn thực sự muốn hủy khởi tạo mọi mô-đun-con"
+msgstr "Dùng '--all' nếu bạn thực sự muốn hủy khởi tạo mọi mô-đun-con"
 
 msgid ""
 "An alternate computed from a superproject's alternate is invalid.\n"
@@ -12102,41 +12516,48 @@ msgid ""
 "submodule.alternateErrorStrategy to 'info' or, equivalently, clone with\n"
 "'--reference-if-able' instead of '--reference'."
 msgstr ""
-"Một cái thay thế được tính toán từ một thay thế của siêu dự án là không hợp "
+"Một cái thay thế được tính toán từ một thay thế của project cha là không hợp "
 "lệ.\n"
 "Để cho Git thực hiện nhân bản mà không có cái thay thế như trong trường hợp "
 "này, đặt\n"
-"submodule.alternateErrorStrategy thành “info” hoặc, tương đương, nhân bản "
+"submodule.alternateErrorStrategy thành 'info' hoặc, tương đương, nhân bản "
 "bằng\n"
-"“--reference-if-able” thay vì dùng “--reference”."
+"'--reference-if-able' thay vì dùng '--reference'."
+
+#, c-format
+msgid "could not get a repository handle for gitdir '%s'"
+msgstr "không thể lấy thẻ quản kho cho gitdir '%s'"
 
 #, c-format
 msgid "submodule '%s' cannot add alternate: %s"
-msgstr "mô-đun-con “%s” không thể thêm thay thế: %s"
+msgstr "mô-đun-con '%s' không thể thêm thay thế: %s"
 
 #, c-format
 msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
-msgstr "Giá trị “%s” cho submodule.alternateErrorStrategy không được thừa nhận"
+msgstr "Giá trị '%s' cho submodule.alternateErrorStrategy không được thừa nhận"
 
 #, c-format
 msgid "Value '%s' for submodule.alternateLocation is not recognized"
-msgstr "Giá trị “%s” cho submodule.alternateLocation không được thừa nhận"
+msgstr "Giá trị '%s' cho submodule.alternateLocation không được thừa nhận"
 
 #, c-format
 msgid "refusing to create/use '%s' in another submodule's git dir"
-msgstr "từ chối tạo/dùng “%s” trong một thư mục git của mô đun con"
+msgstr "từ chối tạo/dùng '%s' trong một thư mục git của mô đun con"
 
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
-msgstr "việc sao “%s” vào đường dẫn mô-đun-con “%s” gặp lỗi"
+msgstr "việc sao '%s' vào đường dẫn mô-đun-con '%s' gặp lỗi"
 
 #, c-format
 msgid "directory not empty: '%s'"
-msgstr "thư mục không trống: “%s”"
+msgstr "thư mục không trống: '%s'"
 
 #, c-format
 msgid "could not get submodule directory for '%s'"
-msgstr "không thể lấy thư mục mô-đun-con cho “%s”"
+msgstr "không thể lấy thư mục mô-đun-con cho '%s'"
+
+msgid "alternative anchor for relative paths"
+msgstr "điểm neo thay thế cho các đường dẫn tương đối"
 
 msgid "where the new submodule will be cloned to"
 msgstr "nhân bản mô-đun-con mới vào chỗ nào"
@@ -12165,21 +12586,17 @@ msgstr ""
 "<kho>] [--name <tên>] [--depth <sâu>] [--single-branch] [--filter <filter-"
 "spec>] --url <url> --path </đường/dẫn>"
 
-#, c-format
-msgid "Invalid update mode '%s' for submodule path '%s'"
-msgstr "Chế độ cập nhật “%s” không hợp lệ cho đường dẫn mô-đun-con “%s”"
-
 #, c-format
 msgid "Invalid update mode '%s' configured for submodule path '%s'"
 msgstr ""
-"Chế độ cập nhật “%s” không hợp lệ được cấu hình cho đường dẫn mô-đun-con “%s”"
+"Chế độ cập nhật '%s' không hợp lệ được cấu hình cho đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Submodule path '%s' not initialized"
-msgstr "Đường dẫn mô-đun-con “%s” chưa được khởi tạo"
+msgstr "Đường dẫn mô-đun-con '%s' chưa được khởi tạo"
 
 msgid "Maybe you want to use 'update --init'?"
-msgstr "Có lẽ bạn là bạn muốn dùng \"update --init\" phải không?"
+msgstr "Có lẽ bạn muốn dùng 'update --init'?"
 
 #, c-format
 msgid "Skipping unmerged submodule %s"
@@ -12187,93 +12604,97 @@ msgstr "Bỏ qua các mô-đun-con chưa được hòa trộn %s"
 
 #, c-format
 msgid "Skipping submodule '%s'"
-msgstr "Bỏ qua mô-đun-con “%s”"
+msgstr "Bỏ qua mô-đun-con '%s'"
+
+#, c-format
+msgid "cannot clone submodule '%s' without a URL"
+msgstr "không thể nhân bản mô-đun-con '%s' nếu không có URL"
 
 #, c-format
 msgid "Failed to clone '%s'. Retry scheduled"
-msgstr "Gặp lỗi khi nhân bản “%s”. Thử lại lịch trình"
+msgstr "Gặp lỗi khi nhân bản '%s'. Đã lên lịch thử lại"
 
 #, c-format
 msgid "Failed to clone '%s' a second time, aborting"
-msgstr "Gặp lỗi khi nhân bản “%s” lần thứ hai nên bãi bỏ"
+msgstr "Gặp lỗi khi nhân bản '%s' lần thứ hai, huỷ bỏ"
 
 #, c-format
 msgid "Unable to checkout '%s' in submodule path '%s'"
-msgstr "Không thể lấy ra “%s” trong đường dẫn mô-đun-con “%s”"
+msgstr "Không thể checkout '%s' trong đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Unable to rebase '%s' in submodule path '%s'"
-msgstr "Không thể cải tổ “%s” trong đường dẫn mô-đun-con “%s”"
+msgstr "Không thể cải tổ '%s' trong đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Unable to merge '%s' in submodule path '%s'"
-msgstr "Không thể hòa trộn (merge) “%s” trong đường dẫn mô-đun-con “%s”"
+msgstr "Không thể hòa trộn (merge) '%s' trong đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Execution of '%s %s' failed in submodule path '%s'"
 msgstr ""
-"Thực hiện không thành công lệnh “%s %s” trong đường dẫn mô-đun-con “%s”"
+"Thực hiện không thành công lệnh '%s %s' trong đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Submodule path '%s': checked out '%s'\n"
-msgstr "Đường dẫn mô-đun-con “%s”: đã checkout “%s”\n"
+msgstr "Đường dẫn mô-đun-con '%s': đã checkout '%s'\n"
 
 #, c-format
 msgid "Submodule path '%s': rebased into '%s'\n"
-msgstr "Đường dẫn mô-đun-con “%s”: được rebase vào trong “%s”\n"
+msgstr "Đường dẫn mô-đun-con '%s': được rebase vào trong '%s'\n"
 
 #, c-format
 msgid "Submodule path '%s': merged in '%s'\n"
-msgstr "Đường dẫn mô-đun-con “%s”: được hòa trộn vào “%s”\n"
+msgstr "Đường dẫn mô-đun-con '%s': được hòa trộn vào '%s'\n"
 
 #, c-format
 msgid "Submodule path '%s': '%s %s'\n"
-msgstr "Đường dẫn mô-đun-con “%s”: “%s %s”\n"
+msgstr "Đường dẫn mô-đun-con '%s': '%s %s'\n"
 
 #, c-format
 msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
 msgstr ""
-"Không thể lấy về trong đường dẫn mô-đun-con “%s”; thử lấy về trực tiếp %s:"
+"Không thể lấy về trong đường dẫn mô-đun-con '%s'; thử lấy về trực tiếp %s:"
 
 #, c-format
 msgid ""
 "Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
 "of that commit failed."
 msgstr ""
-"Đã lấy về từ đường dẫn mô-đun con “%s”, nhưng nó không chứa %s. Lấy về trực "
+"Đã lấy về từ đường dẫn mô-đun con '%s', nhưng nó không chứa %s. Lấy về trực "
 "tiếp lần chuyển giao gặp lỗi đó."
 
+#, c-format
+msgid "could not initialize submodule at path '%s'"
+msgstr "Không thể khởi tạo mô-đun-con tại đường dẫn '%s'"
+
 #, c-format
 msgid ""
 "Submodule (%s) branch configured to inherit branch from superproject, but "
 "the superproject is not on any branch"
 msgstr ""
-"Nhánh mô-đun-con (%s) được cấu hình kế thừa nhánh từ siêu dự án, nhưng siêu "
-"dự án lại không trên bất kỳ nhánh nào"
-
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "không thể lấy thẻ quản kho cho mô-đun-con “%s”"
+"Nhánh mô-đun-con (%s) được cấu hình kế thừa nhánh từ project cha, nhưng "
+"project cha lại không trên bất kỳ nhánh nào"
 
 #, c-format
 msgid "Unable to find current revision in submodule path '%s'"
 msgstr ""
-"Không tìm thấy điểm xét duyệt hiện hành trong đường dẫn mô-đun-con “%s”"
+"Không tìm thấy điểm xét duyệt hiện hành trong đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Unable to fetch in submodule path '%s'"
-msgstr "Không thể lấy về trong đường dẫn mô-đun-con “%s”"
+msgstr "Không thể lấy về trong đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Unable to find %s revision in submodule path '%s'"
-msgstr "Không tìm thấy điểm xét duyệt %s trong đường dẫn mô-đun-con “%s”"
+msgstr "Không tìm thấy điểm xét duyệt %s trong đường dẫn mô-đun-con '%s'"
 
 #, c-format
 msgid "Failed to recurse into submodule path '%s'"
-msgstr "Gặp lỗi khi đệ quy vào trong đường dẫn mô-đun-con “%s”"
+msgstr "Gặp lỗi khi đệ quy vào trong đường dẫn mô-đun-con '%s'"
 
 msgid "force checkout updates"
-msgstr "ép buộc lấy ra các cập nhật"
+msgstr "ép buộc checkout các cập nhật"
 
 msgid "initialize uninitialized submodules before update"
 msgstr "khởi tạo mô-đun-con chưa khởi tạo trước khi cập nhật"
@@ -12287,14 +12708,14 @@ msgstr "đi theo mô-đun con một cách đệ quy"
 msgid "don't fetch new objects from the remote site"
 msgstr "đừng lấy các đối tượng mới từ địa chỉ trên mạng"
 
-msgid "path into the working tree"
-msgstr "đường dẫn đến cây làm việc"
+msgid "use the 'checkout' update strategy (default)"
+msgstr "dùng chiến lược hòa trộn 'checkout' (mặc định)"
 
-msgid "path into the working tree, across nested submodule boundaries"
-msgstr "đường dẫn đến cây làm việc, chéo biên giới mô-đun-con lồng nhau"
+msgid "use the 'merge' update strategy"
+msgstr "dùng chiến lược hòa trộn 'merge'"
 
-msgid "rebase, merge, checkout or none"
-msgstr "rebase, merge, checkout hoặc không làm gì cả"
+msgid "use the 'rebase' update strategy"
+msgstr "dùng chiến lược hòa trộn 'rebase'"
 
 msgid "create a shallow clone truncated to the specified number of revisions"
 msgstr ""
@@ -12309,6 +12730,9 @@ msgstr "nhân bản lần đầu có nên theo khuyến nghị là nông hay kh
 msgid "don't print cloning progress"
 msgstr "đừng in tiến trình nhân bản"
 
+msgid "disallow cloning into non-empty directory, implies --init"
+msgstr "không cho phép nhân bản vào thư mục trống, ngụ ý --init"
+
 msgid ""
 "git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
 "[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
@@ -12320,35 +12744,17 @@ msgstr ""
 "shallow] [--reference <kho>] [--recursive] [--[no-]single-branch] [--] [</"
 "đường/dẫn/>...]"
 
-msgid "bad value for update parameter"
-msgstr "giá trị cho  tham số cập nhật bị sai"
-
-msgid "recurse into submodules"
-msgstr "đệ quy vào trong mô-đun-con"
-
-msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
-msgstr "git submodule--helper absorb-git-dirs [<các tùy chọn>] [</đường/dẫn>…]"
-
-msgid "check if it is safe to write to the .gitmodules file"
-msgstr "chọn nếu nó là an toàn để ghi vào tập tin .gitmodules"
-
-msgid "unset the config in the .gitmodules file"
-msgstr "bỏ đặt cấu hình trong tập tin .gitmodules"
-
-msgid "git submodule--helper config <name> [<value>]"
-msgstr "git submodule--helper config <tên> [<giá trị>]"
-
-msgid "git submodule--helper config --unset <name>"
-msgstr "git submodule--helper config --unset <tên>"
+msgid "Failed to resolve HEAD as a valid ref."
+msgstr "Gặp lỗi khi phân giải HEAD như là một tham chiếu hợp lệ."
 
-msgid "please make sure that the .gitmodules file is in the working tree"
-msgstr "hãy đảm bảo rằng tập tin .gitmodules có trong cây làm việc"
+msgid "git submodule absorbgitdirs [<options>] [<path>...]"
+msgstr "git submodule absorbgitdirs [<các tùy chọn>] [</đường/dẫn>...]"
 
 msgid "suppress output for setting url of a submodule"
-msgstr "chặn kết xuất cho cài đặt url của một mô-đun-con"
+msgstr "chặn đầu ra cho việc đặt url của một mô-đun-con"
 
-msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
-msgstr "git submodule--helper set-url [--quiet] </đường/dẫn> <url_mới>"
+msgid "git submodule set-url [--quiet] <path> <newurl>"
+msgstr "git submodule set-url [--quiet] </đường/dẫn> <url_mới>"
 
 msgid "set the default tracking branch to master"
 msgstr "đặt nhánh theo dõi mặc định thành master"
@@ -12356,15 +12762,12 @@ msgstr "đặt nhánh theo dõi mặc định thành master"
 msgid "set the default tracking branch"
 msgstr "đặt nhánh theo dõi mặc định"
 
-msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>"
-msgstr ""
-"git submodule--helper set-branch [-q|--quiet](-d|--default)</đường/dẫn>"
+msgid "git submodule set-branch [-q|--quiet] (-d|--default) <path>"
+msgstr "git submodule set-branch [-q|--quiet](-d|--default)</đường/dẫn>"
 
-msgid ""
-"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>"
+msgid "git submodule set-branch [-q|--quiet] (-b|--branch) <branch> <path>"
 msgstr ""
-"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <nhánh> </đường/"
-"dẫn>"
+"git submodule set-branch [-q|--quiet] (-b|--branch) <nhánh> </đường/dẫn>"
 
 msgid "--branch or --default required"
 msgstr "cần --branch hoặc --default"
@@ -12387,19 +12790,19 @@ msgstr ""
 
 #, c-format
 msgid "creating branch '%s'"
-msgstr "đang tạo nhánh “%s”"
+msgstr "đang tạo nhánh '%s'"
 
 #, c-format
 msgid "Adding existing repo at '%s' to the index\n"
-msgstr "Đang thêm repo có sẵn tại “%s” vào bảng mục lục\n"
+msgstr "Đang thêm repo có sẵn tại '%s' vào chỉ mục\n"
 
 #, c-format
 msgid "'%s' already exists and is not a valid git repo"
-msgstr "“%s” đã tồn tại từ trước và không phải là một kho git hợp lệ"
+msgstr "'%s' đã tồn tại từ trước và không phải là một kho git hợp lệ"
 
 #, c-format
 msgid "A git directory for '%s' is found locally with remote(s):\n"
-msgstr "Thư mục git cho “%s” được tìm thấy một cách cục bộ với các máy chủ:\n"
+msgstr "Thư mục git cho '%s' được tìm thấy một cách cục bộ với các máy chủ:\n"
 
 #, c-format
 msgid ""
@@ -12413,39 +12816,41 @@ msgstr ""
 "Nếu bạn muốn sử dụng lại thư mục git nội bộ này thay vì nhân bản lại lần nữa "
 "từ\n"
 "  %s\n"
-"dùng tùy chọn “--force”. Nếu thư mục git nội bộ không phải là một kho đúng "
+"dùng tùy chọn '--force'. Nếu thư mục git nội bộ không phải là một kho đúng "
 "hoặc\n"
-"là bạn không chắc chắn điều đó nghĩa là gì thì chọn tên khác với tùy chọn --"
-"name."
+"là bạn không chắc chắn điều đó nghĩa là gì thì chọn tên khác với tùy chọn '--"
+"name'."
 
 #, c-format
 msgid "Reactivating local git directory for submodule '%s'\n"
-msgstr "Phục hồi sự hoạt động của thư mục git nội bộ cho mô-đun-con “%s”.\n"
+msgstr "Phục hồi sự hoạt động của thư mục git nội bộ cho mô-đun-con '%s'.\n"
 
 #, c-format
 msgid "unable to checkout submodule '%s'"
-msgstr "không thể lấy ra mô-đun-con “%s”"
+msgstr "không thể checkout mô-đun-con '%s'"
+
+msgid "please make sure that the .gitmodules file is in the working tree"
+msgstr "hãy đảm bảo rằng tập tin .gitmodules có trong cây làm việc"
 
 #, c-format
 msgid "Failed to add submodule '%s'"
-msgstr "Gặp lỗi khi thêm mô-đun-con “%s”"
+msgstr "Gặp lỗi khi thêm mô-đun-con '%s'"
 
 #, c-format
 msgid "Failed to register submodule '%s'"
-msgstr "Gặp lỗi khi đăng ký mô-đun-con “%s”"
+msgstr "Gặp lỗi khi đăng ký mô-đun-con '%s'"
 
 #, c-format
 msgid "'%s' already exists in the index"
-msgstr "”%s” thực sự đã tồn tại ở bảng mục lục rồi"
+msgstr "'%s' thực sự đã tồn tại ở chỉ mục rồi"
 
 #, c-format
 msgid "'%s' already exists in the index and is not a submodule"
-msgstr ""
-"”%s” thực sự đã tồn tại ở bảng mục lục rồi và không phải là một mô-đun-con"
+msgstr "'%s' thực sự đã tồn tại ở chỉ mục rồi và không phải là một mô-đun-con"
 
 #, c-format
 msgid "'%s' does not have a commit checked out"
-msgstr "“%s” không có một lần chuyển giao nào được lấy ra"
+msgstr "'%s' không có một lần chuyển giao nào được checkout"
 
 msgid "branch of repository to add as submodule"
 msgstr "nhánh của kho để thêm như là mô-đun-con"
@@ -12462,8 +12867,8 @@ msgid ""
 msgstr ""
 "đặt tên của mô-đun-con bằng chuỗi đã cho thay vì mặc định là đường dẫn của nó"
 
-msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
-msgstr "git submodule--helper add [<các tùy chọn>] [--] <kho> [</đường/dẫn>]"
+msgid "git submodule add [<options>] [--] <repository> [<path>]"
+msgstr "git submodule add [<các tùy chọn>] [--] <kho> [</đường/dẫn>]"
 
 msgid "Relative path can only be used from the toplevel of the working tree"
 msgstr ""
@@ -12472,28 +12877,26 @@ msgstr ""
 
 #, c-format
 msgid "repo URL: '%s' must be absolute or begin with ./|../"
-msgstr "repo URL: “%s” phải là đường dẫn tuyệt đối hoặc là bắt đầu bằng ./|../"
+msgstr "repo URL: '%s' phải là đường dẫn tuyệt đối hoặc là bắt đầu bằng ./|../"
 
 #, c-format
 msgid "'%s' is not a valid submodule name"
-msgstr "“%s” không phải là một tên mô-đun-con hợp lệ"
+msgstr "'%s' không phải là một tên mô-đun-con hợp lệ"
 
-#, c-format
-msgid "%s doesn't support --super-prefix"
-msgstr "%s không hỗ trợ --super-prefix"
+msgid "git submodule--helper <command>"
+msgstr "git submodule--helper <lệnh>"
 
-#, c-format
-msgid "'%s' is not a valid submodule--helper subcommand"
-msgstr "“%s” không phải là lệnh con submodule--helper hợp lệ"
+msgid "git symbolic-ref [-m <reason>] <name> <ref>"
+msgstr "git symbolic-ref [-m <lý do>] <tên> <tham chiếu>"
 
-msgid "git symbolic-ref [<options>] <name> [<ref>]"
-msgstr "git symbolic-ref [<các tùy chọn>] <tên> [<t.chiếu>]"
+msgid "git symbolic-ref [-q] [--short] [--no-recurse] <name>"
+msgstr "git symbolic-ref [-q] [--short] [--no-recurse] <tên>"
 
-msgid "git symbolic-ref -d [-q] <name>"
-msgstr "git symbolic-ref -d [-q] <tên>"
+msgid "git symbolic-ref --delete [-q] <name>"
+msgstr "git symbolic-ref --delete [-q] <tên>"
 
 msgid "suppress error message for non-symbolic (detached) refs"
-msgstr "chặn các thông tin lỗi cho các tham chiếu “không-mềm” (bị tách ra)"
+msgstr "chặn các thông tin lỗi cho các tham chiếu 'không-mềm' (bị tách ra)"
 
 msgid "delete symbolic ref"
 msgstr "xóa tham chiếu mềm"
@@ -12501,6 +12904,9 @@ msgstr "xóa tham chiếu mềm"
 msgid "shorten ref output"
 msgstr "làm ngắn kết xuất ref (tham chiếu)"
 
+msgid "recursively dereference (default)"
+msgstr "chế độ giải tham chiếu đệ quy (mặc định)"
+
 msgid "reason"
 msgstr "lý do"
 
@@ -12508,61 +12914,63 @@ msgid "reason of the update"
 msgstr "lý do cập nhật"
 
 msgid ""
-"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
-"        <tagname> [<head>]"
+"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] [-e]\n"
+"        <tagname> [<commit> | <object>]"
 msgstr ""
-"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <tập-tin>]\n"
-"        <tên-thẻ> [<head>]"
+"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <tập-tin>] [-e]\n"
+"        <tên-thẻ> [<lần chuyển giao> | <đối tượng> ]"
 
 msgid "git tag -d <tagname>..."
-msgstr "git tag -d <tên-thẻ>"
+msgstr "git tag -d <tên-thẻ>..."
 
 msgid ""
-"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
-"points-at <object>]\n"
-"        [--format=<format>] [--merged <commit>] [--no-merged <commit>] "
-"[<pattern>...]"
+"git tag [-n[<num>]] -l [--contains <commit>] [--no-contains <commit>]\n"
+"        [--points-at <object>] [--column[=<options>] | --no-column]\n"
+"        [--create-reflog] [--sort=<key>] [--format=<format>]\n"
+"        [--merged <commit>] [--no-merged <commit>] [<pattern>...]"
 msgstr ""
-"git tag -l [-n[<số>]] [--contains <lần_chuyển_giao>] [--no-contains "
-"<lần_chuyển_giao>] [--points-at <đối-tượng>]\n"
-"        [--format=<định_dạng>] [--merged <lần_chuyển_giao>] [--no-merged "
-"[<lần_chuyển_giao>]] [<mẫu>…]"
+"git tag [-n[<số>]] -l [--contains <lần_chuyển_giao>] [--no-contains "
+"<lần_chuyển_giao>]\n"
+"        [--points-at <đối-tượng>] [--column[=<options>] | --no-column]\n"
+"        [--create-reflog] [--sort=<key>] [--format=<định dạng>]\n"
+"        [--merged <lần_chuyển_giao>] [--no-merged <lần_chuyển_giao>] "
+"[<mẫu>...]"
 
 msgid "git tag -v [--format=<format>] <tagname>..."
-msgstr "git tag -v [--format=<định_dạng>]  <tên-thẻ>…"
+msgstr "git tag -v [--format=<định dạng>] <tên-thẻ>..."
 
 #, c-format
 msgid "tag '%s' not found."
-msgstr "không tìm thấy tìm thấy thẻ “%s”."
+msgstr "không tìm thấy thẻ '%s'."
 
 #, c-format
 msgid "Deleted tag '%s' (was %s)\n"
-msgstr "Thẻ đã bị xóa “%s” (từng là %s)\n"
+msgstr "Thẻ đã bị xóa '%s' (từng là %s)\n"
 
 #, c-format
 msgid ""
 "\n"
 "Write a message for tag:\n"
 "  %s\n"
-"Lines starting with '%c' will be ignored.\n"
+"Lines starting with '%s' will be ignored.\n"
 msgstr ""
 "\n"
 "Viết các ghi chú cho thẻ:\n"
 "  %s\n"
-"Những dòng được bắt đầu bằng “%c” sẽ được bỏ qua.\n"
+"Những dòng được bắt đầu bằng '%s' sẽ được bỏ qua.\n"
 
 #, c-format
 msgid ""
 "\n"
 "Write a message for tag:\n"
 "  %s\n"
-"Lines starting with '%c' will be kept; you may remove them yourself if you "
+"Lines starting with '%s' will be kept; you may remove them yourself if you "
 "want to.\n"
 msgstr ""
 "\n"
 "Viết các ghi chú cho thẻ:\n"
 "  %s\n"
-"Những dòng được bắt đầu bằng “%c” sẽ được giữ lại; bạn có thể xóa chúng đi "
+"Những dòng được bắt đầu bằng '%s' sẽ được giữ lại; bạn có thể xóa chúng đi "
 "nếu muốn.\n"
 
 msgid "unable to sign the tag"
@@ -12647,17 +13055,20 @@ msgstr "chỉ hiển thị những thẻ mà nó không được hòa trộn"
 msgid "print only tags of the object"
 msgstr "chỉ hiển thị các thẻ của đối tượng"
 
+msgid "could not start 'git column'"
+msgstr "không thể chạy 'git column'"
+
 #, c-format
 msgid "the '%s' option is only allowed in list mode"
 msgstr "tùy chọn '%s' chỉ cho phép dùng trong chế độ liệt kê"
 
 #, c-format
 msgid "'%s' is not a valid tag name."
-msgstr "“%s” không phải thẻ hợp lệ."
+msgstr "'%s' không phải thẻ hợp lệ."
 
 #, c-format
 msgid "tag '%s' already exists"
-msgstr "thẻ “%s” đã tồn tại rồi"
+msgstr "thẻ '%s' đã tồn tại rồi"
 
 #, c-format
 msgid "Invalid cleanup mode %s"
@@ -12665,11 +13076,21 @@ msgstr "Chế độ dọn dẹp không hợp lệ %s"
 
 #, c-format
 msgid "Updated tag '%s' (was %s)\n"
-msgstr "Đã cập nhật thẻ “%s” (trước là %s)\n"
+msgstr "Đã cập nhật thẻ '%s' (trước là %s)\n"
 
 msgid "pack exceeds maximum allowed size"
 msgstr "gói đã vượt quá cỡ tối đa được phép"
 
+msgid "failed to write object in stream"
+msgstr "gặp lỗi khi đọc đối tượng trong stream"
+
+#, c-format
+msgid "inflate returned (%d)"
+msgstr "inflate trả về (%d)"
+
+msgid "invalid blob object from stream"
+msgstr "đối tượng blob không hợp lệ trong stream"
+
 msgid "Unpacking objects"
 msgstr "Đang giải nén các đối tượng"
 
@@ -12687,7 +13108,7 @@ msgstr "gặp lỗi khi xóa thư mục %s"
 
 #, c-format
 msgid "Testing mtime in '%s' "
-msgstr "Đang kiểm thử mtime trong “%s” "
+msgstr "Đang kiểm thử mtime trong '%s' "
 
 msgid "directory stat info does not change after adding a new file"
 msgstr "thông tin thống kê thư mục không thay đổi sau khi thêm tập tin mới"
@@ -12713,38 +13134,37 @@ msgid " OK"
 msgstr " Đồng ý"
 
 msgid "git update-index [<options>] [--] [<file>...]"
-msgstr "git update-index [<các tùy chọn>] [--] [<tập-tin>]"
+msgstr "git update-index [<các tùy chọn>] [--] [<tập-tin>...]"
 
 msgid "continue refresh even when index needs update"
-msgstr "tiếp tục làm mới ngay cả khi bảng mục lục cần được cập nhật"
+msgstr "tiếp tục làm mới ngay cả khi chỉ mục cần được cập nhật"
 
 msgid "refresh: ignore submodules"
-msgstr "refresh: lờ đi mô-đun-con"
+msgstr "refresh: bỏ qua mô-đun-con"
 
 msgid "do not ignore new files"
 msgstr "không bỏ qua các tập tin mới tạo"
 
 msgid "let files replace directories and vice-versa"
-msgstr "để các tập tin thay thế các thư mục và “vice-versa”"
+msgstr "để các tập tin thay thế các thư mục và 'vice-versa'"
 
 msgid "notice files missing from worktree"
 msgstr "thông báo các tập-tin thiếu trong thư-mục làm việc"
 
 msgid "refresh even if index contains unmerged entries"
-msgstr ""
-"làm tươi mới thậm chí khi bảng mục lục chứa các mục tin chưa được hòa trộn"
+msgstr "làm tươi mới thậm chí khi chỉ mục chứa các mục tin chưa được hòa trộn"
 
 msgid "refresh stat information"
 msgstr "lấy lại thông tin thống kê"
 
 msgid "like --refresh, but ignore assume-unchanged setting"
-msgstr "giống --refresh, nhưng bỏ qua các cài đặt “assume-unchanged”"
+msgstr "giống --refresh, nhưng bỏ qua các cài đặt 'assume-unchanged'"
 
 msgid "<mode>,<object>,<path>"
 msgstr "<chế_độ>,<đối_tượng>,<đường_dẫn>"
 
 msgid "add the specified entry to the index"
-msgstr "thêm các tập tin đã chỉ ra vào bảng mục lục"
+msgstr "thêm các tập tin đã chỉ ra vào chỉ mục"
 
 msgid "mark files as \"not changing\""
 msgstr "đánh dấu các tập tin là \"không thay đổi\""
@@ -12753,7 +13173,7 @@ msgid "clear assumed-unchanged bit"
 msgstr "xóa bít assumed-unchanged (giả định là không thay đổi)"
 
 msgid "mark files as \"index-only\""
-msgstr "đánh dấu các tập tin là “chỉ-đọc”"
+msgstr "đánh dấu các tập tin là 'chỉ-đọc'"
 
 msgid "clear skip-worktree bit"
 msgstr "xóa bít skip-worktree"
@@ -12762,8 +13182,7 @@ msgid "do not touch index-only entries"
 msgstr "đừng động vào các mục index-only"
 
 msgid "add to index only; do not add content to object database"
-msgstr ""
-"chỉ thêm vào bảng mục lục; không thêm nội dung vào cơ sở dữ liệu đối tượng"
+msgstr "chỉ thêm vào chỉ mục; không thêm nội dung vào cơ sở dữ liệu đối tượng"
 
 msgid "remove named paths even if present in worktree"
 msgstr ""
@@ -12771,13 +13190,13 @@ msgstr ""
 "làm việc"
 
 msgid "with --stdin: input lines are terminated by null bytes"
-msgstr "với tùy chọn --stdin: các dòng đầu vào được chấm dứt bởi ký tự null"
+msgstr "với tùy chọn --stdin: các dòng đầu vào được kết thúc bởi ký tự null"
 
 msgid "read list of paths to be updated from standard input"
-msgstr "đọc danh sách đường dẫn cần cập nhật từ đầu vào tiêu chuẩn"
+msgstr "đọc danh sách đường dẫn cần cập nhật từ stdin"
 
 msgid "add entries from standard input to the index"
-msgstr "không thể đọc các mục từ đầu vào tiêu chuẩn vào bảng mục lục"
+msgstr "không thể đọc các mục từ stdin vào chỉ mục"
 
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "phục hồi các trạng thái #2 và #3 cho các đường dẫn được liệt kê"
@@ -12789,16 +13208,19 @@ msgid "ignore files missing from worktree"
 msgstr "bỏ qua các tập-tin thiếu trong thư-mục làm việc"
 
 msgid "report actions to standard output"
-msgstr "báo cáo các thao tác ra thiết bị xuất chuẩn"
+msgstr "ghi các thao tác ra stdout"
 
 msgid "(for porcelains) forget saved unresolved conflicts"
-msgstr "(cho “porcelains”) quên các xung đột chưa được giải quyết đã ghi"
+msgstr "(cho 'porcelains') quên các xung đột chưa được giải quyết đã ghi"
 
 msgid "write index in this format"
-msgstr "ghi mục lục ở định dạng này"
+msgstr "ghi chỉ mục ở định dạng này"
+
+msgid "report on-disk index format version"
+msgstr "cho biết phiên bản định dạng chỉ mục trên đĩa"
 
 msgid "enable or disable split index"
-msgstr "bật/tắt chia cắt bảng mục lục"
+msgstr "bật/tắt chia cắt chỉ mục"
 
 msgid "enable/disable untracked cache"
 msgstr "bật/tắt bộ đệm không theo vết"
@@ -12810,7 +13232,7 @@ msgid "enable untracked cache without testing the filesystem"
 msgstr "bật bộ đệm không theo vết mà không kiểm tra hệ thống tập tin"
 
 msgid "write out the index even if is not flagged as changed"
-msgstr "ghi ra mục lục ngay cả khi không được đánh cờ là có thay đổi"
+msgstr "ghi ra chỉ mục ngay cả khi không được đánh cờ là có thay đổi"
 
 msgid "enable or disable file system monitor"
 msgstr "bật/tắt theo dõi hệ thống tập tin"
@@ -12821,19 +13243,27 @@ msgstr "đánh dấu các tập tin là hợp lệ fsmonitor"
 msgid "clear fsmonitor valid bit"
 msgstr "xóa bít hợp lệ fsmonitor"
 
+#, c-format
+msgid "%d\n"
+msgstr "%d\n"
+
+#, c-format
+msgid "index-version: was %d, set to %d"
+msgstr "index-version: đang là %d, đặt về %d"
+
 msgid ""
 "core.splitIndex is set to false; remove or change it, if you really want to "
 "enable split index"
 msgstr ""
 "core.splitIndex được đặt là sai; xóa bỏ hay thay đổi nó, nếu bạn thực sự "
-"muốn bật chia tách mục lục"
+"muốn bật chia tách chỉ mục"
 
 msgid ""
 "core.splitIndex is set to true; remove or change it, if you really want to "
 "disable split index"
 msgstr ""
 "core.splitIndex được đặt là đúng; xóa bỏ hay thay đổi nó, nếu bạn thực sự "
-"muốn tắt chia tách mục lục"
+"muốn tắt chia tách chỉ mục"
 
 msgid ""
 "core.untrackedCache is set to true; remove or change it, if you really want "
@@ -12854,7 +13284,7 @@ msgstr ""
 
 #, c-format
 msgid "Untracked cache enabled for '%s'"
-msgstr "Nhớ đệm không theo vết được bật cho “%s”"
+msgstr "Nhớ đệm không theo vết được bật cho '%s'"
 
 msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
 msgstr ""
@@ -12873,11 +13303,11 @@ msgstr ""
 msgid "fsmonitor disabled"
 msgstr "fsmonitor bị tắt"
 
-msgid "git update-ref [<options>] -d <refname> [<old-val>]"
-msgstr "git update-ref [<các tùy chọn>] -d <refname> [<biến-cũ>]"
+msgid "git update-ref [<options>] -d <refname> [<old-oid>]"
+msgstr "git update-ref [<các tùy chọn>] -d <refname> [<oid-cũ>]"
 
-msgid "git update-ref [<options>]    <refname> <new-val> [<old-val>]"
-msgstr "git update-ref [<các tùy chọn>]    <refname> <biến-mới> [<biến-cũ>]"
+msgid "git update-ref [<options>]    <refname> <new-oid> [<old-oid>]"
+msgstr "git update-ref [<các tùy chọn>]    <refname> <oid-mới> [<oid-cũ>]"
 
 msgid "git update-ref [<options>] --stdin [-z]"
 msgstr "git update-ref [<các tùy chọn>] --stdin [-z]"
@@ -12889,19 +13319,23 @@ msgid "update <refname> not the one it points to"
 msgstr "cập nhật <tên-tham-chiếu> không phải cái nó chỉ tới"
 
 msgid "stdin has NUL-terminated arguments"
-msgstr "đầu vào tiêu chuẩn có các đối số được chấm dứt bởi NUL"
+msgstr "stdin có các đối số được kết thúc bởi NUL"
 
 msgid "read updates from stdin"
-msgstr "đọc cập nhật từ đầu vào tiêu chuẩn"
+msgstr "đọc cập nhật từ stdin"
 
 msgid "update the info files from scratch"
 msgstr "cập nhật các tập tin thông tin từ điểm xuất phát"
 
-msgid "git upload-pack [<options>] <dir>"
-msgstr "git upload-pack [<các tùy chọn>] </đường/dẫn>"
+msgid ""
+"git-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc]\n"
+"                [--advertise-refs] <directory>"
+msgstr ""
+"git-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc]\n"
+"                [--advertise-refs] <thư mục>"
 
 msgid "quit after a single request/response exchange"
-msgstr "thoát sau khi một trao đổi yêu cầu hay trả lời đơn"
+msgstr "thoát sau một trao đổi yêu cầu/trả lời"
 
 msgid "serve up the info/refs for git-http-backend"
 msgstr "phục vụ info/refs (thông tin/tham chiếu) cho git-http-backend"
@@ -12912,8 +13346,8 @@ msgstr "đừng thử <thư_mục>/.git/ nếu <thư_mục> không phải là th
 msgid "interrupt transfer after <n> seconds of inactivity"
 msgstr "ngắt truyền thông sau <n> giây không hoạt động"
 
-msgid "git verify-commit [-v | --verbose] <commit>..."
-msgstr "git verify-commit [-v | --verbose] <lần_chuyển_giao>…"
+msgid "git verify-commit [-v | --verbose] [--raw] <commit>..."
+msgstr "git verify-commit [-v | --verbose] [--raw] <lần_chuyển_giao>..."
 
 msgid "print commit contents"
 msgstr "hiển thị nội dung của lần chuyển giao"
@@ -12921,8 +13355,8 @@ msgstr "hiển thị nội dung của lần chuyển giao"
 msgid "print raw gpg status output"
 msgstr "in kết xuất trạng thái gpg dạng thô"
 
-msgid "git verify-pack [-v | --verbose] [-s | --stat-only] <pack>..."
-msgstr "git verify-pack [-v | --verbose] [-s | --stat-only] <gói>…"
+msgid "git verify-pack [-v | --verbose] [-s | --stat-only] [--] <pack>.idx..."
+msgstr "git verify-pack [-v | --verbose] [-s | --stat-only] [--] <gói>.idx..."
 
 msgid "verbose"
 msgstr "chi tiết"
@@ -12930,69 +13364,106 @@ msgstr "chi tiết"
 msgid "show statistics only"
 msgstr "chỉ hiển thị thống kê"
 
-msgid "git verify-tag [-v | --verbose] [--format=<format>] <tag>..."
-msgstr "git verify-tag [-v | --verbose] [--format=<định_dạng>] <thẻ>…"
+msgid "git verify-tag [-v | --verbose] [--format=<format>] [--raw] <tag>..."
+msgstr ""
+"git verify-tag [-v | --verbose] [--format=<định dạng>] [--raw] <thẻ>..."
 
 msgid "print tag contents"
 msgstr "hiển thị nội dung của thẻ"
 
-msgid "git worktree add [<options>] <path> [<commit-ish>]"
-msgstr "git worktree add [<các tùy chọn>] </đường/dẫn> [<commit-ish>]"
+msgid ""
+"git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]]\n"
+"                 [--orphan] [(-b | -B) <new-branch>] <path> [<commit-ish>]"
+msgstr ""
+"git worktree add [-f] [--detach] [--checkout] [--lock [--reason <lý do>]]\n"
+"                 [--orphan] [(-b | -B) <nhánh-mới>] <đường/dẫn> [<commit-"
+"ish>]"
 
-msgid "git worktree list [<options>]"
-msgstr "git worktree list [<các tùy chọn>]"
+msgid "git worktree list [-v | --porcelain [-z]]"
+msgstr "git worktree list [-v | --porcelain [-z]]"
 
-msgid "git worktree lock [<options>] <path>"
-msgstr "git worktree lock [<các tùy chọn>] </đường/dẫn>"
+msgid "git worktree lock [--reason <string>] <worktree>"
+msgstr "git worktree lock [--reason <lý do>] <cây làm việc>"
 
 msgid "git worktree move <worktree> <new-path>"
-msgstr "git worktree move <worktree> </đường/dẫn/mới>"
+msgstr "git worktree move <cây làm việc> </đường/dẫn/mới>"
 
-msgid "git worktree prune [<options>]"
-msgstr "git worktree prune [<các tùy chọn>]"
+msgid "git worktree prune [-n] [-v] [--expire <expire>]"
+msgstr "git worktree prune [-n] [-v] [--expire <khi nào hết hạn>]"
 
-msgid "git worktree remove [<options>] <worktree>"
-msgstr "git worktree remove [<các tùy chọn>] <worktree>"
+msgid "git worktree remove [-f] <worktree>"
+msgstr "git worktree remove [-f] <cây làm việc>"
 
 msgid "git worktree repair [<path>...]"
 msgstr "git worktree repair [</đường/dẫn/>...]"
 
-msgid "git worktree unlock <path>"
-msgstr "git worktree unlock </đường/dẫn>"
+msgid "git worktree unlock <worktree>"
+msgstr "git worktree unlock <cây làm việc>"
+
+msgid "No possible source branch, inferring '--orphan'"
+msgstr "Không có nhánh gốc, đoán là --orphan"
+
+#, c-format
+msgid ""
+"If you meant to create a worktree containing a new unborn branch\n"
+"(branch with no commits) for this repository, you can do so\n"
+"using the --orphan flag:\n"
+"\n"
+"    git worktree add --orphan -b %s %s\n"
+msgstr ""
+"Nếu bạn muốn tạo cây làm việc với nhánh chưa sinh\n"
+"(nhánh chưa có lần chuyển giao) cho kho chứa này, bạn có thể dùng\n"
+"tuỳ chọn --orphan:\n"
+"\n"
+"    git worktree add --orphan -b %s %s\n"
+
+#, c-format
+msgid ""
+"If you meant to create a worktree containing a new unborn branch\n"
+"(branch with no commits) for this repository, you can do so\n"
+"using the --orphan flag:\n"
+"\n"
+"    git worktree add --orphan %s\n"
+msgstr ""
+"Nếu bạn muốn tạo cây làm việc với nhánh chưa sinh\n"
+"(nhánh chưa có lần chuyển giao) cho kho chứa này, bạn có thể dùng\n"
+"tuỳ chọn --orphan:\n"
+"\n"
+"    git worktree add --orphan %s\n"
 
 #, c-format
 msgid "Removing %s/%s: %s"
 msgstr "Đang xóa %s/%s: %s"
 
 msgid "report pruned working trees"
-msgstr "báo cáo các cây làm việc đã prune"
+msgstr "liệt kê các cây làm việc đã prune"
 
 msgid "expire working trees older than <time>"
 msgstr "các cây làm việc hết hạn cũ hơn khoảng <thời gian>"
 
 #, c-format
 msgid "'%s' already exists"
-msgstr "“%s” đã có từ trước rồi"
+msgstr "'%s' đã có từ trước rồi"
 
 #, c-format
 msgid "unusable worktree destination '%s'"
-msgstr "đích cây làm việc không sử dụng được “%s”"
+msgstr "đích cây làm việc không sử dụng được '%s'"
 
 #, c-format
 msgid ""
 "'%s' is a missing but locked worktree;\n"
 "use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
 msgstr ""
-"“%s” bị mất nhưng cây làm việc bị khóa;\n"
-"dùng “%s -f -f” để ghi đè, hoặc “unlock” và “prune” hay “remove” để xóa"
+"'%s' bị mất nhưng cây làm việc bị khóa;\n"
+"dùng '%s -f -f' để ghi đè, hoặc 'unlock' và 'prune' hay 'remove' để xóa"
 
 #, c-format
 msgid ""
 "'%s' is a missing but already registered worktree;\n"
 "use '%s -f' to override, or 'prune' or 'remove' to clear"
 msgstr ""
-"“%s” bị mất nhưng cây làm việc đã được đăng ký;\n"
-"dùng “%s -f” để ghi đè, hoặc “prune” hay “remove” để xóa"
+"'%s' bị mất nhưng cây làm việc đã được đăng ký;\n"
+"dùng '%s -f' để ghi đè, hoặc 'prune' hay 'remove' để xóa"
 
 #, c-format
 msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
@@ -13000,37 +13471,62 @@ msgstr "gặp lỗi khi sao chép '%s' sang '%s'; không thể làm việc đún
 
 #, c-format
 msgid "failed to copy worktree config from '%s' to '%s'"
-msgstr "gặp lỗi khi sao chép cấu hình cây làm việc từ “%s” sang “%s”"
+msgstr "gặp lỗi khi sao chép cấu hình cây làm việc từ '%s' sang '%s'"
 
 #, c-format
 msgid "failed to unset '%s' in '%s'"
-msgstr "gặp lỗi bỏ đặt “%s” trong “%s”"
+msgstr "gặp lỗi bỏ đặt '%s' trong '%s'"
 
 #, c-format
 msgid "could not create directory of '%s'"
-msgstr "không thể tạo thư mục của “%s”"
+msgstr "không thể tạo thư mục của '%s'"
 
 msgid "initializing"
 msgstr "khởi tạo"
 
+#, c-format
+msgid "could not find created worktree '%s'"
+msgstr "không tìm thấy cây làm việc '%s'"
+
 #, c-format
 msgid "Preparing worktree (new branch '%s')"
-msgstr "Đang chuẩn bị cây làm việc (nhánh mới “%s”)"
+msgstr "Đang chuẩn bị cây làm việc (nhánh mới '%s')"
 
 #, c-format
 msgid "Preparing worktree (resetting branch '%s'; was at %s)"
-msgstr "Đang chuẩn bị cây làm việc (đang cài đặt nhánh “%s”, trước đây tại %s)"
+msgstr "Đang chuẩn bị cây làm việc (đang tái đặt nhánh '%s'; trước đây tại %s)"
 
 #, c-format
 msgid "Preparing worktree (checking out '%s')"
-msgstr "Đang chuẩn bị cây làm việc (đang lấy ra “%s”)"
+msgstr "Đang chuẩn bị cây làm việc (đang checkout '%s')"
+
+#, c-format
+msgid "unreachable: invalid reference: %s"
+msgstr "không tham chiếu được: tham chiếu không hợp lệ: %s"
 
 #, c-format
 msgid "Preparing worktree (detached HEAD %s)"
-msgstr "Đang chuẩn bị cây làm việc (HEAD đã tách rời “%s”)"
+msgstr "Đang chuẩn bị cây làm việc (HEAD đã tách rời '%s')"
+
+#, c-format
+msgid ""
+"HEAD points to an invalid (or orphaned) reference.\n"
+"HEAD path: '%s'\n"
+"HEAD contents: '%s'"
+msgstr ""
+"HEAD trỏ đến tham chiếu sai (hoặc mồ côi).\n"
+"Đường dẫn HEAD: '%s'\n"
+"Nội dung HEAD: '%s'"
+
+msgid ""
+"No local or remote refs exist despite at least one remote\n"
+"present, stopping; use 'add -f' to override or fetch a remote first"
+msgstr ""
+"Không tồn tại tham chiếu cục bộ hay trên máy chủ mặc dù có cấu hình\n"
+"máy chủ, dừng lại; hãy dùng 'add -f' để ép buộc hoặc thực hiện kéo về trước"
 
 msgid "checkout <branch> even if already checked out in other worktree"
-msgstr "lấy ra <nhánh> ngay cả khi nó đã được lấy ra ở cây làm việc khác"
+msgstr "checkout <nhánh> ngay cả khi nó đã được checkout ở cây làm việc khác"
 
 msgid "create a new branch"
 msgstr "tạo nhánh mới"
@@ -13038,11 +13534,14 @@ msgstr "tạo nhánh mới"
 msgid "create or reset a branch"
 msgstr "tạo hay đặt lại một nhánh"
 
+msgid "create unborn branch"
+msgstr "tạo nhánh chưa sinh"
+
 msgid "populate the new working tree"
 msgstr "di chuyển cây làm việc mới"
 
 msgid "keep the new working tree locked"
-msgstr "giữ cây làm việc mới bị khóa"
+msgstr "tiếp tục khoá cây làm việc mới"
 
 msgid "reason for locking"
 msgstr "lý do khóa"
@@ -13057,6 +13556,10 @@ msgstr "có khớp tên tên nhánh mới với một nhánh theo dõi máy ch
 msgid "options '%s', '%s', and '%s' cannot be used together"
 msgstr "tùy chọn '%s', '%s' và '%s' không thể dùng cùng nhau"
 
+#, c-format
+msgid "option '%s' and commit-ish cannot be used together"
+msgstr "tùy chọn '%s' và commit-ish không thể dùng cùng nhau"
+
 msgid "added with --lock"
 msgstr "được thêm với --lock"
 
@@ -13068,30 +13571,30 @@ msgstr "hiển thị chú thích và lý do mở rộng, nếu có"
 
 msgid "add 'prunable' annotation to worktrees older than <time>"
 msgstr ""
-"thêm chú thích kiểu “prunable” cho các cây làm việc hết hạn cũ hơn khoảng "
+"thêm chú thích kiểu 'prunable' cho các cây làm việc hết hạn cũ hơn khoảng "
 "<thời gian>"
 
 msgid "terminate records with a NUL character"
-msgstr "chấm dứt các bản ghi bằng ký tự NULL"
+msgstr "kết thúc các bản ghi bằng ký tự NULL"
 
 #, c-format
 msgid "'%s' is not a working tree"
 msgstr "%s không phải là cây làm việc"
 
 msgid "The main working tree cannot be locked or unlocked"
-msgstr "Cây thư mục làm việc chính không thể khóa hay bỏ khóa được"
+msgstr "Cây làm việc chính không thể khóa hay bỏ khóa được"
 
 #, c-format
 msgid "'%s' is already locked, reason: %s"
-msgstr "“%s” đã được khóa rồi, lý do: %s"
+msgstr "'%s' đã được khóa rồi, lý do: %s"
 
 #, c-format
 msgid "'%s' is already locked"
-msgstr "“%s” đã được khóa rồi"
+msgstr "'%s' đã được khóa rồi"
 
 #, c-format
 msgid "'%s' is not locked"
-msgstr "“%s” chưa bị khóa"
+msgstr "'%s' chưa bị khóa"
 
 msgid "working trees containing submodules cannot be moved or removed"
 msgstr "cây làm việc có chứa mô-đun-con không thể di chuyển hay xóa bỏ"
@@ -13101,11 +13604,11 @@ msgstr "ép buộc ngay cả khi cây làm việc đang bẩn hay bị khóa"
 
 #, c-format
 msgid "'%s' is a main working tree"
-msgstr "“%s” là cây làm việc chính"
+msgstr "'%s' là cây làm việc chính"
 
 #, c-format
 msgid "could not figure out destination name from '%s'"
-msgstr "không thể phác họa ra tên đích đến “%s”"
+msgstr "không thể phác họa ra tên đích đến '%s'"
 
 #, c-format
 msgid ""
@@ -13113,14 +13616,14 @@ msgid ""
 "use 'move -f -f' to override or unlock first"
 msgstr ""
 "không thể di chuyển một cây-làm-việc bị khóa, khóa vì: %s\n"
-"dùng “move -f -f” để ghi đè hoặc mở khóa trước đã"
+"dùng 'move -f -f' để ghi đè hoặc mở khóa trước đã"
 
 msgid ""
 "cannot move a locked working tree;\n"
 "use 'move -f -f' to override or unlock first"
 msgstr ""
 "không thể di chuyển một cây-làm-việc bị khóa;\n"
-"dùng “move -f -f” để ghi đè hoặc mở khóa trước đã"
+"dùng 'move -f -f' để ghi đè hoặc mở khóa trước đã"
 
 #, c-format
 msgid "validation failed, cannot move working tree: %s"
@@ -13128,21 +13631,21 @@ msgstr "thẩm tra gặp lỗi, không thể di chuyển một cây-làm-việc:
 
 #, c-format
 msgid "failed to move '%s' to '%s'"
-msgstr "gặp lỗi khi chuyển “%s” sang “%s”"
+msgstr "gặp lỗi khi chuyển '%s' sang '%s'"
 
 #, c-format
 msgid "failed to run 'git status' on '%s'"
-msgstr "gặp lỗi khi chạy “git status” vào “%s”"
+msgstr "gặp lỗi khi chạy 'git status' vào '%s'"
 
 #, c-format
 msgid "'%s' contains modified or untracked files, use --force to delete it"
 msgstr ""
-"“%s” có chứa các tập tin đã bị sửa chữa hoặc chưa được theo dõi, hãy dùng --"
+"'%s' có chứa các tập tin đã bị sửa chữa hoặc chưa được theo dõi, hãy dùng --"
 "force để xóa nó"
 
 #, c-format
 msgid "failed to run 'git status' on '%s', code %d"
-msgstr "gặp lỗi khi chạy “git status” trong “%s”, mã %d"
+msgstr "gặp lỗi khi chạy 'git status' trong '%s', mã %d"
 
 msgid "force removal even if worktree is dirty or locked"
 msgstr "ép buộc di chuyển thậm chí cả khi cây làm việc đang bẩn hay bị khóa"
@@ -13153,14 +13656,14 @@ msgid ""
 "use 'remove -f -f' to override or unlock first"
 msgstr ""
 "không thể xóa bỏ một cây-làm-việc bị khóa, khóa vì: %s\n"
-"dùng “remove -f -f” để ghi đè hoặc mở khóa trước đã"
+"dùng 'remove -f -f' để ghi đè hoặc mở khóa trước đã"
 
 msgid ""
 "cannot remove a locked working tree;\n"
 "use 'remove -f -f' to override or unlock first"
 msgstr ""
 "không thể xóa bỏ một cây-làm-việc bị khóa;\n"
-"dùng “remove -f -f” để ghi đè hoặc mở khóa trước đã"
+"dùng 'remove -f -f' để ghi đè hoặc mở khóa trước đã"
 
 #, c-format
 msgid "validation failed, cannot remove working tree: %s"
@@ -13186,17 +13689,73 @@ msgstr "ghi đối tượng cây (tree) cho <tiền tố> thư mục con"
 msgid "only useful for debugging"
 msgstr "chỉ hữu ích khi cần gỡ lỗi"
 
+msgid "core.fsyncMethod = batch is unsupported on this platform"
+msgstr "core.fsyncMethod = batch không được hỗ trợ trên nền tảng này"
+
+#, c-format
+msgid "could not parse bundle list key %s with value '%s'"
+msgstr "không thể đọc danh sách bundle khoá %s giá trị '%s'"
+
+#, c-format
+msgid "bundle list at '%s' has no mode"
+msgstr "bundle list at '%s' has no mode"
+
+msgid "failed to create temporary file"
+msgstr "không thể tạo tập tin tạm thời"
+
+msgid "insufficient capabilities"
+msgstr "không đủ quyền hạn"
+
+#, c-format
+msgid "file downloaded from '%s' is not a bundle"
+msgstr "tập tin lấy về từ '%s' không phải là bundle"
+
+msgid "failed to store maximum creation token"
+msgstr "gặp lỗi khi lưu token tạo tối đa"
+
+#, c-format
+msgid "unrecognized bundle mode from URI '%s'"
+msgstr "không nhận ra định dạng bundle từ URI '%s'"
+
+#, c-format
+msgid "exceeded bundle URI recursion limit (%d)"
+msgstr "vượt quá giới hạn đệ quy URI (%d)"
+
+#, c-format
+msgid "failed to download bundle from URI '%s'"
+msgstr "gặp lỗi khi tải bundle từ URI '%s'"
+
+#, c-format
+msgid "file at URI '%s' is not a bundle or bundle list"
+msgstr "tập tin ở URI '%s' không phải bundle hay danh sách bundle"
+
+#, c-format
+msgid "bundle-uri: unexpected argument: '%s'"
+msgstr "bundle-uri: không nhận ra đối số: '%s'"
+
+msgid "bundle-uri: expected flush after arguments"
+msgstr "bundle-uri: cần flush dữ liệu sau các tham số"
+
+msgid "bundle-uri: got an empty line"
+msgstr "bundle-uri: nhận được dòng trống"
+
+msgid "bundle-uri: line is not of the form 'key=value'"
+msgstr "bundle-uri: dòng không có dạng 'key=value'"
+
+msgid "bundle-uri: line has empty key or value"
+msgstr "bundle-uri: dòng có key trống hoặc value trống"
+
 #, c-format
 msgid "unrecognized bundle hash algorithm: %s"
-msgstr "không hiểu thuật toán băm dữ liệu bundle: %s"
+msgstr "không hiểu thuật toán băm bundle: %s"
 
 #, c-format
 msgid "unknown capability '%s'"
-msgstr "không hiểu dung lượng “%s”"
+msgstr "không hiểu dung lượng '%s'"
 
 #, c-format
 msgid "'%s' does not look like a v2 or v3 bundle file"
-msgstr "“%s” không giống như tập tin v2 hay v3 bundle (định dạng dump của git)"
+msgstr "'%s' không giống như tập tin bundle v2 hay v3 (định dạng dump của git)"
 
 #, c-format
 msgid "unrecognized header: %s%s (%d)"
@@ -13208,6 +13767,13 @@ msgstr "Kho chứa thiếu những lần chuyển giao tiên quyết này:"
 msgid "need a repository to verify a bundle"
 msgstr "cần một kho chứa để thẩm tra một bundle"
 
+msgid ""
+"some prerequisite commits exist in the object store, but are not connected "
+"to the repository's history"
+msgstr ""
+"một số lần chuyển giao tiên quyết tồn tại trong object store, nhưng không "
+"nằm trong lịch sử của kho chứa"
+
 #, c-format
 msgid "The bundle contains this ref:"
 msgid_plural "The bundle contains these %<PRIuMAX> refs:"
@@ -13221,18 +13787,26 @@ msgid "The bundle requires this ref:"
 msgid_plural "The bundle requires these %<PRIuMAX> refs:"
 msgstr[0] "Lệnh bundle yêu cầu %<PRIuMAX> tham chiếu này:"
 
+#, c-format
+msgid "The bundle uses this hash algorithm: %s"
+msgstr "Lệnh bundle dùng thuật toán băm sau: %s"
+
+#, c-format
+msgid "The bundle uses this filter: %s"
+msgstr "Lệnh bundle dùng bộ lọc sau: %s"
+
 msgid "unable to dup bundle descriptor"
-msgstr "không thể nhân đôi bộ mô tả bundle"
+msgstr "không thể dup bundle descriptor"
 
 msgid "Could not spawn pack-objects"
-msgstr "Không thể sản sinh đối tượng gói"
+msgstr "Không thể spawn pack-objects"
 
 msgid "pack-objects died"
-msgstr "đối tượng gói đã chết"
+msgstr "pack-objects đã chết"
 
 #, c-format
 msgid "ref '%s' is excluded by the rev-list options"
-msgstr "th.chiếu “%s” bị loại trừ bởi các tùy chọn rev-list"
+msgstr "th.chiếu '%s' bị loại trừ bởi các tùy chọn rev-list"
 
 #, c-format
 msgid "unsupported bundle version %d"
@@ -13247,25 +13821,29 @@ msgstr "Từ chối tạo một bó dữ liệu trống rỗng."
 
 #, c-format
 msgid "cannot create '%s'"
-msgstr "không thể tạo “%s”"
+msgstr "không thể tạo '%s'"
 
 msgid "index-pack died"
-msgstr "mục lục gói đã chết"
+msgstr "index-pack đã chết"
 
 msgid "terminating chunk id appears earlier than expected"
-msgstr "mã mảnh kết thúc sớm hơn bình thường"
+msgstr "id chunk kết thúc sớm hơn bình thường"
+
+#, c-format
+msgid "chunk id %<PRIx32> not %d-byte aligned"
+msgstr "id chunk %<PRIx32> không thẳng %d-byte"
 
 #, c-format
 msgid "improper chunk offset(s) %<PRIx64> and %<PRIx64>"
-msgstr "bù mảnh không đúng cách %<PRIx64> và %<PRIx64>"
+msgstr "chunk offset bất thường %<PRIx64> và %<PRIx64>"
 
 #, c-format
 msgid "duplicate chunk ID %<PRIx32> found"
-msgstr "tìm thấy ID của mảnh bị trùng lặp %<PRIx32>"
+msgstr "tìm thấy ID của chunk bị trùng lặp %<PRIx32>"
 
 #, c-format
 msgid "final chunk has non-zero id %<PRIx32>"
-msgstr "mảnh cuối cùng có id không bằng không %<PRIx32>"
+msgstr "chunk cuối cùng có id không bằng không %<PRIx32>"
 
 msgid "invalid hash version"
 msgstr "phiên bản băm không hợp lệ"
@@ -13275,7 +13853,7 @@ msgid "invalid color value: %.*s"
 msgstr "giá trị màu không hợp lệ: %.*s"
 
 msgid "Add file contents to the index"
-msgstr "Thêm nội dung tập tin vào bảng mục lục"
+msgstr "Thêm nội dung tập tin vào chỉ mục"
 
 msgid "Apply a series of patches from a mailbox"
 msgstr "Áp dụng một chuỗi các miếng và từ một mailbox"
@@ -13284,8 +13862,7 @@ msgid "Annotate file lines with commit information"
 msgstr "Các dòng diễn giải tập tin với thông tin chuyển giao"
 
 msgid "Apply a patch to files and/or to the index"
-msgstr ""
-"Áp dụng một miếng vá cho các tập tin đã chỉ ra và/hoặc vào bảng mục lục"
+msgstr "Áp dụng một bản vá cho các tập tin đã chỉ ra và/hoặc vào chỉ mục"
 
 msgid "Import a GNU Arch repository into Git"
 msgstr "Nhập một kho GNU Arch vào một kho Git"
@@ -13310,8 +13887,8 @@ msgstr "Sưu tập thông tin người dùng để báo cáo lỗi"
 msgid "Move objects and refs by archive"
 msgstr "Di chuyển các đối tượng và tham chiếu theo kho lưu"
 
-msgid "Provide content or type and size information for repository objects"
-msgstr "Cung cấp nội dung hoặc thông tin về kiểu và cỡ cho các đối tượng kho"
+msgid "Provide contents or details of repository objects"
+msgstr "Cung cấp nội dung hoặc thông tin về các đối tượng kho"
 
 msgid "Display gitattributes information"
 msgstr "Hiển thị thông tin gitattributes"
@@ -13326,13 +13903,13 @@ msgid "Ensures that a reference name is well formed"
 msgstr "Đảm bảo rằng một tên tham chiếu ở dạng thức tốt"
 
 msgid "Switch branches or restore working tree files"
-msgstr "Chuyển các nhánh hoặc phục hồi lại các tập tin cây làm việc"
+msgstr "Chuyển các nhánh hoặc phục hồi lại các tập tin trong cây làm việc"
 
 msgid "Copy files from the index to the working tree"
-msgstr "Sao chép các tập tin từ mục lục ra cây làm việc"
+msgstr "Sao chép các tập tin từ chỉ mục ra cây làm việc"
 
 msgid "Find commits yet to be applied to upstream"
-msgstr "Tìm những lần chuyển giao còn chưa được áp dụng lên thượng nguồn"
+msgstr "Tìm những lần chuyển giao chưa được đẩy lên thượng nguồn"
 
 msgid "Apply the changes introduced by some existing commits"
 msgstr "Áp dụng các thay đổi được đưa ra bởi một số lần chuyển giao sẵn có"
@@ -13369,13 +13946,13 @@ msgid "Retrieve and store user credentials"
 msgstr "Nhận và lưu chứng nhận của người dùng"
 
 msgid "Helper to temporarily store passwords in memory"
-msgstr "Bộ hỗ trợ để lưu mật khẩu tạm thời trong bộ nhớ"
+msgstr "helper để lưu mật khẩu tạm thời trong bộ nhớ"
 
 msgid "Helper to store credentials on disk"
-msgstr "Bộ hỗ trợ để lưu chứng nhận vào đĩa"
+msgstr "helper để lưu chứng nhận vào đĩa"
 
 msgid "Export a single commit to a CVS checkout"
-msgstr "Xuất một lần chuyển giao thành một lần lấy ra CVS"
+msgstr "Xuất một lần chuyển giao thành một lần checkout CVS"
 
 msgid "Salvage your data out of another SCM people love to hate"
 msgstr "Xem xét giá trị dữ liệu của bạn khỏi người khác yêu SCM để ghét"
@@ -13384,23 +13961,26 @@ msgid "A CVS server emulator for Git"
 msgstr "Một bộ mô phỏng máy dịch vụ CVS cho Git"
 
 msgid "A really simple server for Git repositories"
-msgstr "Một máy phục vụ thực sự đơn giản dành cho kho Git"
+msgstr "Một máy chủ thực sự đơn giản dành cho kho Git"
 
 msgid "Give an object a human readable name based on an available ref"
 msgstr ""
 "Đưa ra một đối tượng dựa trên một tên ở dạng con người đọc được trên một "
 "tham chiếu sẵn có"
 
+msgid "Generate a zip archive of diagnostic information"
+msgstr "tạo tập tin nén zip của bản báo cáo"
+
 msgid "Show changes between commits, commit and working tree, etc"
 msgstr ""
 "Hiển thị các thay đổi giữa những lần chuyển giao, giữa một lần chuyển giao "
 "và cây làm việc, v.v.."
 
 msgid "Compares files in the working tree and the index"
-msgstr "So sánh các tập tin trong cây làm việc và bảng mục lục"
+msgstr "So sánh các tập tin trong cây làm việc và chỉ mục"
 
 msgid "Compare a tree to the working tree or index"
-msgstr "So sánh các cây trong cây làm việc hoặc bảng mục lục"
+msgstr "So sánh các cây trong cây làm việc hoặc chỉ mục"
 
 msgid "Compares the content and mode of blobs found via two tree objects"
 msgstr ""
@@ -13434,7 +14014,7 @@ msgid "Run a Git command on a list of repositories"
 msgstr "Chạy lệnh Git trên danh sách các kho chứa"
 
 msgid "Prepare patches for e-mail submission"
-msgstr "Chuẩn bị các miếng vá để gửi qua thư điện tử"
+msgstr "Chuẩn bị các bản vá để gửi qua thư điện tử"
 
 msgid "Verifies the connectivity and validity of the objects in the database"
 msgstr ""
@@ -13454,8 +14034,8 @@ msgstr "In ra những dòng khớp với một mẫu"
 msgid "A portable graphical interface to Git"
 msgstr "Một giao diện đồ họa khả chuyển cho Git"
 
-msgid "Compute object ID and optionally creates a blob from a file"
-msgstr "Tính toán ID đối tượng và tùy chọn là tạo một blob từ một tập tin"
+msgid "Compute object ID and optionally create an object from a file"
+msgstr "Tính toán ID đối tượng và tùy tạo một object từ một tập tin"
 
 msgid "Display help information about Git"
 msgstr "Hiển thị thông tin trợ giúp về Git"
@@ -13464,7 +14044,7 @@ msgid "Run git hooks"
 msgstr "Chạy các móc git"
 
 msgid "Server side implementation of Git over HTTP"
-msgstr "Thi hành phía máy chủ của Git qua HTTP"
+msgstr "Hỗ trợ phía máy chủ của Git qua HTTP"
 
 msgid "Download from a remote Git repository via HTTP"
 msgstr "Tải về từ một kho chứa Git trên mạng thông qua HTTP"
@@ -13473,11 +14053,10 @@ msgid "Push objects over HTTP/DAV to another repository"
 msgstr "Đẩy các đối tượng lên thông qua HTTP/DAV đến kho chứa khác"
 
 msgid "Send a collection of patches from stdin to an IMAP folder"
-msgstr ""
-"Gửi một bộ sưu tập các miếng vá từ đầu vào tiêu chuẩn đến một thư mục IMAP"
+msgstr "Gửi một bộ sưu tập các bản vá từ stdin đến một thư mục IMAP"
 
 msgid "Build pack index file for an existing packed archive"
-msgstr "Xây dựng tập tin mục lục gói cho một kho nén đã đóng gói sẵn có"
+msgstr "Xây dựng tập tin chỉ mục gói cho một kho nén đã đóng gói sẵn có"
 
 msgid "Create an empty Git repository or reinitialize an existing one"
 msgstr "Tạo một kho git mới hay khởi tạo lại một kho đã tồn tại từ trước"
@@ -13486,13 +14065,13 @@ msgid "Instantly browse your working repository in gitweb"
 msgstr "Duyệt ngay kho làm việc của bạn trong gitweb"
 
 msgid "Add or parse structured information in commit messages"
-msgstr "Thêm hay phân tích thông tin cấu trúc trong ghi chú lần chuyển giao"
+msgstr "Thêm hay đọc thông tin cấu trúc trong ghi chú lần chuyển giao"
 
 msgid "Show commit logs"
 msgstr "Hiển thị nhật ký các lần chuyển giao"
 
 msgid "Show information about files in the index and the working tree"
-msgstr "Hiển thị thông tin về các tập tin trong bảng mục lục và cây làm việc"
+msgstr "Hiển thị thông tin về các tập tin trong chỉ mục và cây làm việc"
 
 msgid "List references in a remote repository"
 msgstr "Liệt kê các tham chiếu trong một kho chứa trên mạng"
@@ -13516,7 +14095,7 @@ msgid "Find as good common ancestors as possible for a merge"
 msgstr "Tìm các tổ tiên chung tốt có thể được cho hòa trộn"
 
 msgid "Run a three-way file merge"
-msgstr "Chạy một hòa trộn tập tin “3-đường”"
+msgstr "Chạy một hòa trộn tập tin '3-đường'"
 
 msgid "Run a merge for files needing merging"
 msgstr "Chạy một hòa trộn cho các tập tin cần hòa trộn"
@@ -13524,13 +14103,12 @@ msgstr "Chạy một hòa trộn cho các tập tin cần hòa trộn"
 msgid "The standard helper program to use with git-merge-index"
 msgstr "Một chương trình hỗ trợ tiêu chuẩn dùng với git-merge-index"
 
-msgid "Show three-way merge without touching index"
-msgstr "Hiển thị hòa trộn ba-đường mà không đụng chạm đến mục lục"
+msgid "Perform merge without touching index or working tree"
+msgstr "Áp dụng một bản vá mà không động chạm đến cây làm việc"
 
 msgid "Run merge conflict resolution tools to resolve merge conflicts"
 msgstr ""
-"Chạy công cụ phân giải xung đột hòa trộn để mà giải quyết các xung đột hòa "
-"trộn"
+"Chạy công cụ phân giải xung đột hòa trộn để giải quyết các xung đột hòa trộn"
 
 msgid "Creates a tag object with extra validation"
 msgstr "Tạo một đối tượng thẻ với kiểm tra mở rộng"
@@ -13563,7 +14141,7 @@ msgid "Pack heads and tags for efficient repository access"
 msgstr "Đóng gói các phần đầu và thẻ để truy cập kho hiệu quả hơn"
 
 msgid "Compute unique ID for a patch"
-msgstr "Tính toán ID duy nhất cho một miếng vá"
+msgstr "Tính toán ID duy nhất cho một bản vá"
 
 msgid "Prune all unreachable objects from the object database"
 msgstr ""
@@ -13579,16 +14157,16 @@ msgid "Update remote refs along with associated objects"
 msgstr "Cập nhật th.chiếu máy chủ cùng với các đối tượng liên quan đến nó"
 
 msgid "Applies a quilt patchset onto the current branch"
-msgstr "Ấp dụng một bộ miếng vá quilt vào trong nhánh hiện hành"
+msgstr "Ấp dụng một bộ bản vá quilt vào trong nhánh hiện hành"
 
 msgid "Compare two commit ranges (e.g. two versions of a branch)"
 msgstr "So sánh hai vùng chuyển giao (vd: hai phiên bản của một nhánh)"
 
 msgid "Reads tree information into the index"
-msgstr "Đọc thông tin cây vào trong mục lục"
+msgstr "Đọc thông tin cây vào trong chỉ mục"
 
 msgid "Reapply commits on top of another base tip"
-msgstr "Thu hoạch các lần chuyá»\83n giao trên Ä\91á»\89nh của Ä\91ầu mút cơ sở khác"
+msgstr "Thu hoạch các lần chuyá»\83n giao trên Ä\91á»\89nh của Ä\91á»\89nh cơ sở khác"
 
 msgid "Receive what is pushed into the repository"
 msgstr "Nhận cái mà được đẩy vào trong kho"
@@ -13605,6 +14183,11 @@ msgstr "Đóng gói các đối tượng chưa đóng gói ở một kho chứa"
 msgid "Create, list, delete refs to replace objects"
 msgstr "Tạo, liệt kê, xóa các tham chiếu để thay thế các đối tượng"
 
+msgid "EXPERIMENTAL: Replay commits on a new base, works with bare repos too"
+msgstr ""
+"ĐANG TRONG QUÁ TRÌNH THỬ NGHIỆM: Phát lại lần chuyển giao vào gốc mới, dùng "
+"được trong kho chứa bare"
+
 msgid "Generates a summary of pending changes"
 msgstr "Tạo ra một tóm tắt các thay đổi còn treo"
 
@@ -13627,10 +14210,10 @@ msgid "Revert some existing commits"
 msgstr "Hoàn lại một số lần chuyển giao sẵn có"
 
 msgid "Remove files from the working tree and from the index"
-msgstr "Gỡ bỏ các tập tin từ cây làm việc và từ bảng mục lục"
+msgstr "Gỡ bỏ các tập tin từ cây làm việc và từ chỉ mục"
 
 msgid "Send a collection of patches as emails"
-msgstr "Gửi một tập hợp của các miếng vá ở dạng thư điện tử"
+msgstr "Gửi một tập hợp của các bản vá ở dạng thư điện tử"
 
 msgid "Push objects over Git protocol to another repository"
 msgstr "Đẩy các đối tượng lên thông qua giao thức Git đến kho chứa khác"
@@ -13645,7 +14228,7 @@ msgid "Restricted login shell for Git-only SSH access"
 msgstr "Hệ vỏ đăng nhập có hạn chế cho truy cập SSH chỉ-Git"
 
 msgid "Summarize 'git log' output"
-msgstr "Kết xuất “git log” dạng tóm tắt"
+msgstr "Kết xuất 'git log' dạng tóm tắt"
 
 msgid "Show various types of objects"
 msgstr "Hiển thị các kiểu khác nhau của các đối tượng"
@@ -13698,7 +14281,7 @@ msgid "Unpack objects from a packed archive"
 msgstr "Gỡ các đối tượng khỏi một kho lưu đã đóng gói"
 
 msgid "Register file contents in the working tree to the index"
-msgstr "Đăng ký nội dung tập tin từ cây làm việc đến bảng mục lục"
+msgstr "Đăng ký nội dung tập tin từ cây làm việc đến chỉ mục"
 
 msgid "Update the object name stored in a ref safely"
 msgstr "Cập nhật tên đối tượng được lưu trong một tham chiếu một cách an toàn"
@@ -13724,20 +14307,23 @@ msgstr "Kiểm tra lại các tập tin kho (lưu trữ, nén) Git đã được
 msgid "Check the GPG signature of tags"
 msgstr "Kiểm tra chữ ký GPG của các thẻ"
 
-msgid "Show logs with difference each commit introduces"
-msgstr "Hiển thị các nhật ký với từng lần chuyển giao khác nhau đưa ra"
+msgid "Display version information about Git"
+msgstr "Hiển thị thông tin về phiên bản Git"
+
+msgid "Show logs with differences each commit introduces"
+msgstr "Hiển thị nhật ký với thay đổi của từng lần chuyển giao"
 
 msgid "Manage multiple working trees"
 msgstr "Quản lý nhiều cây làm việc"
 
 msgid "Create a tree object from the current index"
-msgstr "Tạo một đối tượng cây từ đầu vào tiêu chuẩn stdin hiện tại"
+msgstr "Tạo một đối tượng cây từ chỉ mục hiện tại"
 
 msgid "Defining attributes per path"
 msgstr "Định nghĩa các thuộc tính cho mỗi đường dẫn"
 
 msgid "Git command-line interface and conventions"
-msgstr "Giao diện dòng lệnh Git và quy ước"
+msgstr "Giao diện dòng lệnh Git và các quy ước"
 
 msgid "A Git core tutorial for developers"
 msgstr "Hướng dẫn Git cơ bản cho nhà phát triển"
@@ -13752,22 +14338,40 @@ msgid "Tweaking diff output"
 msgstr "Chỉnh kết xuất diff"
 
 msgid "A useful minimum set of commands for Everyday Git"
-msgstr "Một tập hợp lệnh hữu dụng tối thiểu để dùng Git hàng ngày"
+msgstr "Tập hợp lệnh hữu dụng tối thiểu để dùng Git hàng ngày"
 
 msgid "Frequently asked questions about using Git"
 msgstr "Các câu hỏi thường gặp về cách sử dụng Git"
 
+msgid "The bundle file format"
+msgstr "Định dạng tập tin bundle"
+
+msgid "Chunk-based file formats"
+msgstr "Định dạng tập tin dạng khúc"
+
+msgid "Git commit-graph format"
+msgstr "Định dạng đồ-thị-chuyển-giao"
+
+msgid "Git index format"
+msgstr "Định dạng chỉ mục"
+
+msgid "Git pack format"
+msgstr "Định dạng pack"
+
+msgid "Git cryptographic signature formats"
+msgstr "Định dạng chữ ký bảo mật Git"
+
 msgid "A Git Glossary"
 msgstr "Thuật ngữ chuyên môn Git"
 
 msgid "Hooks used by Git"
-msgstr "Các móc được sử dụng bởi Git"
+msgstr "Các hook được sử dụng bởi Git"
 
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Chỉ định các tập tin không cần theo dõi"
 
 msgid "The Git repository browser"
-msgstr "Bộ duyện kho Git"
+msgstr "Bộ duyệt kho Git"
 
 msgid "Map author/committer names and/or E-Mail addresses"
 msgstr "Ánh xạ tên tác giả/người chuyển giao và/hoặc địa chỉ E-Mail"
@@ -13778,8 +14382,23 @@ msgstr "Định nghĩa thuộc tính mô-đun-con"
 msgid "Git namespaces"
 msgstr "Không gian tên Git"
 
+msgid "Protocol v0 and v1 capabilities"
+msgstr "Capabilities của giao thức v0 và v1"
+
+msgid "Things common to various protocols"
+msgstr "Những thứ chung cho các giao thức"
+
+msgid "Git HTTP-based protocols"
+msgstr "Những giao thức Git dựa trên HTTP"
+
+msgid "How packs are transferred over-the-wire"
+msgstr "Gói được truyền thực tế (over-the-wire) như thế nào"
+
+msgid "Git Wire Protocol, Version 2"
+msgstr "Git Wire Protocol, Version 2"
+
 msgid "Helper programs to interact with remote repositories"
-msgstr "Các chương trình hỗ trợ để tương tác với các kho chứa trên máy chủ"
+msgstr "Các chương trình helper để tương tác với các kho chứa trên máy chủ"
 
 msgid "Git Repository Layout"
 msgstr "Bố cục kho Git"
@@ -13802,44 +14421,90 @@ msgstr "Giao diện Git trên nền web (ứng dụng web chạy trên kho Git)"
 msgid "An overview of recommended workflows with Git"
 msgstr "Tổng quan về luồng công việc khuyến nghị nên dùng với Git"
 
+msgid "A tool for managing large Git repositories"
+msgstr "Công cụ quản lý các kho Git lớn"
+
 msgid "commit-graph file is too small"
-msgstr "tập tin đồ-thị-các-lần-chuyển-giao quá nhỏ"
+msgstr "tập tin đồ-thị-chuyển-giao quá nhỏ"
+
+msgid "commit-graph oid fanout chunk is wrong size"
+msgstr "đồ-thị-chuyển-giao có kích cỡ oid fanout chunk không đúng"
+
+msgid "commit-graph fanout values out of order"
+msgstr "đồ-thị-chuyển-giao có giá trị fanout không đúng"
+
+msgid "commit-graph OID lookup chunk is the wrong size"
+msgstr "đồ-thị-chuyển-giao có kích cỡ OID lookup chunk không đúng"
+
+msgid "commit-graph commit data chunk is wrong size"
+msgstr "đồ-thị-chuyển-giao có kích cỡ commit data chunk không đúng"
+
+msgid "commit-graph generations chunk is wrong size"
+msgstr "đồ-thị-chuyển-giao có kích cỡ generations chunk không đúng"
+
+msgid "commit-graph changed-path index chunk is too small"
+msgstr "đồ-thị-chuyển-giao có changed-path index chunk quá nhỏ"
+
+#, c-format
+msgid ""
+"ignoring too-small changed-path chunk (%<PRIuMAX> < %<PRIuMAX>) in commit-"
+"graph file"
+msgstr ""
+"bỏ qua chunk thay-đổi-đường-dẫn quá nhỏ (%<PRIuMAX> < %<PRIuMAX>) trong tập "
+"tin đồ-thị-chuyển-giao"
 
 #, c-format
 msgid "commit-graph signature %X does not match signature %X"
-msgstr "chữ ký đồ-thị-các-lần-chuyển-giao %X không khớp chữ ký %X"
+msgstr "chữ ký đồ-thị-chuyển-giao %X không khớp chữ ký %X"
 
 #, c-format
 msgid "commit-graph version %X does not match version %X"
-msgstr "phiên bản đồ-thị-các-lần-chuyển-giao %X không khớp phiên bản %X"
+msgstr "phiên bản đồ-thị-chuyển-giao %X không khớp phiên bản %X"
 
 #, c-format
 msgid "commit-graph hash version %X does not match version %X"
-msgstr "phiên bản đồ-thị-các-lần-chuyển-giao %X không khớp phiên bản %X"
+msgstr "phiên bản đồ-thị-chuyển-giao %X không khớp phiên bản %X"
 
 #, c-format
 msgid "commit-graph file is too small to hold %u chunks"
-msgstr "tập tin đồ-thị-các-lần-chuyển-giao quá nhỏ để giữ %u mảnh dữ liệu"
+msgstr "tập tin đồ-thị-chuyển-giao quá nhỏ để giữ %u chunk"
+
+msgid "commit-graph required OID fanout chunk missing or corrupted"
+msgstr "đồ-thị-chuyển-giao thiếu chunk OID fanout cần thiết hoặc bị hỏng"
+
+msgid "commit-graph required OID lookup chunk missing or corrupted"
+msgstr "đồ-thị-chuyển-giao thiếu chunk OID lookup cần thiết hoặc bị hỏng"
+
+msgid "commit-graph required commit data chunk missing or corrupted"
+msgstr "đồ-thị-chuyển-giao thiếu chunk commit data cần thiết hoặc bị hỏng"
 
 msgid "commit-graph has no base graphs chunk"
-msgstr "đồ-thị-các-lần-chuyển-giao có không có mảnh các đồ họa cơ sở"
+msgstr "đồ thị chuyển giao không có chunk đồ thị cơ sở"
+
+msgid "commit-graph base graphs chunk is too small"
+msgstr "đồ thị chuyển giao có chunk đồ thị cơ sở quá nhỏ"
 
 msgid "commit-graph chain does not match"
-msgstr "móc xích đồ-thị-các-lần-chuyển-giao không khớp"
+msgstr "chuỗi đồ-thị-chuyển-giao không khớp"
+
+#, c-format
+msgid "commit count in base graph too high: %<PRIuMAX>"
+msgstr "số lần chuyển giao trong đồ thị cơ sở quá lớn: %<PRIuMAX>"
+
+msgid "commit-graph chain file too small"
+msgstr "tập tin chuỗi đồ-thị-chuyển-giao quá nhỏ"
 
 #, c-format
 msgid "invalid commit-graph chain: line '%s' not a hash"
 msgstr ""
-"móc xích đồ-thị-các-lần-chuyển-giao không hợp lệ: dòng “%s” không phải là "
-"một mã băm"
+"chuỗi đồ-thị-chuyển-giao không hợp lệ: dòng '%s' không phải là một mã băm"
 
 msgid "unable to find all commit-graph files"
-msgstr "không thể tìm thấy tất cả các tập tin đồ-thị-các-lần-chuyển-giao"
+msgstr "không thể tìm thấy tất cả các tập tin đồ-thị-chuyển-giao"
 
 msgid "invalid commit position. commit-graph is likely corrupt"
 msgstr ""
-"vị trí lần chuyển giao không hợp lệ. đồ-thị-các-lần-chuyển-giao có vẻ như đã "
-"bị hỏng"
+"vị trí lần chuyển giao không hợp lệ. đồ-thị-chuyển-giao có vẻ như đã bị hỏng"
 
 #, c-format
 msgid "could not find commit %s"
@@ -13848,6 +14513,12 @@ msgstr "không thể tìm thấy lần chuyển giao %s"
 msgid "commit-graph requires overflow generation data but has none"
 msgstr "commit-graph yêu cầu dữ liệu tạo tràn nhưng không có"
 
+msgid "commit-graph overflow generation data is too small"
+msgstr "commit-graph yêu cầu dữ liệu tạo tràn nhưng quá nhỏ"
+
+msgid "commit-graph extra-edges pointer out of bounds"
+msgstr "con trỏ extra-edge của đồ thị chuyển giao nằm ngoài biên"
+
 msgid "Loading known commits in commit graph"
 msgstr "Đang tải các lần chuyển giao chưa biết trong đồ thị lần chuyển giao"
 
@@ -13883,7 +14554,7 @@ msgstr "gặp lỗi thêm gói %s"
 
 #, c-format
 msgid "error opening index for %s"
-msgstr "gặp lỗi khi mở mục lục cho “%s”"
+msgstr "gặp lỗi khi mở chỉ mục cho '%s'"
 
 msgid "Finding commits for commit graph among packed objects"
 msgstr ""
@@ -13901,7 +14572,7 @@ msgstr "không thể tạo lớp sơ đồ tạm thời"
 
 #, c-format
 msgid "unable to adjust shared permissions for '%s'"
-msgstr "không thể chỉnh sửa quyền chia sẻ thành “%s”"
+msgstr "không thể chỉnh sửa quyền chia sẻ thành '%s'"
 
 #, c-format
 msgid "Writing out commit graph in %d pass"
@@ -13912,20 +14583,28 @@ msgid "unable to open commit-graph chain file"
 msgstr "không thể mở tập tin mắt xích đồ thị chuyển giao"
 
 msgid "failed to rename base commit-graph file"
-msgstr "gặp lỗi khi đổi tên tập tin đồ-thị-các-lần-chuyển-giao"
+msgstr "gặp lỗi khi đổi tên tập tin đồ-thị-chuyển-giao"
 
 msgid "failed to rename temporary commit-graph file"
-msgstr "gặp lỗi khi đổi tên tập tin đồ-thị-các-lần-chuyển-giao tạm thời"
+msgstr "gặp lỗi khi đổi tên tập tin đồ-thị-chuyển-giao tạm thời"
+
+#, c-format
+msgid "cannot merge graphs with %<PRIuMAX>, %<PRIuMAX> commits"
+msgstr "không thể kết hợp đồ thị với %<PRIuMAX>, %<PRIuMAX> lần chuyển giao"
+
+#, c-format
+msgid "cannot merge graph %s, too many commits: %<PRIuMAX>"
+msgstr "không thể kết hợp đồ thị %s, quá nhiều lần chuyển giao: %<PRIuMAX>"
 
 msgid "Scanning merged commits"
 msgstr "Đang quét các lần chuyển giao đã hòa trộn"
 
 msgid "Merging commit-graph"
-msgstr "Đang hòa trộn đồ-thị-các-lần-chuyển-giao"
+msgstr "Đang hòa trộn đồ-thị-chuyển-giao"
 
 msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
 msgstr ""
-"cố gắng để ghi một đồ thị các lần chuyển giao, nhưng “core.commitGraph” bị "
+"cố gắng để ghi một đồ thị các lần chuyển giao, nhưng 'core.commitGraph' bị "
 "vô hiệu hóa"
 
 msgid "too many commits to write graph"
@@ -13933,78 +14612,70 @@ msgstr "có quá nhiều lần chuyển giao để ghi đồ thị"
 
 msgid "the commit-graph file has incorrect checksum and is likely corrupt"
 msgstr ""
-"tập tin đồ-thị-các-lần-chuyển-giao có tổng kiểm không đúng và có vẻ như là "
-"đã hỏng"
+"tập tin đồ-thị-chuyển-giao có tổng kiểm không đúng và có vẻ như là đã hỏng"
 
 #, c-format
 msgid "commit-graph has incorrect OID order: %s then %s"
-msgstr "đồ-thị-các-lần-chuyển-giao có thứ tự OID không đúng: %s sau %s"
+msgstr "đồ-thị-chuyển-giao có thứ tự OID không đúng: %s sau %s"
 
 #, c-format
 msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
-msgstr ""
-"đồ-thị-các-lần-chuyển-giao có giá trị fanout không đúng: fanout[%d] = %u != "
-"%u"
+msgstr "đồ-thị-chuyển-giao có giá trị fanout không đúng: fanout[%d] = %u != %u"
 
 #, c-format
 msgid "failed to parse commit %s from commit-graph"
-msgstr "gặp lỗi khi phân tích lần chuyển giao từ %s đồ-thị-các-lần-chuyển-giao"
-
-msgid "Verifying commits in commit graph"
-msgstr "Đang thẩm tra các lần chuyển giao trong đồ thị lần chuyển giao"
+msgstr "gặp lỗi khi đọc lần chuyển giao từ %s đồ-thị-chuyển-giao"
 
 #, c-format
 msgid "failed to parse commit %s from object database for commit-graph"
 msgstr ""
-"gặp lỗi khi phân tích lần chuyển giao %s từ cơ sở dữ liệu đối tượng cho đồ "
-"thị lần chuyển giao"
+"gặp lỗi khi đọc lần chuyển giao %s từ cơ sở dữ liệu đối tượng cho đồ thị lần "
+"chuyển giao"
 
 #, c-format
 msgid "root tree OID for commit %s in commit-graph is %s != %s"
 msgstr ""
-"OID cây gốc cho lần chuyển giao %s trong đồ-thị-các-lần-chuyển-giao là %s != "
-"%s"
+"OID cây gốc cho lần chuyển giao %s trong đồ-thị-chuyển-giao là %s != %s"
 
 #, c-format
 msgid "commit-graph parent list for commit %s is too long"
-msgstr ""
-"danh sách cha mẹ đồ-thị-các-lần-chuyển-giao cho lần chuyển giao %s là quá dài"
+msgstr "danh sách cha mẹ đồ-thị-chuyển-giao cho lần chuyển giao %s là quá dài"
 
 #, c-format
 msgid "commit-graph parent for %s is %s != %s"
-msgstr "cha mẹ đồ-thị-các-lần-chuyển-giao cho %s là %s != %s"
+msgstr "cha mẹ đồ-thị-chuyển-giao cho %s là %s != %s"
 
 #, c-format
 msgid "commit-graph parent list for commit %s terminates early"
 msgstr ""
-"danh sách cha mẹ đồ-thị-các-lần-chuyển-giao cho lần chuyển giao %s bị chấm "
-"dứt quá sớm"
+"danh sách cha mẹ đồ-thị-chuyển-giao cho lần chuyển giao %s bị chấm dứt quá "
+"sớm"
 
 #, c-format
-msgid ""
-"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
+msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
 msgstr ""
-"đồ-thị-các-lần-chuyển-giao có con số không lần tạo cho lần chuyển giao %s, "
-"nhưng không phải số không ở chỗ khác"
+"tạo đồ-thị-chuyển-giao cho lần chuyển giao %s là %<PRIuMAX> < %<PRIuMAX>"
 
 #, c-format
-msgid ""
-"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
+msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
 msgstr ""
-"đồ-thị-các-lần-chuyển-giao có con số không phải không lần tạo cho lần chuyển "
-"giao %s, nhưng số không ở chỗ khác"
+"ngày chuyển giao cho lần chuyển giao %s trong đồ-thị-chuyển-giao là "
+"%<PRIuMAX> != %<PRIuMAX>"
 
 #, c-format
-msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
+msgid ""
+"commit-graph has both zero and non-zero generations (e.g., commits '%s' and "
+"'%s')"
 msgstr ""
-"tạo đồ-thị-các-lần-chuyển-giao cho lần chuyển giao %s là %<PRIuMAX> < "
-"%<PRIuMAX>"
+"đồ-thị-chuyển-giao có số thế hệ không và khác không (v.d. lần chuyển giao "
+"'%s' và '%s')"
+
+msgid "Verifying commits in commit graph"
+msgstr "Đang thẩm tra các lần chuyển giao trong đồ thị lần chuyển giao"
 
 #, c-format
-msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
-msgstr ""
-"ngày chuyển giao cho lần chuyển giao %s trong đồ-thị-các-lần-chuyển-giao là "
-"%<PRIuMAX> != %<PRIuMAX>"
+msgid "could not parse commit %s"
+msgstr "không thể đọc lần chuyển giao %s"
 
 #, c-format
 msgid "%s %s is not a commit!"
@@ -14020,7 +14691,7 @@ msgid ""
 "Turn this message off by running\n"
 "\"git config advice.graftFileDeprecated false\""
 msgstr ""
-"Việc hỗ trợ cho <GIT_DIR>/info/grafts đã lạc hậu\n"
+"Hỗ trợ cho <GIT_DIR>/info/grafts đã không còn\n"
 "và sẽ bị xóa bỏ ở phiên bản Git tương lai.\n"
 "\n"
 "Vui lòng dùng \"git replace --convert-graft-file\"\n"
@@ -14029,6 +14700,12 @@ msgstr ""
 "Tắt lời nhắn này bằng cách chạy\n"
 "\"git config advice.graftFileDeprecated false\""
 
+#, c-format
+msgid "commit %s exists in commit-graph but not in the object database"
+msgstr ""
+"commit %s tồn tại trong đồ-thị-chuyển-giao nhưng không có trong cơ sở dữ "
+"liệu đối tượng"
+
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr ""
@@ -14061,6 +14738,14 @@ msgstr "hiện không có thông tin về trình biên dịch\n"
 msgid "no libc information available\n"
 msgstr "không có thông tin về libc\n"
 
+#, c-format
+msgid "could not determine free disk size for '%s'"
+msgstr "không thể dò tìm chỗ trống trên đĩa  cho '%s'"
+
+#, c-format
+msgid "could not get info for '%s'"
+msgstr "không thể lấy thông tin cho '%s'"
+
 #, c-format
 msgid "[GLE %ld] health thread could not open '%ls'"
 msgstr "[GLE %ld] không thể mở tuyến trình sức khỏe '%ls'"
@@ -14085,6 +14770,10 @@ msgstr "có trường hợp không được xử lý trong  'has_worktree_moved'
 msgid "health thread wait failed [GLE %ld]"
 msgstr "gặp lỗi khi chờ tiến trình sức khỏe [GLE %ld]"
 
+#, c-format
+msgid "Invalid path: %s"
+msgstr "đường dẫn không hợp lệ: %s"
+
 msgid "Unable to create FSEventStream."
 msgstr "Không thể tạo FSEventStream."
 
@@ -14115,6 +14804,30 @@ msgstr "GetOverlappedResult gặp lỗi trên '%s' [GLE %ld]"
 msgid "could not read directory changes [GLE %ld]"
 msgstr "không thể đọc các thay đổi thư mục [GLE %ld]"
 
+#, c-format
+msgid "opendir('%s') failed"
+msgstr "opendir('%s') gặp lỗi"
+
+#, c-format
+msgid "lstat('%s') failed"
+msgstr "lstat('%s') gặp lỗi"
+
+#, c-format
+msgid "strbuf_readlink('%s') failed"
+msgstr "strbuf_readlink('%s') gặp lỗi"
+
+#, c-format
+msgid "closedir('%s') failed"
+msgstr "closedir('%s') gặp lỗi"
+
+#, c-format
+msgid "[GLE %ld] unable to open for read '%ls'"
+msgstr "[GLE %ld] không thể mở hay đọc '%ls'"
+
+#, c-format
+msgid "[GLE %ld] unable to get protocol information for '%ls'"
+msgstr "[GLE %ld] không thể lấy thông tin giao thức cho '%ls'"
+
 #, c-format
 msgid "failed to copy SID (%ld)"
 msgstr "gặp lỗi khi sao chép SID (%ld)"
@@ -14154,7 +14867,7 @@ msgid "Unmatched ( or \\("
 msgstr "Chưa khớp ( hay \\("
 
 msgid "Unmatched \\{"
-msgstr "Chưa khớp cặp “\\{”"
+msgstr "Chưa khớp cặp '\\{'"
 
 msgid "Invalid content of \\{\\}"
 msgstr "Nội dung của \\{\\} không hợp lệ"
@@ -14188,11 +14901,11 @@ msgstr "không thể đọc đáp ứng IPC"
 
 #, c-format
 msgid "could not start accept_thread '%s'"
-msgstr "không thể khởi chạy accept_thread “%s”"
+msgstr "không thể khởi chạy accept_thread '%s'"
 
 #, c-format
 msgid "could not start worker[0] for '%s'"
-msgstr "không thể khởi chạy bộ làm việc worker[0] cho “%s”"
+msgstr "không thể khởi chạy bộ làm việc worker[0] cho '%s'"
 
 #, c-format
 msgid "ConnectNamedPipe failed for '%s' (%lu)"
@@ -14204,11 +14917,11 @@ msgstr "không thể tạo mô tả tập tin từ đường ống cho '%s'"
 
 #, c-format
 msgid "could not start thread[0] for '%s'"
-msgstr "không thể khởi chạy tiến trình[0] cho “%s”"
+msgstr "không thể khởi chạy tiến trình[0] cho '%s'"
 
 #, c-format
 msgid "wait for hEvent failed for '%s'"
-msgstr "chờ cho hEvent gặp lỗi với “%s”"
+msgstr "chờ cho hEvent gặp lỗi với '%s'"
 
 msgid "cannot resume in the background, please use 'fg' to resume"
 msgstr ""
@@ -14234,7 +14947,7 @@ msgstr ""
 
 #, c-format
 msgid "could not expand include path '%s'"
-msgstr "không thể khai triển đường dẫn “%s”"
+msgstr "không thể khai triển đường dẫn '%s'"
 
 msgid "relative config includes must come from files"
 msgstr "các bao gồm cấu hình liên quan phải đến từ các tập tin"
@@ -14246,7 +14959,7 @@ msgid ""
 "remote URLs cannot be configured in file directly or indirectly included by "
 "includeIf.hasconfig:remote.*.url"
 msgstr ""
-"các URL máy chủ không thá»\83 Ä\91ược cấu hình trong tá»\87p trực tiếp hoặc gián tiếp "
+"các URL máy chủ không thá»\83 Ä\91ược cấu hình trong tập trực tiếp hoặc gián tiếp "
 "được bao gồm bởi includeIf.hasconfig:remote.*.url"
 
 #, c-format
@@ -14255,11 +14968,11 @@ msgstr "định dạng cấu hình không hợp lệ: %s"
 
 #, c-format
 msgid "missing environment variable name for configuration '%.*s'"
-msgstr "thiếu tên biến môi trường cho cấu hình “%.*s”"
+msgstr "thiếu tên biến môi trường cho cấu hình '%.*s'"
 
 #, c-format
 msgid "missing environment variable '%s' for configuration '%.*s'"
-msgstr "thiếu biến môi trường “%s” cho cấu hình “%.*s”"
+msgstr "thiếu biến môi trường '%s' cho cấu hình '%.*s'"
 
 #, c-format
 msgid "key does not contain a section: %s"
@@ -14271,7 +14984,7 @@ msgstr "khóa không chứa bất kỳ một tên biến nào: %s"
 
 #, c-format
 msgid "invalid key: %s"
-msgstr "khóa không đúng: %s"
+msgstr "khóa không hợp lệ: %s"
 
 #, c-format
 msgid "invalid key (newline): %s"
@@ -14298,11 +15011,11 @@ msgstr "quá nhiều mục tin trong %s"
 
 #, c-format
 msgid "missing config key %s"
-msgstr "thiếu khóa cấu hình “%s”"
+msgstr "thiếu khóa cấu hình '%s'"
 
 #, c-format
 msgid "missing config value %s"
-msgstr "thiếu giá trị cấu hình “%s”"
+msgstr "thiếu giá trị cấu hình '%s'"
 
 #, c-format
 msgid "bad config line %d in blob %s"
@@ -14314,7 +15027,7 @@ msgstr "cấu hình sai tại dòng %d trong tập tin %s"
 
 #, c-format
 msgid "bad config line %d in standard input"
-msgstr "cấu hình sai tại dòng %d trong đầu vào tiêu chuẩn"
+msgstr "cấu hình sai tại dòng %d từ stdin"
 
 #, c-format
 msgid "bad config line %d in submodule-blob %s"
@@ -14336,33 +15049,32 @@ msgstr "đơn vị không hợp lệ"
 
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
-msgstr "sai giá trị bằng số của cấu hình “%s” cho “%s”: %s"
+msgstr "sai giá trị bằng số của cấu hình '%s' cho '%s': %s"
 
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
-msgstr "sai giá trị bằng số của cấu hình “%s” cho “%s” trong blob %s: %s"
+msgstr "sai giá trị bằng số của cấu hình '%s' cho '%s' trong blob %s: %s"
 
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in file %s: %s"
-msgstr "sai giá trị bằng số của cấu hình “%s” cho “%s” trong tập tin %s: %s"
+msgstr "sai giá trị bằng số của cấu hình '%s' cho '%s' trong tập tin %s: %s"
 
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in standard input: %s"
-msgstr ""
-"sai giá trị bằng số của cấu hình “%s” cho “%s” trong đầu vào tiêu chuẩn: %s"
+msgstr "sai giá trị bằng số của cấu hình '%s' cho '%s' trong stdin: %s"
 
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
 msgstr ""
-"sai giá trị bằng số của cấu hình “%s” cho “%s” trong submodule-blob %s: %s"
+"sai giá trị bằng số của cấu hình '%s' cho '%s' trong submodule-blob %s: %s"
 
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
-msgstr "sai giá trị bằng số của cấu hình “%s” cho “%s” trong dòng lệnh %s: %s"
+msgstr "sai giá trị bằng số của cấu hình '%s' cho '%s' trong dòng lệnh %s: %s"
 
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "sai giá trị bằng số của cấu hình “%s” cho “%s” trong %s: %s"
+msgstr "sai giá trị bằng số của cấu hình '%s' cho '%s' trong %s: %s"
 
 #, c-format
 msgid "invalid value for variable %s"
@@ -14374,15 +15086,15 @@ msgstr "bỏ qua thành phần core.fsync chưa biết '%s'"
 
 #, c-format
 msgid "bad boolean config value '%s' for '%s'"
-msgstr "sai giá trị kiểu lô-gíc của cấu hình “%s” cho “%s”"
+msgstr "sai giá trị kiểu boolean của cấu hình '%s' cho '%s'"
 
 #, c-format
 msgid "failed to expand user dir in: '%s'"
-msgstr "gặp lỗi mở rộng thư mục người dùng trong: “%s”"
+msgstr "gặp lỗi mở rộng thư mục người dùng trong: '%s'"
 
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
-msgstr "“%s” dành cho “%s” không phải là dấu vết thời gian hợp lệ"
+msgstr "'%s' dành cho '%s' không phải là dấu vết thời gian hợp lệ"
 
 #, c-format
 msgid "abbrev length out of range: %d"
@@ -14392,8 +15104,13 @@ msgstr "chiều dài abbrev nằm ngoài phạm vi: %d"
 msgid "bad zlib compression level %d"
 msgstr "mức nén zlib %d là sai"
 
-msgid "core.commentChar should only be one character"
-msgstr "core.commentChar chỉ được có một ký tự"
+#, c-format
+msgid "%s cannot contain newline"
+msgstr "%s không thể chứa ký tự xuống dòng"
+
+#, c-format
+msgid "%s must have at least one character"
+msgstr "%s phải có ít nhất một ký tự"
 
 #, c-format
 msgid "ignoring unknown core.fsyncMethod value '%s'"
@@ -14419,45 +15136,41 @@ msgstr "phải là một trong số nothing, matching, simple, upstream hay curr
 
 #, c-format
 msgid "unable to load config blob object '%s'"
-msgstr "không thể tải đối tượng blob cấu hình “%s”"
+msgstr "không thể tải đối tượng blob cấu hình '%s'"
 
 #, c-format
 msgid "reference '%s' does not point to a blob"
-msgstr "tham chiếu “%s” không chỉ đến một blob nào cả"
+msgstr "tham chiếu '%s' không chỉ đến một blob nào cả"
 
 #, c-format
 msgid "unable to resolve config blob '%s'"
-msgstr "không thể phân giải điểm xét duyệt “%s”"
-
-#, c-format
-msgid "failed to parse %s"
-msgstr "gặp lỗi khi phân tích cú pháp %s"
+msgstr "không thể phân giải điểm xét duyệt '%s'"
 
 msgid "unable to parse command-line config"
-msgstr "không thể phân tích cấu hình dòng lệnh"
+msgstr "không thể đọc cấu hình dòng lệnh"
 
 msgid "unknown error occurred while reading the configuration files"
 msgstr "đã có lỗi chưa biết xảy ra trong khi đọc các tập tin cấu hình"
 
 #, c-format
 msgid "Invalid %s: '%s'"
-msgstr "%s không hợp lệ: “%s”"
+msgstr "%s không hợp lệ: '%s'"
 
 #, c-format
 msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
-msgstr "giá trị splitIndex.maxPercentChange “%d” phải nằm giữa 0 và 100"
+msgstr "giá trị splitIndex.maxPercentChange '%d' phải nằm giữa 0 và 100"
 
 #, c-format
 msgid "unable to parse '%s' from command-line config"
-msgstr "không thể phân tích “%s” từ cấu hình dòng lệnh"
+msgstr "không thể đọc '%s' từ cấu hình dòng lệnh"
 
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
-msgstr "sai biến cấu hình “%s” trong tập tin “%s” tại dòng %d"
+msgstr "sai biến cấu hình '%s' trong tập tin '%s' tại dòng %d"
 
 #, c-format
 msgid "invalid section name '%s'"
-msgstr "tên của phần không hợp lệ “%s”"
+msgstr "tên của phần không hợp lệ '%s'"
 
 #, c-format
 msgid "%s has multiple values"
@@ -14465,19 +15178,23 @@ msgstr "%s có đa giá trị"
 
 #, c-format
 msgid "failed to write new configuration file %s"
-msgstr "gặp lỗi khi ghi tập tin cấu hình “%s”"
+msgstr "gặp lỗi khi ghi tập tin cấu hình '%s'"
 
 #, c-format
-msgid "could not lock config file %s"
+msgid "no multi-line comment allowed: '%s'"
+msgstr "không cho phép ghi chú nhiều dòng: '%s'"
+
+#, c-format
+msgid "could not lock config file %s"
 msgstr "không thể khóa tập tin cấu hình %s"
 
 #, c-format
 msgid "opening %s"
-msgstr "đang mở “%s”"
+msgstr "đang mở '%s'"
 
 #, c-format
 msgid "invalid config file %s"
-msgstr "tập tin cấu hình “%s” không hợp lệ"
+msgstr "tập tin cấu hình '%s' không hợp lệ"
 
 #, c-format
 msgid "fstat on %s failed"
@@ -14485,7 +15202,7 @@ msgstr "fstat trên %s gặp lỗi"
 
 #, c-format
 msgid "unable to mmap '%s'%s"
-msgstr "không thể mmap “%s”%s"
+msgstr "không thể mmap '%s'%s"
 
 #, c-format
 msgid "chmod on %s failed"
@@ -14493,19 +15210,23 @@ msgstr "chmod trên %s gặp lỗi"
 
 #, c-format
 msgid "could not write config file %s"
-msgstr "không thể ghi tập tin cấu hình “%s”"
+msgstr "không thể ghi tập tin cấu hình '%s'"
 
 #, c-format
 msgid "could not set '%s' to '%s'"
-msgstr "không thể đặt “%s” thành “%s”"
+msgstr "không thể đặt '%s' thành '%s'"
 
 #, c-format
 msgid "invalid section name: %s"
 msgstr "tên của phần không hợp lệ: %s"
 
+#, c-format
+msgid "refusing to work with overly long line in '%s' on line %<PRIuMAX>"
+msgstr "từ chối làm việc với dòng quá dài '%s' trên dòng %<PRIuMAX>"
+
 #, c-format
 msgid "missing value for '%s'"
-msgstr "thiếu giá trị cho cho “%s”"
+msgstr "thiếu giá trị cho cho '%s'"
 
 msgid "the remote end hung up upon initial contact"
 msgstr "máy chủ bị treo trên lần tiếp xúc đầu tiên"
@@ -14523,25 +15244,25 @@ msgstr ""
 
 #, c-format
 msgid "server doesn't support '%s'"
-msgstr "máy chủ không hỗ trợ “%s”"
+msgstr "máy chủ không hỗ trợ '%s'"
 
 #, c-format
 msgid "server doesn't support feature '%s'"
-msgstr "máy chủ không hỗ trợ tính năng “%s”"
+msgstr "máy chủ không hỗ trợ tính năng '%s'"
 
 msgid "expected flush after capabilities"
 msgstr "cần đẩy dữ liệu lên đĩa sau các capabilities"
 
 #, c-format
 msgid "ignoring capabilities after first line '%s'"
-msgstr "bỏ qua capabilities sau dòng đầu tiên “%s”"
+msgstr "bỏ qua capabilities sau dòng đầu tiên '%s'"
 
 msgid "protocol error: unexpected capabilities^{}"
-msgstr "lỗi giao thức: không cần capabilities^{}"
+msgstr "lỗi giao thức: capabilities^{} bất thường"
 
 #, c-format
 msgid "protocol error: expected shallow sha-1, got '%s'"
-msgstr "lỗi giao thức: cần sha-1 shallow, nhưng lại nhận được “%s”"
+msgstr "lỗi giao thức: cần sha-1 shallow, nhưng lại có '%s'"
 
 msgid "repository on the other end cannot be shallow"
 msgstr "kho đã ở điểm cuối khoác nên không thể được shallow"
@@ -14551,11 +15272,21 @@ msgstr "gói không hợp lệ"
 
 #, c-format
 msgid "protocol error: unexpected '%s'"
-msgstr "lỗi giao thức: không cần “%s”"
+msgstr "lỗi giao thức: '%s' bất thường"
 
 #, c-format
 msgid "unknown object format '%s' specified by server"
-msgstr "không hiểu định dạng đối tượng “%s” được chỉ định bởi máy phục vụ"
+msgstr "không hiểu định dạng đối tượng '%s' được chỉ định bởi máy chủ"
+
+#, c-format
+msgid "error on bundle-uri response line %d: %s"
+msgstr "lỗi trên dòng phản hồi bundle-uri thứ %d: %s"
+
+msgid "expected flush after bundle-uri listing"
+msgstr "cần đẩy dữ liệu lên đĩa sau khi liệt kê bundle-uri"
+
+msgid "expected response end packet after ref listing"
+msgstr "cần nhận được trả lời là kết thúc gói sau khi liệt kê tham chiếu"
 
 #, c-format
 msgid "invalid ls-refs response: %s"
@@ -14564,19 +15295,16 @@ msgstr "trả về của ls-refs không hợp lệ: %s"
 msgid "expected flush after ref listing"
 msgstr "cần đẩy dữ liệu lên đĩa sau khi liệt kê tham chiếu"
 
-msgid "expected response end packet after ref listing"
-msgstr "cần nhận được trả lời là kết thúc gói sau khi liệt kê tham chiếu"
-
 #, c-format
 msgid "protocol '%s' is not supported"
-msgstr "giao thức “%s” chưa được hỗ trợ"
+msgstr "giao thức '%s' chưa được hỗ trợ"
 
 msgid "unable to set SO_KEEPALIVE on socket"
 msgstr "không thể đặt SO_KEEPALIVE trên ổ cắm"
 
 #, c-format
 msgid "Looking up %s ... "
-msgstr "Đang tìm kiếm %s  "
+msgstr "Đang tìm kiếm %s ... "
 
 #, c-format
 msgid "unable to look up %s (port %s) (%s)"
@@ -14589,7 +15317,7 @@ msgid ""
 "Connecting to %s (port %s) ... "
 msgstr ""
 "xong.\n"
-"Đang kết nối đến %s (cổng %s)  "
+"Đang kết nối đến %s (cổng %s) ... "
 
 #, c-format
 msgid ""
@@ -14613,221 +15341,46 @@ msgstr "không hiểu cổng %s"
 
 #, c-format
 msgid "strange hostname '%s' blocked"
-msgstr "đã khóa tên máy lạ “%s”"
+msgstr "đã khóa tên máy lạ '%s'"
 
 #, c-format
 msgid "strange port '%s' blocked"
-msgstr "đã khóa cổng lạ “%s”"
+msgstr "đã khóa cổng lạ '%s'"
 
 #, c-format
 msgid "cannot start proxy %s"
-msgstr "không thể khởi chạy ủy nhiệm “%s”"
+msgstr "không thể khởi chạy ủy nhiệm '%s'"
 
 msgid "no path specified; see 'git help pull' for valid url syntax"
-msgstr "chưa chỉ định đường dẫn; xem'git help pull để biết cú pháp url hợp lệ"
+msgstr "chưa chỉ định đường dẫn; xem'git help pull' để biết cú pháp url hợp lệ"
 
 msgid "newline is forbidden in git:// hosts and repo paths"
-msgstr "newline bị cấm trong các git:// máy chủ và đường dẫn repo"
+msgstr "ký tự xuống dòng bị cấm trong các git:// máy chủ và đường dẫn repo"
 
 msgid "ssh variant 'simple' does not support -4"
-msgstr "ssh biến thể “simple” không hỗ trợ -4"
+msgstr "ssh biến thể 'simple' không hỗ trợ -4"
 
 msgid "ssh variant 'simple' does not support -6"
-msgstr "ssh biến thể “simple” không hỗ trợ -6"
+msgstr "ssh biến thể 'simple' không hỗ trợ -6"
 
 msgid "ssh variant 'simple' does not support setting port"
-msgstr "ssh biến thể “simple” không hỗ trợ đặt cổng"
+msgstr "ssh biến thể 'simple' không hỗ trợ đặt cổng"
 
 #, c-format
 msgid "strange pathname '%s' blocked"
-msgstr "đã khóa tên đường dẫn lạ “%s”"
+msgstr "đã khóa tên đường dẫn lạ '%s'"
 
 msgid "unable to fork"
 msgstr "không thể rẽ nhánh tiến trình con"
 
 msgid "Could not run 'git rev-list'"
-msgstr "Không thể chạy “git rev-list”"
+msgstr "Không thể chạy 'git rev-list'"
 
 msgid "failed write to rev-list"
 msgstr "gặp lỗi khi ghi vào rev-list"
 
 msgid "failed to close rev-list's stdin"
-msgstr "gặp lỗi khi đóng đầu vào chuẩn stdin của rev-list"
-
-#, c-format
-msgid "'%s' does not exist"
-msgstr "\"%s\" không tồn tại"
-
-msgid "need a working directory"
-msgstr "cần một thư mục làm việc"
-
-msgid "could not find enlistment root"
-msgstr "không tìm thấy gốc enlistment"
-
-#, c-format
-msgid "could not switch to '%s'"
-msgstr "không thể chuyển đến '%s'"
-
-#, c-format
-msgid "could not configure %s=%s"
-msgstr "không thể đóng cấu hình %s=%s"
-
-msgid "could not configure log.excludeDecoration"
-msgstr "không thể cấu hình log.excludeDecoration"
-
-msgid "Scalar enlistments require a worktree"
-msgstr "'Scalar enlistments' cần một cây làm việc"
-
-#, c-format
-msgid "could not open directory '%s'"
-msgstr "không thể mở thư mục “%s”"
-
-#, c-format
-msgid "skipping '%s', which is neither file nor directory"
-msgstr ""
-"đang bỏ qua “%s”, cái không phải là một tập tin, cũng không phải thư mục"
-
-#, c-format
-msgid "could not determine free disk size for '%s'"
-msgstr "không thể dò tìm chỗ trống trên đĩa  cho “%s”"
-
-#, c-format
-msgid "could not get info for '%s'"
-msgstr "không thể lấy thông tin cho “%s”"
-
-#, c-format
-msgid "remote HEAD is not a branch: '%.*s'"
-msgstr "HEAD của máy chủ không phải một nhánh: '%.*s'"
-
-msgid "failed to get default branch name from remote; using local default"
-msgstr "gặp lỗi khi lấy tên nhánh mặc định từ máy chủ; sử dụng mặc định nội bộ"
-
-msgid "failed to get default branch name"
-msgstr "gặp lỗi khi lấy tên nhánh mặc định"
-
-msgid "failed to unregister repository"
-msgstr "gặp lỗi khi hủy đăng ký kho chứa"
-
-msgid "failed to delete enlistment directory"
-msgstr "gặp lỗi khi xóa thư mục dành được"
-
-msgid "branch to checkout after clone"
-msgstr "nhánh để lấy ra sau khi nhân bản"
-
-msgid "when cloning, create full working directory"
-msgstr "khi nhân bản, tạo đầy đủ thư mục làm việc"
-
-msgid "only download metadata for the branch that will be checked out"
-msgstr "chỉ siêu dữ liệu tải về cho nhánh mà sẽ được lấy ra"
-
-msgid "scalar clone [<options>] [--] <repo> [<dir>]"
-msgstr "scalar clone [<các tùy chọn>] [--] <kho> [<t.mục>]"
-
-#, c-format
-msgid "cannot deduce worktree name from '%s'"
-msgstr "không thể suy diễn tên cây làm việc từ '%s'"
-
-#, c-format
-msgid "directory '%s' exists already"
-msgstr "thư mục '%s' đã sẵn có"
-
-#, c-format
-msgid "failed to get default branch for '%s'"
-msgstr "gặp lỗi khi lấy nhánh mặc định cho '%s'"
-
-#, c-format
-msgid "could not configure remote in '%s'"
-msgstr "không thể cấu hình máy chủ trong '%s'"
-
-#, c-format
-msgid "could not configure '%s'"
-msgstr "không thể cấu hình '%s'"
-
-msgid "partial clone failed; attempting full clone"
-msgstr "nhân bản từng phần gặp lỗi; đang cố thử nhân bản đầy đủ"
-
-msgid "could not configure for full clone"
-msgstr "không thể cấu hình cho nhân bản đầy đủ"
-
-msgid "scalar diagnose [<enlistment>]"
-msgstr "scalar diagnose [<enlistment>]"
-
-#, c-format
-msgid "could not create directory for '%s'"
-msgstr "không thể tạo thư mục cho “%s”"
-
-msgid "could not duplicate stdout"
-msgstr "không thể nhân đôi đầu vào tiêu chuẩn"
-
-msgid "failed to write archive"
-msgstr "gặp lỗi khi khi kho nén"
-
-msgid "`scalar list` does not take arguments"
-msgstr "`scalar list` không nhận các tham số"
-
-msgid "scalar register [<enlistment>]"
-msgstr "scalar register [<enlistment>]"
-
-msgid "reconfigure all registered enlistments"
-msgstr "cấu hình mọi enlistments đã đăng ký"
-
-msgid "scalar reconfigure [--all | <enlistment>]"
-msgstr "scalar reconfigure [--all | <enlistment>]"
-
-msgid "--all or <enlistment>, but not both"
-msgstr "--all hoặc <enlistment>, không thể là cả hai"
-
-#, c-format
-msgid "git repository gone in '%s'"
-msgstr "kho git ra đi trong '%s'"
-
-msgid ""
-"scalar run <task> [<enlistment>]\n"
-"Tasks:\n"
-msgstr ""
-"scalar run <task> [<enlistment>]\n"
-"Nhiệm vụ:\n"
-
-#, c-format
-msgid "no such task: '%s'"
-msgstr "không có nhiệm vụ nào như thế: “%s”"
-
-msgid "scalar unregister [<enlistment>]"
-msgstr "scalar unregister [<enlistment>]"
-
-msgid "scalar delete <enlistment>"
-msgstr "scalar delete <enlistment>"
-
-msgid "refusing to delete current working directory"
-msgstr "từ chối gỡ bỏ thư mục làm việc hiện tại"
-
-msgid "include Git version"
-msgstr "bao gồm phiên bản Git"
-
-msgid "include Git's build options"
-msgstr "bao gồm các tùy chọn biên dịch của Git"
-
-msgid "scalar verbose [-v | --verbose] [--build-options]"
-msgstr "scalar verbose [-v | --verbose] [--build-options]"
-
-msgid "-C requires a <directory>"
-msgstr "-C cần một <thư_mục>"
-
-#, c-format
-msgid "could not change to '%s'"
-msgstr "không thể chuyển sang “%s”"
-
-msgid "-c requires a <key>=<value> argument"
-msgstr "-c cần một tham số <key>=<value>"
-
-msgid ""
-"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
-"\n"
-"Commands:\n"
-msgstr ""
-"scalar [-C </thư/mục/>] [-c <khóa>=<giá trị>] <lệnh> [<các tùy chọn>]\n"
-"\n"
-"Các lệnh:\n"
+msgstr "gặp lỗi khi đóng stdin của rev-list"
 
 #, c-format
 msgid "illegal crlf_action %d"
@@ -14859,55 +15412,55 @@ msgstr ""
 
 #, c-format
 msgid "BOM is prohibited in '%s' if encoded as %s"
-msgstr "BOM bị cấm trong “%s” nếu được mã hóa là %s"
+msgstr "BOM bị cấm trong '%s' nếu được mã hóa là %s"
 
 #, c-format
 msgid ""
 "The file '%s' contains a byte order mark (BOM). Please use UTF-%.*s as "
 "working-tree-encoding."
 msgstr ""
-"Tập tin “%s” có chứa ký hiệu thứ tự byte (BOM). Vui lòng dùng UTF-%.*s như "
+"Tập tin '%s' có chứa ký hiệu thứ tự byte (BOM). Vui lòng dùng UTF-%.*s như "
 "là bảng mã cây làm việc."
 
 #, c-format
 msgid "BOM is required in '%s' if encoded as %s"
-msgstr "BOM là bắt buộc trong “%s” nếu được mã hóa là %s"
+msgstr "BOM là bắt buộc trong '%s' nếu được mã hóa là %s"
 
 #, c-format
 msgid ""
 "The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
 "%sLE (depending on the byte order) as working-tree-encoding."
 msgstr ""
-"Tập tin “%s” còn thiếu ký hiệu thứ tự byte (BOM). Vui lòng dùng UTF-%sBE hay "
+"Tập tin '%s' còn thiếu ký hiệu thứ tự byte (BOM). Vui lòng dùng UTF-%sBE hay "
 "UTF-%sLE (còn phục thuộc vào thứ tự byte) như là bảng mã cây làm việc."
 
 #, c-format
 msgid "failed to encode '%s' from %s to %s"
-msgstr "gặp lỗi khi mã hóa “%s”  từ “%s” sang “%s”"
+msgstr "gặp lỗi khi mã hóa '%s' từ '%s' sang '%s'"
 
 #, c-format
 msgid "encoding '%s' from %s to %s and back is not the same"
-msgstr "mã hóa “%s” từ %s thành %s và ngược trở lại không phải là cùng"
+msgstr "mã hóa '%s' từ %s thành %s và ngược trở lại không phải là cùng"
 
 #, c-format
 msgid "cannot fork to run external filter '%s'"
-msgstr "không thể rẽ nhánh tiến trình để chạy bộ lọc bên ngoài “%s”"
+msgstr "không thể rẽ nhánh tiến trình để chạy bộ lọc bên ngoài '%s'"
 
 #, c-format
 msgid "cannot feed the input to external filter '%s'"
-msgstr "không thể cấp đầu vào cho bộ lọc bên ngoài “%s”"
+msgstr "không thể cấp đầu vào cho bộ lọc bên ngoài '%s'"
 
 #, c-format
 msgid "external filter '%s' failed %d"
-msgstr "chạy bộ lọc bên ngoài “%s” gặp lỗi %d"
+msgstr "chạy bộ lọc bên ngoài '%s' gặp lỗi %d"
 
 #, c-format
 msgid "read from external filter '%s' failed"
-msgstr "đọc từ bộ lọc bên ngoài “%s” gặp lỗi"
+msgstr "đọc từ bộ lọc bên ngoài '%s' gặp lỗi"
 
 #, c-format
 msgid "external filter '%s' failed"
-msgstr "gặp lỗi khi chạy bộ lọc bên ngoài “%s”"
+msgstr "gặp lỗi khi chạy bộ lọc bên ngoài '%s'"
 
 msgid "unexpected filter type"
 msgstr "gặp kiểu bộ lọc thừa"
@@ -14920,23 +15473,23 @@ msgid ""
 "external filter '%s' is not available anymore although not all paths have "
 "been filtered"
 msgstr ""
-"bộ lọc bên ngoài “%s” không sẵn sàng nữa mặc dù không phải tất cả các đường "
-"dẫn đã được lọc"
+"bộ lọc ngoài '%s' không còn nữa mặc dù không phải tất cả các đường dẫn đã "
+"được lọc"
 
 msgid "true/false are no valid working-tree-encodings"
-msgstr "true/false là không phải bảng-mã-cây-làm-việc hợp lệ"
+msgstr "true/false không phải là bảng mã cây làm việc hợp lệ"
 
 #, c-format
 msgid "%s: clean filter '%s' failed"
-msgstr "%s: gặp lỗi khi xóa bộ lọc “%s”"
+msgstr "%s: bộ lọc clean '%s' gặp lỗi"
 
 #, c-format
 msgid "%s: smudge filter %s failed"
-msgstr "%s: smudge bộ lọc %s gặp lỗi"
+msgstr "%s: bộ lọc smudge %s gặp lỗi"
 
 #, c-format
 msgid "skipping credential lookup for key: credential.%s"
-msgstr "bỏ qua tìm kiếm giấy chứng chực cho khóa: credential.%s"
+msgstr "bỏ qua tìm kiếm giấy chứng thực cho khóa: credential.%s"
 
 msgid "refusing to work with credential missing host field"
 msgstr "từ chối làm việc với giấy chứng thực thiếu trường máy chủ"
@@ -14954,10 +15507,10 @@ msgstr "url không có lược đồ: %s"
 
 #, c-format
 msgid "credential url cannot be parsed: %s"
-msgstr "không thể phân tích cú pháp giấy chứng thực url: %s"
+msgstr "không hiểu cú pháp giấy chứng thực url: %s"
 
 msgid "in the future"
-msgstr "ở thời tương lai"
+msgstr "ở tương lai"
 
 #, c-format
 msgid "%<PRIuMAX> second ago"
@@ -15010,35 +15563,64 @@ msgstr "Đang lan truyền các đánh dấu island"
 
 #, c-format
 msgid "bad tree object %s"
-msgstr "đối tượng cây sai “%s”"
+msgstr "đối tượng cây sai '%s'"
 
 #, c-format
 msgid "failed to load island regex for '%s': %s"
-msgstr "gặp lỗi khi tải biểu thức chính quy island cho “%s”: %s"
+msgstr "gặp lỗi khi tải biểu thức chính quy island cho '%s': %s"
 
 #, c-format
 msgid "island regex from config has too many capture groups (max=%d)"
 msgstr ""
-"biá»\83u thức chính quy island từ cấu hình có quá nhiá»\81u nhóm chụp (tối đa=%d)"
+"biá»\83u thức chính quy island từ cấu hình có quá nhiá»\81u nhóm chá»\8dn (tối đa=%d)"
 
 #, c-format
 msgid "Marked %d islands, done.\n"
 msgstr "Đã đánh dấu %d island, xong.\n"
 
-msgid "--merge-base does not work with ranges"
-msgstr "--merge-base không hoạt động với phạm vi"
+#, c-format
+msgid "invalid --%s value '%s'"
+msgstr "giá trị --%s không hợp lệ: '%s'"
+
+#, c-format
+msgid "could not archive missing directory '%s'"
+msgstr "không thể nén thư mục '%s' không còn tồn tại"
+
+#, c-format
+msgid "could not open directory '%s'"
+msgstr "không thể mở thư mục '%s'"
+
+#, c-format
+msgid "skipping '%s', which is neither file nor directory"
+msgstr "đang bỏ qua '%s', không phải là một tập tin hay thư mục"
+
+msgid "could not duplicate stdout"
+msgstr "không thể nhân bản stdout"
+
+#, c-format
+msgid "could not add directory '%s' to archiver"
+msgstr "không thể thêm thư mục '%s' vào kho nén"
 
-msgid "--merge-base only works with commits"
-msgstr "--merge-base chỉ hoạt động với các lần chuyển giao"
+msgid "failed to write archive"
+msgstr "gặp lỗi khi ghi kho nén"
+
+msgid "--merge-base does not work with ranges"
+msgstr "--merge-base không thể dùng với chỉ vùng"
 
 msgid "unable to get HEAD"
 msgstr "không thể lấy HEAD"
 
 msgid "no merge base found"
-msgstr "không tìm thấy cơ sở để hòa trộn"
+msgstr "không tìm thấy gốc hòa trộn"
 
 msgid "multiple merge bases found"
-msgstr "có nhiều cơ sở để hòa trộn"
+msgstr "có nhiều hơn một gốc hòa trộn"
+
+msgid "cannot compare stdin to a directory"
+msgstr "không thể so sánh stdin và thư mục"
+
+msgid "cannot compare a named pipe to a directory"
+msgstr "không thể so sánh pipe có tên và thư mục"
 
 msgid "git diff --no-index [<options>] <path> <path>"
 msgstr "git diff --no-index [<các tùy chọn>] </đường/dẫn> </đường/dẫn>"
@@ -15048,54 +15630,65 @@ msgid ""
 "tree"
 msgstr ""
 "Không phải là một thư mục git. Dùng --no-index để so sánh hai đường dẫn bên "
-"ngoài một cây làm việc"
+"ngoài cây làm việc"
 
 #, c-format
 msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
-msgstr "  Gặp lỗi khi phân tích dirstat cắt bỏ phần trăm “%s”\n"
+msgstr "  Gặp lỗi khi đọc phần trăm cắt bỏ dirstat '%s'\n"
 
 #, c-format
 msgid "  Unknown dirstat parameter '%s'\n"
-msgstr "  Không hiểu đối số dirstat “%s”\n"
+msgstr "  Không hiểu đối số dirstat '%s'\n"
 
 msgid ""
 "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
 "'dimmed-zebra', 'plain'"
 msgstr ""
-"cài đặt màu đã di chuyển phải là một trong “no”, “default”, “blocks”, "
-"“zebra”, “dimmed-zebra”, “plain”"
+"cài đặt color moved phải là một trong 'no', 'default', 'blocks', 'zebra', "
+"'dimmed-zebra', 'plain'"
 
 #, c-format
 msgid ""
 "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
 "'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-change'"
 msgstr ""
-"không hiểu chế độ color-moved-ws “%s”, các giá trị có thể là “ignore-space-"
-"change”, “ignore-space-at-eol”, “ignore-all-space”, “allow-indentation-"
-"change"
+"không hiểu chế độ color-moved-ws '%s', các giá trị có thể là 'ignore-space-"
+"change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-"
+"change'"
 
 msgid ""
 "color-moved-ws: allow-indentation-change cannot be combined with other "
 "whitespace modes"
 msgstr ""
-"color-moved-ws: allow-indentation-change không thể tổ hợp cùng với các chế "
+"color-moved-ws: allow-indentation-change không thể kết hợp cùng với các chế "
 "độ khoảng trắng khác"
 
 #, c-format
 msgid "Unknown value for 'diff.submodule' config variable: '%s'"
-msgstr "Không hiểu giá trị cho biến cấu hình “diff.submodule”: “%s”"
+msgstr "Không hiểu giá trị cho biến cấu hình 'diff.submodule': '%s'"
+
+#, c-format
+msgid "unknown value for config '%s': %s"
+msgstr "không hiểu giá trị cho cho cấu hình '%s': %s"
 
 #, c-format
 msgid ""
 "Found errors in 'diff.dirstat' config variable:\n"
 "%s"
 msgstr ""
-"Tìm thấy các lỗi trong biến cấu hình “diff.dirstat”:\n"
+"Tìm thấy các lỗi trong biến cấu hình 'diff.dirstat':\n"
 "%s"
 
 #, c-format
 msgid "external diff died, stopping at %s"
-msgstr "phần mềm diff ở bên ngoài đã chết, dừng tại %s"
+msgstr "phần mềm diff ở bên ngoài đã thoát, dừng tại %s"
+
+msgid "--follow requires exactly one pathspec"
+msgstr "--follow cần đúng một đặc tả đường dẫn"
+
+#, c-format
+msgid "pathspec magic not supported by --follow: %s"
+msgstr "đặc tả đường dẫn đặc biệt chưa được hỗ trợ bởi --follow: %s"
 
 #, c-format
 msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
@@ -15111,28 +15704,25 @@ msgid ""
 msgstr ""
 "tùy chọn '%s' và '%s' không thể dùng cùng nhau, dùng '%s' với '%s' và '%s'"
 
-msgid "--follow requires exactly one pathspec"
-msgstr "--follow cần chính xác một đặc tả đường dẫn"
-
 #, c-format
 msgid "invalid --stat value: %s"
-msgstr "giá trị --stat không hợp lệ: “%s”"
+msgstr "giá trị --stat không hợp lệ: '%s'"
 
 #, c-format
 msgid "%s expects a numerical value"
-msgstr "tùy chọn “%s” cần một giá trị bằng số"
+msgstr "tùy chọn '%s' cần một giá trị số"
 
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
 "%s"
 msgstr ""
-"Gặp lỗi khi phân tích đối số tùy chọn --dirstat/-X:\n"
+"Gặp lỗi khi đọc đối số tùy chọn --dirstat/-X:\n"
 "%s"
 
 #, c-format
 msgid "unknown change class '%c' in --diff-filter=%s"
-msgstr "không hiểu lớp thay đổi “%c” trong --diff-filter=%s"
+msgstr "không hiểu change class '%c' trong --diff-filter=%s"
 
 #, c-format
 msgid "unknown value after ws-error-highlight=%.*s"
@@ -15140,7 +15730,7 @@ msgstr "không hiểu giá trị sau ws-error-highlight=%.*s"
 
 #, c-format
 msgid "unable to resolve '%s'"
-msgstr "không thể phân giải “%s”"
+msgstr "không thể phân giải '%s'"
 
 #, c-format
 msgid "%s expects <n>/<m> form"
@@ -15148,7 +15738,7 @@ msgstr "%s cần dạng <n>/<m>"
 
 #, c-format
 msgid "%s expects a character, got '%s'"
-msgstr "%s cần một ký tự, nhưng lại nhận được “%s”"
+msgstr "%s cần một ký tự, nhưng lại có '%s'"
 
 #, c-format
 msgid "bad --color-moved argument: %s"
@@ -15156,14 +15746,7 @@ msgstr "đối số --color-moved sai: %s"
 
 #, c-format
 msgid "invalid mode '%s' in --color-moved-ws"
-msgstr "chế độ “%s” không hợp lệ trong --color-moved-ws"
-
-msgid ""
-"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
-"\"histogram\""
-msgstr ""
-"tùy chọn  diff-algorithm chấp nhận \"myers\", \"minimal\", \"patience\" và "
-"\"histogram\""
+msgstr "chế độ '%s' không hợp lệ trong --color-moved-ws"
 
 #, c-format
 msgid "invalid argument to %s"
@@ -15171,11 +15754,11 @@ msgstr "tham số cho %s không hợp lệ"
 
 #, c-format
 msgid "invalid regex given to -I: '%s'"
-msgstr "đưa cho -I biểu thức chính quy không hợp lệ: “%s”"
+msgstr "đưa cho -I biểu thức chính quy không hợp lệ: '%s'"
 
 #, c-format
 msgid "failed to parse --submodule option parameter: '%s'"
-msgstr "gặp lỗi khi phân tích đối số tùy chọn --submodule: “%s”"
+msgstr "gặp lỗi khi đọc đối số tùy chọn --submodule: '%s'"
 
 #, c-format
 msgid "bad --word-diff argument: %s"
@@ -15185,7 +15768,7 @@ msgid "Diff output format options"
 msgstr "Các tùy chọn định dạng khi xuất các khác biệt"
 
 msgid "generate patch"
-msgstr "tạo miếng vá"
+msgstr "tạo bản vá"
 
 msgid "<n>"
 msgstr "<n>"
@@ -15197,10 +15780,10 @@ msgid "generate the diff in raw format"
 msgstr "tạo khác biệt ở định dạng thô"
 
 msgid "synonym for '-p --raw'"
-msgstr "đồng nghĩa với “-p --raw”"
+msgstr "đồng nghĩa với '-p --raw'"
 
 msgid "synonym for '-p --stat'"
-msgstr "đồng nghĩa với “-p --stat”"
+msgstr "đồng nghĩa với '-p --stat'"
 
 msgid "machine friendly --stat"
 msgstr "--stat thuận tiện cho máy đọc"
@@ -15208,8 +15791,8 @@ msgstr "--stat thuận tiện cho máy đọc"
 msgid "output only the last line of --stat"
 msgstr "chỉ xuất những dòng cuối của --stat"
 
-msgid "<param1,param2>..."
-msgstr "<tham_số_1,tham_số_2>…"
+msgid "<param1>,<param2>..."
+msgstr "<tham_số_1>,<tham_số_2>..."
 
 msgid ""
 "output the distribution of relative amount of changes for each sub-directory"
@@ -15218,8 +15801,8 @@ msgstr "đầu ra phân phối của số lượng thay đổi tương đối ch
 msgid "synonym for --dirstat=cumulative"
 msgstr "đồng nghĩa với --dirstat=cumulative"
 
-msgid "synonym for --dirstat=files,param1,param2..."
-msgstr "đồng nghĩa với --dirstat=files,param1,param2…"
+msgid "synonym for --dirstat=files,<param1>,<param2>..."
+msgstr "đồng nghĩa với --dirstat=files,<tham_số_1>,<tham_số_2>..."
 
 msgid "warn if changes introduce conflict markers or whitespace errors"
 msgstr ""
@@ -15266,8 +15849,8 @@ msgstr "xuất ra một khác biệt dạng nhị phân cái mà có thể đư
 
 msgid "show full pre- and post-image object names on the \"index\" lines"
 msgstr ""
-"hiển thị đầy đủ các tên đối tượng pre- và post-image trên các dòng \"mục lục"
-"\""
+"hiển thị đầy đủ các tên đối tượng pre- và post-image trên các dòng \"mục "
+"lục\""
 
 msgid "show colored diff"
 msgstr "hiển thị thay đổi được tô màu"
@@ -15279,7 +15862,7 @@ msgid ""
 "highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
 "diff"
 msgstr ""
-"tô sáng các lỗi về khoảng trắng trong các dòng “context”, “old” và “new” "
+"tô sáng các lỗi về khoảng trắng trong các dòng 'context', 'old' và 'new' "
 "trong khác biệt"
 
 msgid ""
@@ -15290,7 +15873,7 @@ msgstr ""
 "trong --raw hay --numstat"
 
 msgid "<prefix>"
-msgstr "<tiền_tố>"
+msgstr "<tiền tố>"
 
 msgid "show the given source prefix instead of \"a/\""
 msgstr "hiển thị tiền tố nguồn đã cho thay cho \"a/\""
@@ -15304,6 +15887,9 @@ msgstr "treo vào trước một tiền tố bổ sung cho mỗi dòng kết xu
 msgid "do not show any source or destination prefix"
 msgstr "đừng hiển thị bất kỳ tiền tố nguồn hay đích"
 
+msgid "use default prefixes a/ and b/"
+msgstr "dùng tiền tố mặc định a/ và b/"
+
 msgid "show context between diff hunks up to the specified number of lines"
 msgstr ""
 "hiển thị ngữ cảnh giữa các khúc khác biệt khi đạt đến số lượng dòng đã chỉ "
@@ -15313,13 +15899,13 @@ msgid "<char>"
 msgstr "<ký_tự>"
 
 msgid "specify the character to indicate a new line instead of '+'"
-msgstr "chỉ định một ký tự để biểu thị một dòng được thêm mới thay cho “+”"
+msgstr "chỉ định một ký tự để biểu thị một dòng được thêm mới thay cho '+'"
 
 msgid "specify the character to indicate an old line instead of '-'"
-msgstr "chỉ định một ký tự để biểu thị một dòng đã cũ thay cho “-”"
+msgstr "chỉ định một ký tự để biểu thị một dòng đã cũ thay cho '-'"
 
 msgid "specify the character to indicate a context instead of ' '"
-msgstr "chỉ định một ký tự để biểu thị một ngữ cảnh thay cho “”"
+msgstr "chỉ định một ký tự để biểu thị một ngữ cảnh thay cho ''"
 
 msgid "Diff rename options"
 msgstr "Tùy chọn khác biệt đổi tên"
@@ -15365,13 +15951,13 @@ msgid "produce the smallest possible diff"
 msgstr "sản sinh khác biệt ít nhất có thể"
 
 msgid "ignore whitespace when comparing lines"
-msgstr "lờ đi sự thay đổi do khoảng trắng gây ra khi so sánh các dòng"
+msgstr "bỏ qua sự thay đổi do khoảng trắng gây ra khi so sánh các dòng"
 
 msgid "ignore changes in amount of whitespace"
-msgstr "lờ đi sự thay đổi do số lượng khoảng trắng gây ra"
+msgstr "bỏ qua sự thay đổi do số lượng khoảng trắng gây ra"
 
 msgid "ignore changes in whitespace at EOL"
-msgstr "lờ đi sự thay đổi do khoảng trắng gây ra khi ở cuối dòng EOL"
+msgstr "bỏ qua sự thay đổi do khoảng trắng gây ra khi ở cuối dòng EOL"
 
 msgid "ignore carrier-return at the end of line"
 msgstr "bỏ qua ký tự về đầu dòng tại cuối dòng"
@@ -15394,12 +15980,6 @@ msgstr "tạo khác biệt sử dung thuật toán \"patience diff\""
 msgid "generate diff using the \"histogram diff\" algorithm"
 msgstr "tạo khác biệt sử dung thuật toán \"histogram diff\""
 
-msgid "<algorithm>"
-msgstr "<thuật toán>"
-
-msgid "choose a diff algorithm"
-msgstr "chọn một thuật toán khác biệt"
-
 msgid "<text>"
 msgstr "<văn bản>"
 
@@ -15446,7 +16026,7 @@ msgid "disable all output of the program"
 msgstr "tắt mọi kết xuất của chương trình"
 
 msgid "allow an external diff helper to be executed"
-msgstr "cho phép mộ bộ hỗ trợ xuất khác biệt ở bên ngoài được phép thực thi"
+msgstr "cho phép mộ helper xuất khác biệt ở bên ngoài được phép thực thi"
 
 msgid "run external text conversion filters when comparing binary files"
 msgstr ""
@@ -15466,10 +16046,10 @@ msgid "specify how differences in submodules are shown"
 msgstr "chi định khác biệt bao nhiêu trong các mô đun con được hiển thị"
 
 msgid "hide 'git add -N' entries from the index"
-msgstr "ẩn các mục “git add -N” từ bảng mục lục"
+msgstr "ẩn các mục 'git add -N' từ chỉ mục"
 
 msgid "treat 'git add -N' entries as real in the index"
-msgstr "coi các mục “git add -N” như là có thật trong bảng mục lục"
+msgstr "coi các mục 'git add -N' như là có thật trong chỉ mục"
 
 msgid "<string>"
 msgstr "<chuỗi>"
@@ -15492,19 +16072,19 @@ msgid "show all changes in the changeset with -S or -G"
 msgstr "hiển thị tất cả các thay đổi trong một bộ các thay đổi với -S hay -G"
 
 msgid "treat <string> in -S as extended POSIX regular expression"
-msgstr "coi <chuỗi> trong -S như là biểu thức chính qui POSIX có mở rộng"
+msgstr "coi <chuỗi> trong -S là biểu thức chính quy POSIX mở rộng"
 
 msgid "control the order in which files appear in the output"
-msgstr "điều khiển thứ tự xuát hiện các tập tin trong kết xuất"
+msgstr "điều khiển thứ tự xuất hiện các tập tin trong đầu ra"
 
 msgid "<path>"
 msgstr "<đường-dẫn>"
 
 msgid "show the change in the specified path first"
-msgstr "hiển thị các thay đổi trong đường dẫn đã cho đầu tiên"
+msgstr "hiển thị các thay đổi trong đường dẫn đã cho ở đầu"
 
 msgid "skip the output to the specified path"
-msgstr "bỏ qua đầu ra đến đường dẫn đã cho"
+msgstr "bỏ qua đầu ra với đường dẫn đã cho"
 
 msgid "<object-id>"
 msgstr "<mã-số-đối-tượng>"
@@ -15512,42 +16092,38 @@ msgstr "<mã-số-đối-tượng>"
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "object"
-msgstr ""
-"tìm các khác biệt cái mà thay đổi số lượng xảy ra của các phát sinh của đối "
-"tượng được chỉ ra"
+msgstr "tìm các diff có thay đổi số lượng xuất hiện của đối tượng"
 
 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
-msgstr "[(A|C|D|M|R|T|U|X|B)[*]]"
+msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
 
 msgid "select files by diff type"
 msgstr "chọn các tập tin theo kiểu khác biệt"
 
 msgid "<file>"
-msgstr "<tập_tin>"
+msgstr "<tập tin>"
 
 msgid "output to a specific file"
-msgstr "xuất ra một tập tin cụ thể"
+msgstr "xuất ra tập tin này"
 
 msgid "exhaustive rename detection was skipped due to too many files."
-msgstr "nhận thấy đổi tên toàn diện đã bị bỏ qua bởi có quá nhiều tập tin."
+msgstr "bỏ tìm tất cả các lần đổi tên vì có quá nhiều tập tin."
 
 msgid "only found copies from modified paths due to too many files."
 msgstr ""
-"chỉ tìm thấy các bản sao từ đường dẫn đã sửa đổi bởi vì có quá nhiều tập tin."
+"chỉ tìm các lần sao chép từ đường dẫn đã sửa đổi vì có quá nhiều tập tin."
 
 #, c-format
 msgid ""
 "you may want to set your %s variable to at least %d and retry the command."
-msgstr ""
-"bạn có lẽ muốn đặt biến %s của bạn thành ít nhất là %d và thử lại lệnh lần "
-"nữa."
+msgstr "bạn có lẽ muốn đặt biến %s của bạn thành ít nhất là %d và thử lại."
 
 #, c-format
 msgid "failed to read orderfile '%s'"
-msgstr "gặp lỗi khi đọc tập-tin-thứ-tự “%s”"
+msgstr "gặp lỗi khi đọc orderfile '%s'"
 
 msgid "Performing inexact rename detection"
-msgstr "Đang thực hiện dò tìm đổi tên không chính xác"
+msgstr "Đang thực hiện inexact rename detection (tìm sơ bộ các lần đổi tên)"
 
 #, c-format
 msgid "No such path '%s' in the diff"
@@ -15555,43 +16131,43 @@ msgstr "Không có đường dẫn %s trong diff"
 
 #, c-format
 msgid "pathspec '%s' did not match any file(s) known to git"
-msgstr "đặc tả đường dẫn “%s” không khớp với bất kỳ tập tin nào mà git biết"
+msgstr "đặc tả đường dẫn '%s' không khớp với bất kỳ tập tin nào mà git biết"
 
 #, c-format
 msgid "unrecognized pattern: '%s'"
-msgstr "mẫu không được thừa nhận: “%s”"
+msgstr "không hiểu mẫu: '%s'"
 
 #, c-format
 msgid "unrecognized negative pattern: '%s'"
-msgstr "mẫu âm không được thừa nhận: “%s”"
+msgstr "không hiểu mẫu loại trừ: '%s'"
 
 #, c-format
 msgid "your sparse-checkout file may have issues: pattern '%s' is repeated"
-msgstr "tập tin sparse-checkout của bạn có lẽ gặp lỗi: mẫu “%s” đã bị lặp lại"
+msgstr "tập tin sparse-checkout của bạn có lẽ gặp lỗi: mẫu '%s' đã bị lặp lại"
 
 msgid "disabling cone pattern matching"
-msgstr "vô hiệu khớp mẫu nón"
+msgstr "vô hiệu cone pattern matching (khớp mẫu nón)"
 
 #, c-format
 msgid "cannot use %s as an exclude file"
-msgstr "không thể dùng %s như là một tập tin loại trừ"
+msgstr "không thể dùng %s như là tập tin loại trừ"
 
 msgid "failed to get kernel name and information"
-msgstr "gặp lỗi khi lấy tên và thông tin của nhân"
+msgstr "gặp lỗi khi lấy tên và thông tin của kernel"
 
 msgid "untracked cache is disabled on this system or location"
-msgstr "bộ nhớ tạm không theo vết bị tắt trên hệ thống hay vị trí này"
+msgstr "bộ nhớ tạm không theo vết bị vô hiệu trên hệ thống hay vị trí này"
 
 msgid ""
 "No directory name could be guessed.\n"
 "Please specify a directory on the command line"
 msgstr ""
 "Không đoán được thư mục tên là gì.\n"
-"Vui lòng chỉ định tên một thư mục trên dòng lệnh"
+"Vui lòng chỉ định tên thư mục trên dòng lệnh"
 
 #, c-format
 msgid "index file corrupt in repo %s"
-msgstr "tập tin ghi bảng mục lục bị hỏng trong kho %s"
+msgstr "tập tin ghi chỉ mục bị hỏng trong kho %s"
 
 #, c-format
 msgid "could not create directories for %s"
@@ -15599,18 +16175,26 @@ msgstr "không thể tạo thư mục cho %s"
 
 #, c-format
 msgid "could not migrate git directory from '%s' to '%s'"
-msgstr "không thể di dời thư mục git từ “%s” sang “%s”"
+msgstr "không thể di dời thư mục git từ '%s' sang '%s'"
 
 #, c-format
 msgid "hint: Waiting for your editor to close the file...%c"
-msgstr "gợi ý: Chờ trình biên soạn của bạn đóng tập tin…%c"
+msgstr "gợi ý: Chờ trình biên soạn của bạn đóng tập tin...%c"
+
+#, c-format
+msgid "could not write to '%s'"
+msgstr "không thể ghi vào '%s'"
+
+#, c-format
+msgid "could not edit '%s'"
+msgstr "không thể sửa '%s'"
 
 msgid "Filtering content"
 msgstr "Nội dung lọc"
 
 #, c-format
 msgid "could not stat file '%s'"
-msgstr "không thể lấy thống kê tập tin “%s”"
+msgstr "không thể lấy thống kê tập tin '%s'"
 
 #, c-format
 msgid "bad git namespace path \"%s\""
@@ -15624,17 +16208,20 @@ msgid "git fetch-pack: expected shallow list"
 msgstr "git fetch-pack: cần danh sách shallow"
 
 msgid "git fetch-pack: expected a flush packet after shallow list"
-msgstr "git fetch-pack: cần một gói đẩy sau danh sách shallow"
+msgstr "git fetch-pack: cần một gói flush sau danh sách shallow"
 
 msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
 msgstr "git fetch-pack: cần ACK/NAK, nhưng lại nhận được một gói flush"
 
 #, c-format
 msgid "git fetch-pack: expected ACK/NAK, got '%s'"
-msgstr "git fetch-pack: cần ACK/NAK, nhưng lại nhận được “%s”"
+msgstr "git fetch-pack: cần ACK/NAK, nhưng lại nhận được '%s'"
 
 msgid "unable to write to remote"
-msgstr "không thể ghi lên máy phục vụ"
+msgstr "không thể ghi lên máy chủ"
+
+msgid "Server supports filter"
+msgstr "Máy chủ hỗ trợ bộ lọc"
 
 #, c-format
 msgid "invalid shallow line: %s"
@@ -15658,7 +16245,7 @@ msgstr "không tìm shallow nào: %s"
 
 #, c-format
 msgid "expected shallow/unshallow, got %s"
-msgstr "cần shallow/unshallow, nhưng lại nhận được %s"
+msgstr "cần shallow/unshallow, nhưng lại  %s"
 
 #, c-format
 msgid "got %s %d %s"
@@ -15741,28 +16328,25 @@ msgstr "các thuật toán không khớp nhau: máy khách %s; máy chủ %s"
 
 #, c-format
 msgid "the server does not support algorithm '%s'"
-msgstr "máy chủ không hỗ trợ thuật toán “%s”"
+msgstr "máy chủ không hỗ trợ thuật toán '%s'"
 
 msgid "Server does not support shallow requests"
 msgstr "Máy chủ không hỗ trợ yêu cầu shallow"
 
-msgid "Server supports filter"
-msgstr "Máy chủ hỗ trợ bộ lọc"
-
 msgid "unable to write request to remote"
-msgstr "không thể ghi các yêu cầu lên máy phục vụ"
+msgstr "không thể ghi các yêu cầu lên máy chủ"
 
 #, c-format
 msgid "expected '%s', received '%s'"
-msgstr "cần “%s”, nhưng lại nhận “%s”"
+msgstr "cần '%s', nhưng lại nhận '%s'"
 
 #, c-format
 msgid "expected '%s'"
-msgstr "cần “%s”"
+msgstr "cần '%s'"
 
 #, c-format
 msgid "unexpected acknowledgment line: '%s'"
-msgstr "gặp dòng không được thừa nhận: “%s”"
+msgstr "gặp dòng không được thừa nhận: '%s'"
 
 #, c-format
 msgid "error processing acks: %d"
@@ -15773,14 +16357,14 @@ msgstr "gặp lỗi khi xử lý tín hiệu trả lời: %d"
 #.
 #, c-format
 msgid "expected packfile to be sent after '%s'"
-msgstr "cần tập tin gói để gửi sau “%s”"
+msgstr "cần tập tin gói để gửi sau '%s'"
 
 #. TRANSLATORS: The parameter will be 'ready', a protocol
 #. keyword.
 #.
 #, c-format
 msgid "expected no other sections to be sent after no '%s'"
-msgstr "không cần thêm phần nào để gửi sau không “%s”"
+msgstr "không có phần nào để gửi khi không có '%s'"
 
 #, c-format
 msgid "error processing shallow info: %d"
@@ -15788,11 +16372,11 @@ msgstr "lỗi xử lý thông tin shallow: %d"
 
 #, c-format
 msgid "expected wanted-ref, got '%s'"
-msgstr "cần wanted-ref, nhưng lại nhận được “%s”"
+msgstr "cần wanted-ref, nhưng lại nhận được '%s'"
 
 #, c-format
 msgid "unexpected wanted-ref: '%s'"
-msgstr "wanted-ref không được mong đợi: “%s”"
+msgstr "wanted-ref không được mong đợi: '%s'"
 
 #, c-format
 msgid "error processing wanted refs: %d"
@@ -15805,7 +16389,7 @@ msgid "no matching remote head"
 msgstr "không khớp phần đầu máy chủ"
 
 msgid "unexpected 'ready' from remote"
-msgstr "gặp “ready” đột xuất từ máy chủ"
+msgstr "gặp 'ready' đột xuất từ máy chủ"
 
 #, c-format
 msgid "no such remote ref %s"
@@ -15813,8 +16397,7 @@ msgstr "không có máy chủ tham chiếu nào như %s"
 
 #, c-format
 msgid "Server does not allow request for unadvertised object %s"
-msgstr ""
-"Máy phục vụ không cho phép yêu cầu cho đối tượng không được báo trước %s"
+msgstr "máy chủ không cho phép yêu cầu cho đối tượng không được báo trước %s"
 
 #, c-format
 msgid "fsmonitor_ipc__send_query: invalid path '%s'"
@@ -15833,7 +16416,7 @@ msgstr "không thể gửi lệnh '%s' đến fsmonitor--daemon"
 
 #, c-format
 msgid "bare repository '%s' is incompatible with fsmonitor"
-msgstr "kho thuần '%s' là không tương thích với fsmonitor"
+msgstr "kho bare '%s' là không tương thích với fsmonitor"
 
 #, c-format
 msgid "repository '%s' is incompatible with fsmonitor due to errors"
@@ -15849,8 +16432,11 @@ msgstr "kho ảo '%s' là không tương thích với fsmonitor"
 
 #, c-format
 msgid ""
-"repository '%s' is incompatible with fsmonitor due to lack of Unix sockets"
-msgstr "kho '%s' là không tương thích với fsmonitor bởi vì thiếu Unix sockets"
+"socket directory '%s' is incompatible with fsmonitor due to lack of Unix "
+"sockets support"
+msgstr ""
+"thư mục socket '%s' không tương thích với fsmonitor bởi vì thiếu hỗ trợ Unix "
+"socket"
 
 msgid ""
 "git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]\n"
@@ -15858,18 +16444,16 @@ msgid ""
 "           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--"
 "bare]\n"
 "           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n"
-"           [--super-prefix=<path>] [--config-env=<name>=<envvar>]\n"
-"           <command> [<args>]"
+"           [--config-env=<name>=<envvar>] <command> [<args>]"
 msgstr ""
-"git [--version] [-h | --help] [-C </đường/dẫn/>] [-c <tên>=<giá trị>]\n"
+"git [-v | --version] [-h | --help] [-C </đường/dẫn/>] [-c <tên>=<giá trị>]\n"
 "           [--exec-path[=</đường/dẫn/>]] [--html-path] [--man-path] [--info-"
 "path]\n"
 "           [-p | --paginate | -P --no-pager] [--no-replace-objects] [--"
 "bare]\n"
 "           [--git-dir=</đường/dẫn/>] [--work-tree=</đường/dẫn/>] [--"
 "namespace=<tên>]\n"
-"           [--super-prefix=</đường/dẫn/>] [--config-env=<tên>=<envvar>]\n"
-"           <lệnh> [<các tham số>]"
+"           [--config-env=<tên>=<envvar>] <lệnh> [<các tham số>]"
 
 msgid ""
 "'git help -a' and 'git help -g' list available subcommands and some\n"
@@ -15877,14 +16461,14 @@ msgid ""
 "to read about a specific subcommand or concept.\n"
 "See 'git help git' for an overview of the system."
 msgstr ""
-"“git help -a” và “git help -g” liệt kê các câu lệnh con sẵn có và một số\n"
-"hướng dẫn về khái niệm. Xem “git help <lệnh>” hay “git help <khái-niệm>”\n"
+"'git help -a' và 'git help -g' liệt kê các câu lệnh con sẵn có và một số\n"
+"hướng dẫn về khái niệm. Xem 'git help <lệnh>' hay 'git help <khái-niệm>'\n"
 "để xem các đặc tả cho lệnh hay khái niệm cụ thể.\n"
-"Xem “git help git” để biết tổng quan của hệ thống."
+"Xem 'git help git' để biết tổng quan của hệ thống."
 
 #, c-format
 msgid "unsupported command listing type '%s'"
-msgstr "không hỗ trợ liệt kê lệnh kiểu “%s”"
+msgstr "không hỗ trợ liệt kê lệnh kiểu '%s'"
 
 #, c-format
 msgid "no directory given for '%s' option\n"
@@ -15894,10 +16478,6 @@ msgstr "không đưa ra thư mục cho tùy chọn '%s'\n"
 msgid "no namespace given for --namespace\n"
 msgstr "chưa đưa ra không gian làm việc cho --namespace\n"
 
-#, c-format
-msgid "no prefix given for --super-prefix\n"
-msgstr "chưa đưa ra tiền tố cho --super-prefix\n"
-
 #, c-format
 msgid "-c expects a configuration string\n"
 msgstr "-c cần một chuỗi cấu hình\n"
@@ -15906,21 +16486,25 @@ msgstr "-c cần một chuỗi cấu hình\n"
 msgid "no config key given for --config-env\n"
 msgstr "không đưa ra khóa cấu hình cho --config-env\n"
 
+#, c-format
+msgid "no attribute source given for --attr-source\n"
+msgstr "không đưa ra nguồn thuộc tính cho --attr-source\n"
+
 #, c-format
 msgid "unknown option: %s\n"
 msgstr "không hiểu tùy chọn: %s\n"
 
 #, c-format
 msgid "while expanding alias '%s': '%s'"
-msgstr "trong khi triển khai bí danh “%s”: “%s”"
+msgstr "trong khi triển khai bí danh '%s': '%s'"
 
 #, c-format
 msgid ""
 "alias '%s' changes environment variables.\n"
 "You can use '!git' in the alias to do this"
 msgstr ""
-"bí danh “%s” thay đổi biến môi trường.\n"
-"Bạn có thể sử dụng “!git” trong đặt bí danh để làm việc này"
+"bí danh '%s' thay đổi biến môi trường.\n"
+"Bạn có thể sử dụng '!git' trong đặt bí danh để làm việc này"
 
 #, c-format
 msgid "empty alias for %s"
@@ -15931,22 +16515,22 @@ msgid "recursive alias: %s"
 msgstr "đệ quy các bí danh: %s"
 
 msgid "write failure on standard output"
-msgstr "lỗi ghi nghiêm trong trên đầu ra tiêu chuẩn"
+msgstr "lỗi khi ghi ra stdout"
 
 msgid "unknown write failure on standard output"
-msgstr "lỗi nghiêm trọng chưa biết khi ghi ra đầu ra tiêu chuẩn"
+msgstr "lỗi không rõ khi ghi ra stdout"
 
 msgid "close failed on standard output"
-msgstr "gặp lỗi khi đóng đầu ra tiêu chuẩn"
+msgstr "lỗi khi đóng stdout"
 
 #, c-format
 msgid "alias loop detected: expansion of '%s' does not terminate:%s"
 msgstr ""
-"dò tìm thấy các bí danh quẩn tròn: biểu thức của “%s” không có điểm kết:%s"
+"dò tìm thấy các bí danh quẩn tròn: biểu thức của '%s' không có điểm kết:%s"
 
 #, c-format
 msgid "cannot handle %s as a builtin"
-msgstr "không thể xử lý %s như là một phần bổ sung"
+msgstr "không thể xử lý %s như là builtin"
 
 #, c-format
 msgid ""
@@ -15958,18 +16542,18 @@ msgstr ""
 
 #, c-format
 msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
-msgstr "gặp lỗi khi khai triển bí danh “%s”; “%s” không phải là lệnh git\n"
+msgstr "gặp lỗi khi khai triển bí danh '%s'; '%s' không phải là lệnh git\n"
 
 #, c-format
 msgid "failed to run command '%s': %s\n"
-msgstr "gặp lỗi khi chạy lệnh “%s”: %s\n"
+msgstr "gặp lỗi khi chạy lệnh '%s': %s\n"
 
 msgid "could not create temporary file"
 msgstr "không thể tạo tập tin tạm thời"
 
 #, c-format
 msgid "failed writing detached signature to '%s'"
-msgstr "gặp lỗi khi ghi chữ ký đính kèm vào “%s”"
+msgstr "gặp lỗi khi ghi chữ ký đính kèm vào '%s'"
 
 msgid ""
 "gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
@@ -15991,11 +16575,11 @@ msgstr "tập tin thu hồi chữ ký ssh đã được cấu hình nhưng khôn
 
 #, c-format
 msgid "bad/incompatible signature '%s'"
-msgstr "chữ sai / không tương thích “%s”"
+msgstr "chữ sai / không tương thích '%s'"
 
 #, c-format
 msgid "failed to get the ssh fingerprint for key '%s'"
-msgstr "gặp lỗi khi lấy dấu vân tay ssh cho khóa “%s”"
+msgstr "gặp lỗi khi lấy dấu vân tay ssh cho khóa '%s'"
 
 msgid ""
 "either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
@@ -16011,19 +16595,24 @@ msgstr ""
 msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
 msgstr "gpg.ssh.defaultKeyCommand gặp lỗi: %s %s"
 
-msgid "gpg failed to sign the data"
-msgstr "gpg gặp lỗi khi ký dữ liệu"
+#, c-format
+msgid ""
+"gpg failed to sign the data:\n"
+"%s"
+msgstr ""
+"gpg gặp lỗi khi ký dữ liệu:\n"
+"%s"
 
 msgid "user.signingKey needs to be set for ssh signing"
 msgstr "user.signingKey cần được đặt cho ký ssh"
 
 #, c-format
 msgid "failed writing ssh signing key to '%s'"
-msgstr "gặp lỗi khi ghi chìa khóa ký ssh vào “%s”"
+msgstr "gặp lỗi khi ghi chìa khóa ký ssh vào '%s'"
 
 #, c-format
 msgid "failed writing ssh signing key buffer to '%s'"
-msgstr "gặp lỗi khi ghi bộ đệm chìa khóa ký ssh vào “%s”"
+msgstr "gặp lỗi khi ghi bộ đệm chìa khóa ký ssh vào '%s'"
 
 msgid ""
 "ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
@@ -16034,11 +16623,11 @@ msgstr ""
 
 #, c-format
 msgid "failed reading ssh signing data buffer from '%s'"
-msgstr "gặp lỗi khi đọc bộ đệm dữ liệu chữ ký ssh từ “%s”"
+msgstr "gặp lỗi khi đọc bộ đệm dữ liệu chữ ký ssh từ '%s'"
 
 #, c-format
 msgid "ignored invalid color '%.*s' in log.graphColors"
-msgstr "bỏ qua màu không hợp lệ “%.*s” trong log.graphColors"
+msgstr "bỏ qua màu không hợp lệ '%.*s' trong log.graphColors"
 
 msgid ""
 "given pattern contains NULL byte (via -f <file>). This is only supported "
@@ -16049,11 +16638,11 @@ msgstr ""
 
 #, c-format
 msgid "'%s': unable to read %s"
-msgstr "“%s”: không thể đọc %s"
+msgstr "'%s': không thể đọc %s"
 
 #, c-format
 msgid "'%s': short read"
-msgstr "“%s”: đọc ngắn"
+msgstr "'%s': đọc ngắn"
 
 msgid "start a working area (see also: git help tutorial)"
 msgstr "bắt đầu một vùng làm việc (xem thêm: git help tutorial)"
@@ -16094,9 +16683,15 @@ msgstr "Lệnh/Đồng bộ kho ở mức thấp"
 msgid "Low-level Commands / Internal Helpers"
 msgstr "Lệnh/Hỗ trợ nội tại ở mức thấp"
 
+msgid "User-facing repository, command and file interfaces"
+msgstr "Các giao diện kho, lệnh và tập tin hướng người dùng"
+
+msgid "Developer-facing file formats, protocols and other interfaces"
+msgstr "Các giao diện tập tin, giao thức và khác cho lập trình viên"
+
 #, c-format
 msgid "available git commands in '%s'"
-msgstr "các lệnh git sẵn có trong thư mục “%s”:"
+msgstr "các lệnh git sẵn có trong thư mục '%s':"
 
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "các lệnh git sẵn có từ một nơi khác trong $PATH của bạn"
@@ -16107,6 +16702,12 @@ msgstr "Có các lệnh Git chung được sử dụng trong các tình huống
 msgid "The Git concept guides are:"
 msgstr "Các chỉ dẫn khái niệm về Git là:"
 
+msgid "User-facing repository, command and file interfaces:"
+msgstr "Các giao diện kho, lệnh và tập tin hướng người dùng"
+
+msgid "File formats, protocols and other developer interfaces:"
+msgstr "Các giao diện tập tin, giao thức và khác cho lập trình viên"
+
 msgid "External commands"
 msgstr "Các lệnh bên ngoài"
 
@@ -16114,38 +16715,38 @@ msgid "Command aliases"
 msgstr "Các bí danh lệnh"
 
 msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr "Xem “git help <lệnh>” để đọc các đặc tả của lệnh con"
+msgstr "Xem 'git help <lệnh>' để đọc các đặc tả của lệnh con"
 
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
 "able to execute it. Maybe git-%s is broken?"
 msgstr ""
-"“%s” trông như là một lệnh git, nhưng chúng tôi không\n"
+"'%s' trông như là một lệnh git, nhưng chúng tôi không\n"
 "thể thực thi nó. Có lẽ là lệnh git-%s đã bị hỏng?"
 
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
-msgstr "git: “%s” không phải là một lệnh của git. Xem “git --help”."
+msgstr "git: '%s' không phải là một lệnh của git. Xem 'git --help'."
 
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "Ối chà. Hệ thống của bạn báo rằng chẳng có lệnh Git nào cả."
 
 #, c-format
 msgid "WARNING: You called a Git command named '%s', which does not exist."
-msgstr "CẢNH BÁO: Bạn đã gọi lệnh Git có tên “%s”, mà nó lại không có sẵn."
+msgstr "CẢNH BÁO: Bạn đã gọi lệnh Git có tên '%s', mà nó lại không có sẵn."
 
 #, c-format
 msgid "Continuing under the assumption that you meant '%s'."
-msgstr "Tiếp tục và coi rằng ý bạn là “%s”."
+msgstr "Tiếp tục và coi rằng ý bạn là '%s'."
 
 #, c-format
 msgid "Run '%s' instead [y/N]? "
-msgstr "Chạy “%s” để thay thế? (y/N)? "
+msgstr "Chạy '%s' để thay thế? (y/N)? "
 
 #, c-format
 msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
-msgstr "Tiếp tục trong %0.1f giây,và coi rằng ý bạn là “%s”."
+msgstr "Tiếp tục trong %0.1f giây,và coi rằng ý bạn là '%s'."
 
 msgid ""
 "\n"
@@ -16157,8 +16758,8 @@ msgstr[0] ""
 "\n"
 "Những lệnh giống nhất là"
 
-msgid "git version [<options>]"
-msgstr "git version [<các tùy chọn>]"
+msgid "git version [--build-options]"
+msgstr "git version [--build-options]"
 
 #, c-format
 msgid "%s: %s - %s"
@@ -16179,16 +16780,12 @@ msgid ""
 "The '%s' hook was ignored because it's not set as executable.\n"
 "You can disable this warning with `git config advice.ignoredHook false`."
 msgstr ""
-"Móc “%s” bị bỏ qua bởi vì nó không thể đặt là thực thi được.\n"
-"Bạn có thể tắt cảnh báo này bằng “git config advice.ignoredHook false“."
-
-#, c-format
-msgid "Couldn't start hook '%s'\n"
-msgstr "Không thể khởi chạy móc “%s”\n"
+"Móc '%s' bị bỏ qua bởi vì nó không thể đặt là thực thi được.\n"
+"Bạn có thể tắt cảnh báo này bằng 'git config advice.ignoredHook false'."
 
 #, c-format
 msgid "argument to --packfile must be a valid hash (got '%s')"
-msgstr "tham số cho --packfile phải là một giá trị băm hợp lệ (nhận được “%s”)"
+msgstr "tham số cho --packfile phải là một giá trị băm hợp lệ (có '%s')"
 
 msgid "not a git repository"
 msgstr "không phải là kho git"
@@ -16209,18 +16806,18 @@ msgstr "CURLSSLOPT_NO_REVOKE không được hỗ trợ với cURL < 7.44.0"
 #, c-format
 msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
 msgstr ""
-"Không hỗ trợ ứng dụng SSL chạy phía sau “%s”. Hỗ trợ ứng dụng SSL chạy phía "
+"Không hỗ trợ ứng dụng SSL chạy phía sau '%s'. Hỗ trợ ứng dụng SSL chạy phía "
 "sau:"
 
 #, c-format
 msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
 msgstr ""
-"Không thể đặt ứng dụng chạy SSL phía sau “%s”: cURL được biên dịch không có "
+"Không thể đặt ứng dụng chạy SSL phía sau '%s': cURL được biên dịch không có "
 "sự hỗ trợ ứng dụng chạy phía sau SSL"
 
 #, c-format
 msgid "Could not set SSL backend to '%s': already set"
-msgstr "Không thể đặt ứng dụng chạy sau SSL cho “%s”: đã đặt rồi"
+msgstr "Không thể đặt ứng dụng chạy sau SSL cho '%s': đã đặt rồi"
 
 #, c-format
 msgid ""
@@ -16268,14 +16865,14 @@ msgstr "không đưa ra địa chỉ thư điện tử và auto-detection bị t
 
 #, c-format
 msgid "unable to auto-detect email address (got '%s')"
-msgstr "không thể tự dò tìm địa chỉ thư điện tử (nhận “%s”)"
+msgstr "không thể tự dò tìm địa chỉ thư điện tử (nhận '%s')"
 
 msgid "no name was given and auto-detection is disabled"
 msgstr "chưa chỉ ra tên và tự-động-dò-tìm bị tắt"
 
 #, c-format
 msgid "unable to auto-detect name (got '%s')"
-msgstr "không thể dò-tìm-tự động tên (đã nhận “%s”)"
+msgstr "không thể dò-tìm-tự động tên (đã nhận '%s')"
 
 #, c-format
 msgid "empty ident name (for <%s>) not allowed"
@@ -16286,22 +16883,22 @@ msgid "name consists only of disallowed characters: %s"
 msgstr "tên chỉ được phép bao gồm các ký tự sau: %s"
 
 msgid "expected 'tree:<depth>'"
-msgstr "cần “tree:<depth>”"
+msgstr "cần 'tree:<depth>'"
 
 msgid "sparse:path filters support has been dropped"
-msgstr "việc hỗ trợ bộ lọc sparse:đường/dẫn đã bị bỏ"
+msgstr "hỗ trợ bộ lọc sparse:đường/dẫn đã không còn"
 
 #, c-format
 msgid "'%s' for 'object:type=<type>' is not a valid object type"
-msgstr "“%s” dành cho “object:type=<type>” không phải là kiểu đối tượng hợp lệ"
+msgstr "'%s' dành cho 'object:type=<type>' không phải là kiểu đối tượng hợp lệ"
 
 #, c-format
 msgid "invalid filter-spec '%s'"
-msgstr "đặc tả bộ lọc không hợp lệ “%s”"
+msgstr "đặc tả bộ lọc không hợp lệ '%s'"
 
 #, c-format
 msgid "must escape char in sub-filter-spec: '%c'"
-msgstr "phải thoát char trong sub-filter-spec: “%c”"
+msgstr "phải thoát char trong sub-filter-spec: '%c'"
 
 msgid "expected something after combine:"
 msgstr "mong đợi một cái gì đó sau khi kết hợp:"
@@ -16320,23 +16917,23 @@ msgstr "lọc đối tượng"
 
 #, c-format
 msgid "unable to access sparse blob in '%s'"
-msgstr "không thể truy cập các blob rải rác trong “%s”"
+msgstr "không thể truy cập các blob rải rác trong '%s'"
 
 #, c-format
 msgid "unable to parse sparse filter data in %s"
-msgstr "không thể phân tích dữ liệu bộ lọc rải rác trong %s"
+msgstr "không thể đọc dữ liệu bộ lọc rải rác trong %s"
 
 #, c-format
 msgid "entry '%s' in tree %s has tree mode, but is not a tree"
-msgstr "mục “%s” trong cây %s có nút cây, nhưng không phải là một cây"
+msgstr "mục '%s' trong cây %s có nút cây, nhưng không phải là một cây"
 
 #, c-format
 msgid "entry '%s' in tree %s has blob mode, but is not a blob"
-msgstr "mục “%s” trong cây %s có nút blob, nhưng không phải là một blob"
+msgstr "mục '%s' trong cây %s có nút blob, nhưng không phải là một blob"
 
 #, c-format
 msgid "unable to load root tree for commit %s"
-msgstr "không thể tải cây gốc cho lần chuyển giao “%s”"
+msgstr "không thể tải cây gốc cho lần chuyển giao '%s'"
 
 #, c-format
 msgid ""
@@ -16348,21 +16945,29 @@ msgid ""
 "may have crashed in this repository earlier:\n"
 "remove the file manually to continue."
 msgstr ""
-"Không thể tạo “%s.lock”: %s.\n"
+"Không thể tạo '%s.lock': %s.\n"
 "\n"
 "Tiến trình git khác có lẽ đang chạy ở kho này, ví dụ\n"
-"một trình soạn thảo được mở bởi “git commit”. Vui lòng chắc chắn\n"
-"rằng mọi tiến trình đã chấm dứt và sau đó thử lại. Nếu vẫn lỗi,\n"
-"một tiến trình git có lẽ đã đổ vỡ khi thực hiện ở kho này trước đó:\n"
+"một trình soạn thảo được mở bởi 'git commit'. Vui lòng chắc chắn\n"
+"rằng mọi tiến trình đã kết thúc và sau đó thử lại. Nếu vẫn lỗi,\n"
+"một tiến trình git có lẽ đã crash khi thực hiện ở kho này trước đó:\n"
 "gõ bỏ tập tin một cách thủ công để tiếp tục."
 
 #, c-format
 msgid "Unable to create '%s.lock': %s"
-msgstr "Không thể tạo “%s.lock”: %s"
+msgstr "Không thể tạo '%s.lock': %s"
+
+#, c-format
+msgid "could not write loose object index %s"
+msgstr "không thể ghi tập tin đối tượng loose %s"
+
+#, c-format
+msgid "failed to write loose object index %s\n"
+msgstr "ghi chỉ mục đối tượng loose %s thất bại\n"
 
 #, c-format
 msgid "unexpected line: '%s'"
-msgstr "dòng không cần: “%s”"
+msgstr "dòng bất thường: '%s'"
 
 msgid "expected flush after ls-refs arguments"
 msgstr "cần đẩy dữ liệu lên đĩa sau tham số ls-refs (liệt kê tham chiếu)"
@@ -16371,73 +16976,57 @@ msgid "quoted CRLF detected"
 msgstr "phát hiện CRLF được trích dẫn"
 
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-"  %s"
-msgstr ""
-"Các thay đổi nội bộ của bạn với các tập tin sau đây sẽ bị ghi đè bởi lệnh "
-"hòa trộn:\n"
-"  %s"
+msgid "unable to format message: %s"
+msgstr "không thể định dạng thông điệp: %s"
 
 #, c-format
 msgid "Failed to merge submodule %s (not checked out)"
-msgstr "Gặp lỗi khi hòa trộn mô-đun-con “%s” (không lấy ra được)"
+msgstr "Gặp lỗi khi hòa trộn mô-đun-con %s (không checkout được)"
+
+#, c-format
+msgid "Failed to merge submodule %s (no merge base)"
+msgstr "Gặp lỗi khi hòa trộn mô-đun-con %s (không có gốc hoà trộn)"
 
 #, c-format
 msgid "Failed to merge submodule %s (commits not present)"
-msgstr "Gặp lỗi khi hòa trộn mô-đun-con “%s” (lần chuyển giao không hiện diện)"
+msgstr "Gặp lỗi khi hòa trộn mô-đun-con %s (lần chuyển giao không hiện diện)"
 
 #, c-format
-msgid "Failed to merge submodule %s (commits don't follow merge-base)"
+msgid "Failed to merge submodule %s (repository corrupt)"
+msgstr "Gặp lỗi khi hòa trộn mô-đun-con %s (kho chứa hỏng)"
+
+#, c-format
+msgid "Failed to merge submodule %s (commits don't follow merge-base)"
 msgstr ""
-"Gặp lỗi khi hòa trộn mô-đun-con “%s” (lần chuyển giao không theo sau nền-hòa-"
+"Gặp lỗi khi hòa trộn mô-đun-con %s (lần chuyển giao không theo sau gốc-hòa-"
 "trộn)"
 
 #, c-format
 msgid "Note: Fast-forwarding submodule %s to %s"
-msgstr "Chú ý: Chuyển-tiếp-nhanh mô-đun-con “%s” sang “%s”"
+msgstr "Chú ý: Chuyển-tiếp-nhanh mô-đun-con %s sang %s"
 
 #, c-format
 msgid "Failed to merge submodule %s"
-msgstr "Gặp lỗi khi hòa trộn mô-đun-con “%s”"
-
-#, c-format
-msgid ""
-"Failed to merge submodule %s, but a possible merge resolution exists:\n"
-"%s\n"
-msgstr ""
-"Gặp lỗi khi hòa trộn mô-đun-con “%s”, nhưng có cách giải quyết:\n"
-"%s\n"
+msgstr "Gặp lỗi khi hòa trộn mô-đun-con %s"
 
 #, c-format
 msgid ""
-"If this is correct simply add it to the index for example\n"
-"by using:\n"
-"\n"
-"  git update-index --cacheinfo 160000 %s \"%s\"\n"
-"\n"
-"which will accept this suggestion.\n"
-msgstr ""
-"Nếu đây là đúng đơn giản thêm nó vào mục lục ví dụ\n"
-"bằng cách dùng:\n"
-"\n"
-"  git update-index --cacheinfo 160000 %s \"%s\"\n"
-"\n"
-"cái mà sẽ chấp nhận gợi ý này.\n"
+"Failed to merge submodule %s, but a possible merge resolution exists: %s"
+msgstr "Gặp lỗi khi hòa trộn mô-đun-con %s, nhưng có cách giải quyết: %s"
 
 #, c-format
 msgid ""
 "Failed to merge submodule %s, but multiple possible merges exist:\n"
 "%s"
 msgstr ""
-"Gặp lỗi khi hòa trộn mô-đun-con “%s”, nhưng có nhiều cách giải quyết:\n"
+"Gặp lỗi khi hòa trộn mô-đun-con %s, nhưng có nhiều cách giải quyết:\n"
 "%s"
 
-msgid "Failed to execute internal merge"
+msgid "failed to execute internal merge"
 msgstr "Gặp lỗi khi thực hiện trộn nội bộ"
 
 #, c-format
-msgid "Unable to add %s to database"
+msgid "unable to add %s to database"
 msgstr "Không thể thêm %s vào cơ sở dữ liệu"
 
 #, c-format
@@ -16449,16 +17038,16 @@ msgid ""
 "CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
 "implicit directory rename(s) putting the following path(s) there: %s."
 msgstr ""
-"XUNG ĐỘT: (ngầm đổi tên thư mục): Tập tin/thư mục đã sẵn có tại %s theo cách "
-"của các đổi tên thư mục ngầm đặt (các) đường dẫn sau ở đây: %s."
+"XUNG ĐỘT: (ngầm đổi tên thư mục): Tập tin/thư mục đã sẵn có tại %s do việc "
+"đổi tên thư mục sẽ đặt các đường dẫn sau ở đó: %s."
 
 #, c-format
 msgid ""
 "CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
 "implicit directory renames tried to put these paths there: %s"
 msgstr ""
-"XUNG ĐỘT: (ngầm đổi tên thư mục): Không thể ánh xạ một đường dẫn thành %s; "
-"các đổi tên thư mục ngầm cố đặt các đường dẫn ở đây: %s"
+"XUNG ĐỘT: (ngầm đổi tên thư mục): Không thể ánh xạ hơn một đường dẫn thành "
+"%s; việc đổi tên thư mục sẽ đặt các đường dẫn sau ở đó: %s"
 
 #, c-format
 msgid ""
@@ -16466,17 +17055,17 @@ msgid ""
 "renamed to multiple other directories, with no destination getting a "
 "majority of the files."
 msgstr ""
-"XUNG ĐỘT: (thư mục đổi tên chia tách): Không rõ ràng nơi để đổi tên %s "
-"thành; nó đã bị đổi tên thành nhiều thư mục khác, với không đích đến nhận "
-"một phần nhiều của các tập tin."
+"XUNG ĐỘT: (phân hoá đổi tên thư mục): Không rõ đổi tên %s về đâu; nó đã bị "
+"đổi tên thành nhiều thư mục khác, mà không bên nào nhận phần lớn các tập tin "
+"gốc."
 
 #, c-format
 msgid ""
 "WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
 "renamed."
 msgstr ""
-"CẢNH BÁO: tránh áp dụng %s -> %s đổi thên thành %s, bởi vì bản thân %s cũng "
-"bị đổi tên."
+"CẢNH BÁO: Tránh áp dụng đổi tên %s -> %s cho %s, bởi vì bản thân %s đã bị "
+"đổi tên."
 
 #, c-format
 msgid ""
@@ -16484,7 +17073,7 @@ msgid ""
 "moving it to %s."
 msgstr ""
 "Đường dẫn đã được cập nhật: %s được thêm vào trong %s bên trong một thư mục "
-"đã được đổi tên trong %s; di chuyển nó đến %s."
+"đã được đổi tên trong %s; sẽ di chuyển nó đến %s."
 
 #, c-format
 msgid ""
@@ -16492,14 +17081,14 @@ msgid ""
 "%s; moving it to %s."
 msgstr ""
 "Đường dẫn đã được cập nhật: %s được đổi tên thành %s trong %s, bên trong một "
-"thư mục đã được đổi tên trong %s; di chuyển nó đến %s."
+"thư mục đã được đổi tên trong %s; sẽ di chuyển nó đến %s."
 
 #, c-format
 msgid ""
 "CONFLICT (file location): %s added in %s inside a directory that was renamed "
 "in %s, suggesting it should perhaps be moved to %s."
 msgstr ""
-"XUNG Ä\90á»\98T (vá»\8b trí tá»\87p): %s được thêm vào trong %s trong một thư mục đã được "
+"XUNG Ä\90á»\98T (vá»\8b trí tập): %s được thêm vào trong %s trong một thư mục đã được "
 "đổi tên thành %s, đoán là nó nên được di chuyển đến %s."
 
 #, c-format
@@ -16507,7 +17096,7 @@ msgid ""
 "CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
 "was renamed in %s, suggesting it should perhaps be moved to %s."
 msgstr ""
-"XUNG Ä\90á»\98T (vá»\8b trí tá»\87p): %s được đổi tên thành %s trong %s, bên trong một thư "
+"XUNG Ä\90á»\98T (vá»\8b trí tập): %s được đổi tên thành %s trong %s, bên trong một thư "
 "mục đã được đổi tên thành %s, đoán là nó nên được di chuyển đến %s."
 
 #, c-format
@@ -16583,13 +17172,43 @@ msgstr ""
 "XUNG ĐỘT (sửa/xóa): %s bị xóa trong %s và sửa trong %s. Phiên bản %s của %s "
 "còn lại trong cây (tree)."
 
+#. TRANSLATORS: This is a line of advice to resolve a merge
+#. conflict in a submodule. The first argument is the submodule
+#. name, and the second argument is the abbreviated id of the
+#. commit that needs to be merged.  For example:
+#.  - go to submodule (mysubmodule), and either merge commit abc1234"
+#.
+#, c-format
+msgid ""
+" - go to submodule (%s), and either merge commit %s\n"
+"   or update to an existing commit which has merged those changes\n"
+msgstr ""
+" - đi tới mô-đun con (%s), và hoà trộn lần chuyển giao %s\n"
+"   hoặc cập nhật tới một lần chuyển giao đã có hoà trộn các thay đổi\n"
+
 #, c-format
 msgid ""
-"Note: %s not up to date and in way of checking out conflicted version; old "
-"copy renamed to %s"
+"Recursive merging with submodules currently only supports trivial cases.\n"
+"Please manually handle the merging of each conflicted submodule.\n"
+"This can be accomplished with the following steps:\n"
+"%s - come back to superproject and run:\n"
+"\n"
+"      git add %s\n"
+"\n"
+"   to record the above merge or update\n"
+" - resolve any other conflicts in the superproject\n"
+" - commit the resulting index in the superproject\n"
 msgstr ""
-"Lưu ý: %s không được cập nhật và theo cách lấy ra phiên bản xung đột; bản "
-"sao cũ được đổi tên thành %s"
+"Hoà trộn đệ quy với mô-đun con hiện chỉ hỗ trợ các trường hợp đơn giản.\n"
+"Vui lòng hoà trộn các mô-đun con có xung đột bằng tay.\n"
+"Bạn có thể thực hiện theo các bước sau:\n"
+"%s - trở về project cha và chạy lệnh:\n"
+"\n"
+"      git add %s\n"
+"\n"
+"   để ghi lại hoà trộn hoặc cập nhật\n"
+" - giải quyết các xung đột trong project cha\n"
+" - chuyển giao kết quả trong project cha\n"
 
 #. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
 #. base, and 2-3) the trees for the two trees we're merging.
@@ -16603,74 +17222,90 @@ msgstr "(commit sai)\n"
 
 #, c-format
 msgid "add_cacheinfo failed for path '%s'; merge aborting."
-msgstr "add_cacheinfo gặp lỗi đối với đường dẫn “%s”; việc hòa trộn bị bãi bỏ."
+msgstr "add_cacheinfo gặp lỗi đối với đường dẫn '%s'; huỷ bỏ việc hòa trộn."
 
 #, c-format
 msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
 msgstr ""
-"add_cacheinfo gặp lỗi khi làm mới đối với đường dẫn “%s”; việc hòa trộn bị "
-"bãi bỏ."
+"add_cacheinfo gặp lỗi khi làm mới đối với đường dẫn '%s'; huỷ bỏ việc hòa "
+"trộn."
 
 #, c-format
 msgid "failed to create path '%s'%s"
-msgstr "gặp lỗi khi tạo đường dẫn “%s”%s"
+msgstr "gặp lỗi khi tạo đường dẫn '%s'%s"
 
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "Gỡ bỏ %s để tạo chỗ (room) cho thư mục con\n"
 
 msgid ": perhaps a D/F conflict?"
-msgstr ": có lẽ là một xung đột D/F?"
+msgstr ": có lẽ là xung đột D/F (tập tin/thư mục)?"
 
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
-msgstr "từ chối đóng tập tin không được theo dõi tại “%s”"
+msgstr "từ chối đóng tập tin không được theo dõi tại '%s'"
 
 #, c-format
 msgid "blob expected for %s '%s'"
-msgstr "mong đợi đối tượng blob cho %s “%s”"
+msgstr "mong đợi đối tượng blob cho %s '%s'"
 
 #, c-format
 msgid "failed to open '%s': %s"
-msgstr "gặp lỗi khi mở “%s”: %s"
+msgstr "gặp lỗi khi mở '%s': %s"
 
 #, c-format
 msgid "failed to symlink '%s': %s"
-msgstr "gặp lỗi khi tạo liên kết mềm (symlink) “%s”: %s"
+msgstr "gặp lỗi khi tạo liên kết mềm (symlink) '%s': %s"
 
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
-msgstr "không hiểu phải làm gì với %06o %s “%s”"
+msgstr "không hiểu phải làm gì với %06o %s '%s'"
 
 #, c-format
 msgid "Fast-forwarding submodule %s to the following commit:"
-msgstr "Chuyển-tiếp-nhanh mô-đun-con “%s” đến lần chuyển giao sau đây:"
+msgstr "Chuyển-tiếp-nhanh mô-đun-con '%s' đến lần chuyển giao sau đây:"
 
 #, c-format
 msgid "Fast-forwarding submodule %s"
-msgstr "Chuyển-tiếp-nhanh mô-đun-con “%s”"
+msgstr "Chuyển-tiếp-nhanh mô-đun-con '%s'"
 
 #, c-format
 msgid "Failed to merge submodule %s (merge following commits not found)"
 msgstr ""
-"Gặp lỗi khi hòa trộn mô-đun-con “%s” (không tìm thấy các lần chuyển giao "
+"Gặp lỗi khi hòa trộn mô-đun-con '%s' (không tìm thấy các lần chuyển giao "
 "theo sau hòa trộn)"
 
 #, c-format
 msgid "Failed to merge submodule %s (not fast-forward)"
-msgstr "Gặp lỗi khi hòa trộn mô-đun-con “%s” (không chuyển tiếp nhanh được)"
+msgstr "Gặp lỗi khi hòa trộn mô-đun-con '%s' (không chuyển tiếp nhanh được)"
 
 msgid "Found a possible merge resolution for the submodule:\n"
-msgstr "Tìm thấy một giải pháp hòa trộn có thể cho mô-đun-con:\n"
+msgstr "Tìm thấy một giải pháp hòa trộn khả thi cho mô-đun-con:\n"
+
+#, c-format
+msgid ""
+"If this is correct simply add it to the index for example\n"
+"by using:\n"
+"\n"
+"  git update-index --cacheinfo 160000 %s \"%s\"\n"
+"\n"
+"which will accept this suggestion.\n"
+msgstr ""
+"Nếu đây là đúng đơn giản thêm nó vào chỉ mục ví dụ\n"
+"bằng cách dùng:\n"
+"\n"
+"  git update-index --cacheinfo 160000 %s \"%s\"\n"
+"\n"
+"cái mà sẽ chấp nhận gợi ý này.\n"
 
 #, c-format
 msgid "Failed to merge submodule %s (multiple merges found)"
-msgstr "Gặp lỗi khi hòa trộn mô-đun-con “%s” (thấy nhiều hòa trộn đa trùng)"
+msgstr "Gặp lỗi khi hòa trộn mô-đun-con '%s' (thấy nhiều hòa trộn đa trùng)"
 
 #, c-format
 msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
 msgstr ""
-"Lỗi: từ chối đóng tập tin không được theo dõi tại “%s”; thay vào đó ghi vào "
+"Lỗi: từ chối đóng tập tin không được theo dõi tại '%s'; thay vào đó ghi vào "
 "%s."
 
 #, c-format
@@ -16713,12 +17348,12 @@ msgstr "đã đổi tên"
 
 #, c-format
 msgid "Refusing to lose dirty file at %s"
-msgstr "Từ chối đóng tập tin không được theo dõi tại “%s”"
+msgstr "Từ chối đóng tập tin không được theo dõi tại '%s'"
 
 #, c-format
 msgid "Refusing to lose untracked file at %s, even though it's in the way."
 msgstr ""
-"Từ chối đóng tập tin không được theo dõi tại “%s”, ngay cả khi nó ở trên "
+"Từ chối đóng tập tin không được theo dõi tại '%s', ngay cả khi nó ở trên "
 "đường."
 
 #, c-format
@@ -16733,13 +17368,13 @@ msgstr "%s là một thư mục trong %s thay vào đó thêm vào như là %s"
 #, c-format
 msgid "Refusing to lose untracked file at %s; adding as %s instead"
 msgstr ""
-"Từ chối đóng tập tin không được theo dõi tại “%s”; thay vào đó đang thêm "
+"Từ chối đóng tập tin không được theo dõi tại '%s'; thay vào đó đang thêm "
 "thành %s"
 
 #, c-format
 msgid ""
-"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
-"\"->\"%s\" in \"%s\"%s"
+"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename "
+"\"%s\"->\"%s\" in \"%s\"%s"
 msgstr ""
 "XUNG ĐỘT (đổi-tên/đổi-tên): Đổi tên \"%s\"->\"%s\" trong nhánh \"%s\" đổi "
 "tên \"%s\"->\"%s\" trong \"%s\"%s"
@@ -16758,9 +17393,9 @@ msgid ""
 "directory %s was renamed to multiple other directories, with no destination "
 "getting a majority of the files."
 msgstr ""
-"XUNG ĐỘT: (thư mục đổi tên chia tách): Không rõ ràng để đặt địa điểm %s bởi "
-"vì thư mục %s đã bị đổi tên thành nhiều thư mục khác, với không đích đến "
-"nhận một phần nhiều của các tập tin."
+"XUNG ĐỘT: (phân hoá đổi tên thư mục): Không rõ đặt %s ở đâu bởi vì thư mục "
+"%s đã bị đổi tên thành nhiều thư mục khác, mà không bên nào nhận phần lớn "
+"các tập tin gốc."
 
 #, c-format
 msgid ""
@@ -16825,75 +17460,33 @@ msgstr "hòa trộn không trả về lần chuyển giao nào"
 
 #, c-format
 msgid "Could not parse object '%s'"
-msgstr "Không thể phân tích đối tượng “%s”"
+msgstr "Không thể đọc đối tượng '%s'"
 
 msgid "failed to read the cache"
 msgstr "gặp lỗi khi đọc bộ nhớ đệm"
 
-msgid "multi-pack-index OID fanout is of the wrong size"
-msgstr "fanout OID nhiều gói chỉ mục có kích thước sai"
-
-#, c-format
-msgid "multi-pack-index file %s is too small"
-msgstr "tập tin đồ thị multi-pack-index %s quá nhỏ"
-
-#, c-format
-msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
-msgstr "chữ ký multi-pack-index 0x%08x không khớp chữ ký 0x%08x"
-
-#, c-format
-msgid "multi-pack-index version %d not recognized"
-msgstr "không nhận ra phiên bản %d của multi-pack-index"
-
-#, c-format
-msgid "multi-pack-index hash version %u does not match version %u"
-msgstr "phiên bản băm multi-pack-index %u không khớp phiên bản %u"
-
-msgid "multi-pack-index missing required pack-name chunk"
-msgstr "multi-pack-index thiếu mảnh pack-name cần thiết"
-
-msgid "multi-pack-index missing required OID fanout chunk"
-msgstr "multi-pack-index thiếu mảnh OID fanout cần thiết"
-
-msgid "multi-pack-index missing required OID lookup chunk"
-msgstr "multi-pack-index thiếu mảnh OID lookup cần thiết"
-
-msgid "multi-pack-index missing required object offsets chunk"
-msgstr "multi-pack-index thiếu mảnh các khoảng bù đối tượng cần thiết"
-
-#, c-format
-msgid "multi-pack-index pack names out of order: '%s' before '%s'"
-msgstr "các tên gói multi-pack-index không đúng thứ tự: “%s” trước “%s”"
-
-#, c-format
-msgid "bad pack-int-id: %u (%u total packs)"
-msgstr "pack-int-id sai: %u (%u các gói tổng)"
-
-msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
-msgstr "multi-pack-index lưu trữ một khoảng bù 64-bít, nhưng off_t là quá nhỏ"
-
 #, c-format
 msgid "failed to add packfile '%s'"
-msgstr "gặp lỗi khi thêm tập tin gói “%s”"
+msgstr "gặp lỗi khi thêm tập tin gói '%s'"
 
 #, c-format
 msgid "failed to open pack-index '%s'"
-msgstr "gặp lỗi khi mở pack-index “%s”"
+msgstr "gặp lỗi khi mở pack-index '%s'"
 
 #, c-format
 msgid "failed to locate object %d in packfile"
-msgstr "gặp lỗi khi phân bổ đối tượng “%d” trong tập tin gói"
+msgstr "gặp lỗi khi phân bổ đối tượng '%d' trong tập tin gói"
 
 msgid "cannot store reverse index file"
-msgstr "không thể lưu trữ tập tin ghi mục lục đảo ngược"
+msgstr "không thể lưu trữ tập tin ghi chỉ mục đảo ngược"
 
 #, c-format
 msgid "could not parse line: %s"
-msgstr "không thể phân tích cú pháp dòng: %s"
+msgstr "không hiểu cú pháp dòng: %s"
 
 #, c-format
 msgid "malformed line: %s"
-msgstr "dòng dị hình: %s"
+msgstr "dòng sai quy cách: %s"
 
 msgid "ignoring existing multi-pack-index; checksum mismatch"
 msgstr "bỏ qua multi-pack-index sẵn có; tổng kiểm không khớp"
@@ -16903,7 +17496,7 @@ msgstr "không thể tải gói"
 
 #, c-format
 msgid "could not open index for %s"
-msgstr "không thể mở mục lục cho %s"
+msgstr "không thể mở chỉ mục cho %s"
 
 msgid "Adding packfiles to multi-pack-index"
 msgstr "Đang thêm tập tin gói từ multi-pack-index"
@@ -16918,30 +17511,109 @@ msgstr "không thể chọn gói ưa dùng %s với không đối tượng nào"
 
 #, c-format
 msgid "did not see pack-file %s to drop"
-msgstr "đã không thấy tập tin gói %s để mà xóa"
+msgstr "đã không thấy tập tin gói %s để xóa"
 
 #, c-format
 msgid "preferred pack '%s' is expired"
-msgstr "\"preferred pack\" “%s” đã hết hạn"
+msgstr "\"preferred pack\" '%s' đã hết hạn"
 
 msgid "no pack files to index."
-msgstr "không có tập tin gói để đánh mục lục."
+msgstr "không có tập tin gói để đánh chỉ mục."
 
 msgid "refusing to write multi-pack .bitmap without any objects"
-msgstr "từ chối ghi “multi-pack bitmap” mà không có bất kỳ đối tượng nào"
+msgstr "từ chối ghi 'multi-pack bitmap' mà không có bất kỳ đối tượng nào"
 
 msgid "could not write multi-pack bitmap"
-msgstr "không thể ghi “multi-pack bitmap”"
+msgstr "không thể ghi 'multi-pack bitmap'"
 
 msgid "could not write multi-pack-index"
-msgstr "không thể ghi “multi-pack-index”"
+msgstr "không thể ghi 'multi-pack-index'"
+
+msgid "Counting referenced objects"
+msgstr "Đang đếm các đối tượng được tham chiếu"
+
+msgid "Finding and deleting unreferenced packfiles"
+msgstr "Đang tìm và xóa các gói không được tham chiếu"
+
+msgid "could not start pack-objects"
+msgstr "không thể khởi chạy pack-objects"
+
+msgid "could not finish pack-objects"
+msgstr "không thể hoàn thiện pack-objects"
+
+msgid "multi-pack-index OID fanout is of the wrong size"
+msgstr "fanout OID multi-pack-index có kích thước sai"
+
+#, c-format
+msgid ""
+"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
+msgstr "fanout cũ sai thứ tự: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
+
+msgid "multi-pack-index OID lookup chunk is the wrong size"
+msgstr "OID lookup chunk multi-pack-index có kích thước sai"
+
+msgid "multi-pack-index object offset chunk is the wrong size"
+msgstr "object offset chunk multi-pack-index có kích thước sai"
+
+#, c-format
+msgid "multi-pack-index file %s is too small"
+msgstr "tập tin đồ thị multi-pack-index %s quá nhỏ"
+
+#, c-format
+msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
+msgstr "chữ ký multi-pack-index 0x%08x không khớp chữ ký 0x%08x"
+
+#, c-format
+msgid "multi-pack-index version %d not recognized"
+msgstr "không nhận ra phiên bản %d của multi-pack-index"
+
+#, c-format
+msgid "multi-pack-index hash version %u does not match version %u"
+msgstr "phiên bản băm multi-pack-index %u không khớp phiên bản %u"
+
+msgid "multi-pack-index required pack-name chunk missing or corrupted"
+msgstr "multi-pack-index thiếu chunk pack-name cần thiết hoặc bị hỏng"
+
+msgid "multi-pack-index required OID fanout chunk missing or corrupted"
+msgstr "multi-pack-index thiếu chunk OID fanout cần thiết hoặc bị hỏng"
+
+msgid "multi-pack-index required OID lookup chunk missing or corrupted"
+msgstr "multi-pack-index thiếu chunk OID lookup cần thiết hoặc bị hỏng"
+
+msgid "multi-pack-index required object offsets chunk missing or corrupted"
+msgstr ""
+"multi-pack-index thiếu chunk các khoảng bù đối tượng cần thiết hoặc bị hỏng"
+
+msgid "multi-pack-index pack-name chunk is too short"
+msgstr "tập tin đồ thị multi-pack-index %s quá nhỏ"
+
+#, c-format
+msgid "multi-pack-index pack names out of order: '%s' before '%s'"
+msgstr "các tên gói multi-pack-index không đúng thứ tự: '%s' trước '%s'"
+
+#, c-format
+msgid "bad pack-int-id: %u (%u total packs)"
+msgstr "pack-int-id sai: %u (%u các gói tổng)"
+
+msgid "MIDX does not contain the BTMP chunk"
+msgstr "MIDX không chứa chunk BTMP"
+
+#, c-format
+msgid "could not load bitmapped pack %<PRIu32>"
+msgstr "không thể đọc gói bitmap %<PRIu32>"
+
+msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
+msgstr "multi-pack-index lưu trữ một offset 64-bít, nhưng off_t là quá nhỏ"
+
+msgid "multi-pack-index large offset out of bounds"
+msgstr "multi-pack-index large offset nằm ngoài biên"
 
 #, c-format
 msgid "failed to clear multi-pack-index at %s"
 msgstr "gặp lỗi khi xóa multi-pack-index tại %s"
 
 msgid "multi-pack-index file exists, but failed to parse"
-msgstr "đã có tập tin multi-pack-index, nhưng gặp lỗi khi phân tích cú pháp"
+msgstr "đã có tập tin multi-pack-index, nhưng gặp lỗi khi đọc cú pháp"
 
 msgid "incorrect checksum"
 msgstr "tổng kiểm không đúng"
@@ -16949,11 +17621,6 @@ msgstr "tổng kiểm không đúng"
 msgid "Looking for referenced packfiles"
 msgstr "Đang khóa cho các gói bị tham chiếu"
 
-#, c-format
-msgid ""
-"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-msgstr "fanout cũ sai thứ tự: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-
 msgid "the midx contains no oid"
 msgstr "midx chẳng chứa oid nào"
 
@@ -16983,18 +17650,6 @@ msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
 msgstr ""
 "khoảng bù đối tượng không đúng cho oid[%d] = %s: %<PRIx64> != %<PRIx64>"
 
-msgid "Counting referenced objects"
-msgstr "Đang đếm các đối tượng được tham chiếu"
-
-msgid "Finding and deleting unreferenced packfiles"
-msgstr "Đang tìm và xóa các gói không được tham chiếu"
-
-msgid "could not start pack-objects"
-msgstr "không thể lấy thông tin thống kê về các đối tượng gói"
-
-msgid "could not finish pack-objects"
-msgstr "không thể hoàn thiện các đối tượng gói"
-
 #, c-format
 msgid "unable to create lazy_dir thread: %s"
 msgstr "không thể tạo tuyến lazy_dir: %s"
@@ -17013,10 +17668,9 @@ msgid ""
 "Please, use 'git notes merge --commit' or 'git notes merge --abort' to "
 "commit/abort the previous merge before you start a new notes merge."
 msgstr ""
-"Bạn đã chưa hoàn tất hòa trộn ghi chú trước đây (%s vẫn còn).\n"
-"Vui lòng dùng “git notes merge --commit” hay “git notes merge --abort” để "
-"chuyển giao hay bãi bỏ lần hòa trộn trước đây và bắt đầu một hòa trộn ghi "
-"chú mới."
+"Bạn chưa hoàn tất lần hòa trộn ghi chú trước (%s vẫn còn).\n"
+"Vui lòng dùng 'git notes merge --commit' hay 'git notes merge --abort' để "
+"chuyển giao hay huỷ bỏ lần hòa trộn trước và bắt đầu hòa trộn ghi chú mới."
 
 #, c-format
 msgid "You have not concluded your notes merge (%s exists)."
@@ -17029,7 +17683,7 @@ msgstr ""
 
 #, c-format
 msgid "Bad notes.rewriteMode value: '%s'"
-msgstr "Giá trị notes.rewriteMode sai: “%s”"
+msgstr "Giá trị notes.rewriteMode sai: '%s'"
 
 #, c-format
 msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
@@ -17041,7 +17695,26 @@ msgstr "Từ chối ghi đè ghi chú trong %s (nằm ngoài refs/notes/)"
 #.
 #, c-format
 msgid "Bad %s value: '%s'"
-msgstr "Giá trị %s sai: “%s”"
+msgstr "Giá trị %s sai: '%s'"
+
+msgid "failed to decode tree entry"
+msgstr "giải mã mục cây thất bại"
+
+#, c-format
+msgid "failed to map tree entry for %s"
+msgstr "ánh xạ mục cây cho %s thất bại"
+
+#, c-format
+msgid "bad %s in commit"
+msgstr "ký tự không đúng %s trong lần chuyển giao"
+
+#, c-format
+msgid "unable to map %s %s in commit object"
+msgstr "không thể ánh xạ %s %s trong đối tượng chuyển giao"
+
+#, c-format
+msgid "Failed to convert object from %s to %s"
+msgstr "Chuyển đổi đối tượng từ %s sang %s thất bại"
 
 #, c-format
 msgid "object directory %s does not exist; check .git/objects/info/alternates"
@@ -17050,16 +17723,12 @@ msgstr ""
 
 #, c-format
 msgid "unable to normalize alternate object path: %s"
-msgstr "không thể thường hóa đường dẫn đối tượng thay thế: “%s”"
+msgstr "không thể thường hóa đường dẫn đối tượng thay thế: '%s'"
 
 #, c-format
 msgid "%s: ignoring alternate object stores, nesting too deep"
 msgstr "%s: đang bỏ qua kho đối tượng thay thế, lồng nhau quá sâu"
 
-#, c-format
-msgid "unable to normalize object directory: %s"
-msgstr "không thể chuẩn hóa thư mục đối tượng: “%s”"
-
 msgid "unable to fdopen alternates lockfile"
 msgstr "không thể fdopen tập tin khóa thay thế"
 
@@ -17071,31 +17740,31 @@ msgstr "không thể di chuyển tập tin thay thế vào chỗ"
 
 #, c-format
 msgid "path '%s' does not exist"
-msgstr "đường dẫn “%s” không tồn tại"
+msgstr "đường dẫn '%s' không tồn tại"
 
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
-msgstr "kho tham chiếu “%s” như là lấy ra liên kết vẫn chưa được hỗ trợ."
+msgstr "kho tham chiếu '%s' như là checkout liên kết vẫn chưa được hỗ trợ."
 
 #, c-format
 msgid "reference repository '%s' is not a local repository."
-msgstr "kho tham chiếu “%s” không phải là một kho nội bộ."
+msgstr "kho tham chiếu '%s' không phải là một kho nội bộ."
 
 #, c-format
 msgid "reference repository '%s' is shallow"
-msgstr "kho tham chiếu “%s” là nông"
+msgstr "kho tham chiếu '%s' là nông"
 
 #, c-format
 msgid "reference repository '%s' is grafted"
-msgstr "kho tham chiếu “%s” bị cấy ghép"
+msgstr "kho tham chiếu '%s' bị cấy ghép"
 
 #, c-format
 msgid "could not find object directory matching %s"
-msgstr "không thể tìm thấy thư mục đối tượng khớp với “%s”"
+msgstr "không thể tìm thấy thư mục đối tượng khớp với '%s'"
 
 #, c-format
 msgid "invalid line while parsing alternate refs: %s"
-msgstr "dòng không hợp lệ trong khi phân tích các tham chiếu thay thế: %s"
+msgstr "dòng không hợp lệ trong khi đọc các tham chiếu thay thế: %s"
 
 #, c-format
 msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
@@ -17111,15 +17780,19 @@ msgstr "tập tin đối tượng %s trống rỗng"
 
 #, c-format
 msgid "corrupt loose object '%s'"
-msgstr "đối tượng mất hỏng “%s”"
+msgstr "đối tượng mất hỏng '%s'"
 
 #, c-format
 msgid "garbage at end of loose object '%s'"
-msgstr "gặp rác tại cuối của đối tượng bị mất “%s”"
+msgstr "gặp rác tại cuối của đối tượng bị mất '%s'"
+
+#, c-format
+msgid "unable to open loose object %s"
+msgstr "không thể mở đối tượng mất %s"
 
 #, c-format
 msgid "unable to parse %s header"
-msgstr "không thể phân tích phần đầu của “%s”"
+msgstr "không thể đọc phần đầu của '%s'"
 
 msgid "invalid object type"
 msgstr "kiểu đối tượng không hợp lệ"
@@ -17133,31 +17806,28 @@ msgid "header for %s too long, exceeds %d bytes"
 msgstr "phần đầu cho %s quá dài, vượt quá %d byte"
 
 #, c-format
-msgid "failed to read object %s"
-msgstr "gặp lỗi khi đọc đối tượng “%s”"
+msgid "loose object %s (stored in %s) is corrupt"
+msgstr "đối tượng mất %s (được lưu trong %s) bị hỏng"
 
 #, c-format
 msgid "replacement %s not found for %s"
 msgstr "c%s thay thế không được tìm thấy cho %s"
 
-#, c-format
-msgid "loose object %s (stored in %s) is corrupt"
-msgstr "đối tượng mất %s (được lưu trong %s) bị hỏng"
-
 #, c-format
 msgid "packed object %s (stored in %s) is corrupt"
 msgstr "đối tượng đã đóng gói %s (được lưu trong %s) bị hỏng"
 
+#, c-format
+msgid "missing mapping of %s to %s"
+msgstr "thiếu ánh xạ %s sang %s"
+
 #, c-format
 msgid "unable to write file %s"
 msgstr "không thể ghi tập tin %s"
 
 #, c-format
 msgid "unable to set permission to '%s'"
-msgstr "không thể đặt quyền thành “%s”"
-
-msgid "file write error"
-msgstr "lỗi ghi tập tin"
+msgstr "không thể đặt quyền thành '%s'"
 
 msgid "error when closing loose object file"
 msgstr "gặp lỗi trong khi đóng tập tin đối tượng"
@@ -17175,7 +17845,7 @@ msgstr "không thể ghi tập tin đối tượng đã mất"
 
 #, c-format
 msgid "unable to deflate new object %s (%d)"
-msgstr "không thể xả nén đối tượng mới %s (%d)"
+msgstr "không thể giải nén đối tượng mới %s (%d)"
 
 #, c-format
 msgid "deflateEnd on object %s failed (%d)"
@@ -17185,23 +17855,44 @@ msgstr "deflateEnd trên đối tượng %s gặp lỗi (%d)"
 msgid "confused by unstable object source data for %s"
 msgstr "chưa rõ ràng baowir dữ liệu nguồn đối tượng không ổn định cho %s"
 
+#, c-format
+msgid "write stream object %ld != %<PRIuMAX>"
+msgstr "đối tượng ghi dòng %ld != %<PRIuMAX>"
+
+#, c-format
+msgid "unable to stream deflate new object (%d)"
+msgstr "không thể stream deflate đối tượng mới (%d)"
+
+#, c-format
+msgid "deflateEnd on stream object failed (%d)"
+msgstr "deflateEnd trên đối tượng stream gặp lỗi (%d)"
+
+#, c-format
+msgid "unable to create directory %s"
+msgstr "tạo thư mục \"%s\" gặp lỗi"
+
 #, c-format
 msgid "cannot read object for %s"
 msgstr "không thể đọc đối tượng cho %s"
 
-msgid "corrupt commit"
-msgstr "lần chuyển giao sai hỏng"
+#, c-format
+msgid "cannot map object %s to %s"
+msgstr "không thể ánh xạ đối tượng %s sang %s"
+
+#, c-format
+msgid "object fails fsck: %s"
+msgstr "đối tượng không qua fsck (kiểm tra toàn vẹn): %s"
 
-msgid "corrupt tag"
-msgstr "thẻ sai hỏng"
+msgid "refusing to create malformed object"
+msgstr "Từ chối tạo đối tượng lỗi"
 
 #, c-format
 msgid "read error while indexing %s"
-msgstr "gặp lỗi đọc khi đánh mục lục %s"
+msgstr "gặp lỗi đọc khi đánh chỉ mục %s"
 
 #, c-format
 msgid "short read while indexing %s"
-msgstr "không đọc ngắn khi đánh mục lục %s"
+msgstr "không đọc ngắn khi đánh chỉ mục %s"
 
 #, c-format
 msgid "%s: failed to insert into database"
@@ -17213,7 +17904,7 @@ msgstr "%s: kiểu tập tin không được hỗ trợ"
 
 #, c-format
 msgid "%s is not a valid '%s' object"
-msgstr "%s không phải là một đối tượng “%s” hợp lệ"
+msgstr "%s không phải là một đối tượng '%s' hợp lệ"
 
 #, c-format
 msgid "unable to open %s"
@@ -17229,15 +17920,15 @@ msgstr "không thể mmap %s"
 
 #, c-format
 msgid "unable to unpack header of %s"
-msgstr "không thể giải gói phần đầu của “%s”"
+msgstr "không thể giải gói phần đầu của '%s'"
 
 #, c-format
 msgid "unable to parse header of %s"
-msgstr "không thể phân tích phần đầu của “%s”"
+msgstr "không thể đọc phần đầu của '%s'"
 
 #, c-format
 msgid "unable to unpack contents of %s"
-msgstr "không thể giải gói nội dung của “%s”"
+msgstr "không thể giải gói nội dung của '%s'"
 
 #. TRANSLATORS: This is a line of ambiguous object
 #. output shown when we cannot look up or parse the
@@ -17279,7 +17970,7 @@ msgstr "%s thẻ %s - %s"
 #.
 #, c-format
 msgid "%s [bad tag, could not parse it]"
-msgstr "%s [thẻ sai, không thể phân tích cú pháp nó]"
+msgstr "%s [thẻ sai, không hiểu cú pháp nó]"
 
 #. TRANSLATORS: This is a line of ambiguous <type>
 #. object output. E.g. "deadbeef tree".
@@ -17322,65 +18013,64 @@ msgid ""
 "examine these refs and maybe delete them. Turn this message off by\n"
 "running \"git config advice.objectNameWarning false\""
 msgstr ""
-"Git thường không bao giờ tạo tham chiếu mà nó kết thúc với 40 ký tự hex\n"
-"bởi vì nó sẽ bị bỏ qua khi bạn chỉ định 40-hex. Những tham chiếu này\n"
-"có lẽ được tạo ra bởi một sai sót nào đó. Ví dụ,\n"
+"Git thường không bao giờ tạo tham chiếu kết thúc với 40 ký tự hex\n"
+"bởi vì nó sẽ bị bỏ qua khi bạn chỉ định 40 ký tự hex. Những tham chiếu\n"
+"này có lẽ đã được tạo nhầm. Ví dụ,\n"
 "\n"
-"  git switch -c $br $(git rev-parse )\n"
+"  git switch -c $br $(git rev-parse ...)\n"
 "\n"
-"với \"$br\" không hiểu lý do vì sao trống rỗng và một tham chiếu 40-hex được "
-"tạo ra.\n"
-"Xin hãy kiểm tra những tham chiếu này và có thể xóa chúng đi. Tắt lời nhắn "
-"này\n"
-"bằng cách chạy lệnh \"git config advice.objectNameWarning false\""
+"với \"$br\" không hiểu lý do vì sao rỗng và tạo ra tham chiếu 40-hex.\n"
+" Xin hãy kiểm tra những tham chiếu này và xóa chúng đi nếu cần. Tắt\n"
+"lời nhắn này bằng cách chạy lệnh \"git config advice.objectNameWarning "
+"false\""
 
 #, c-format
 msgid "log for '%.*s' only goes back to %s"
-msgstr "nhật ký cho “%.*s” chỉ trở lại đến %s"
+msgstr "nhật ký cho '%.*s' chỉ kéo dài đến %s"
 
 #, c-format
 msgid "log for '%.*s' only has %d entries"
-msgstr "nhật ký cho “%.*s” chỉ có %d mục"
+msgstr "nhật ký cho '%.*s' chỉ có %d mục"
 
 #, c-format
 msgid "path '%s' exists on disk, but not in '%.*s'"
-msgstr "đường dẫn “%s” có ở trên đĩa, nhưng không trong “%.*s”"
+msgstr "đường dẫn '%s' có ở trên đĩa, nhưng không trong '%.*s'"
 
 #, c-format
 msgid ""
 "path '%s' exists, but not '%s'\n"
 "hint: Did you mean '%.*s:%s' aka '%.*s:./%s'?"
 msgstr ""
-"đường dẫn “%s” tồn tại, nhưng không phải “%s”\n"
-"gợi ý: Có phải ý bạn là “%.*s:%s” aka “%.*s:./%s”?"
+"đường dẫn '%s' tồn tại, nhưng không phải '%s'\n"
+"gợi ý: Có phải ý bạn là '%.*s:%s' aka '%.*s:./%s'?"
 
 #, c-format
 msgid "path '%s' does not exist in '%.*s'"
-msgstr "đường dẫn “%s” không tồn tại trong “%.*s”"
+msgstr "đường dẫn '%s' không tồn tại trong '%.*s'"
 
 #, c-format
 msgid ""
 "path '%s' is in the index, but not at stage %d\n"
 "hint: Did you mean ':%d:%s'?"
 msgstr ""
-"đường dẫn “%s” nằm trong chỉ mục, nhưng không phải ở giai đoạn %d\n"
-"gợi ý: Có phải ý bạn là “:%d:%s”?"
+"đường dẫn '%s' nằm trong chỉ mục, nhưng không phải ở giai đoạn %d\n"
+"gợi ý: Có phải ý bạn là ':%d:%s'?"
 
 #, c-format
 msgid ""
 "path '%s' is in the index, but not '%s'\n"
 "hint: Did you mean ':%d:%s' aka ':%d:./%s'?"
 msgstr ""
-"đường dẫn “%s” nằm trong chỉ mục, nhưng không phải “%s”\n"
-"gợi ý: Có phải ý bạn là “:% d:%s “ aka “:%d:./%s”?"
+"đường dẫn '%s' nằm trong chỉ mục, nhưng không phải '%s'\n"
+"gợi ý: Có phải ý bạn là ':% d:%s ' aka ':%d:./%s'?"
 
 #, c-format
 msgid "path '%s' exists on disk, but not in the index"
-msgstr "đường dẫn “%s” tồn tại trên đĩa, nhưng không có trong chỉ mục"
+msgstr "đường dẫn '%s' tồn tại trên đĩa, nhưng không có trong chỉ mục"
 
 #, c-format
 msgid "path '%s' does not exist (neither on disk nor in the index)"
-msgstr "đường dẫn “%s” không tồn tại (không trên đĩa cũng không trong mục lục)"
+msgstr "đường dẫn '%s' không tồn tại (không trên đĩa cũng không trong chỉ mục)"
 
 msgid "relative path syntax can't be used outside working tree"
 msgstr "cú pháp đường dẫn tương đối không thể thể dùng ngoài cây làm việc"
@@ -17391,7 +18081,7 @@ msgstr "<object>:<path> cần cả hai, nhưng chỉ <object> '%s' được đư
 
 #, c-format
 msgid "invalid object name '%.*s'."
-msgstr "“%.*s” không phải là tên đối tượng hợp lệ."
+msgstr "'%.*s' không phải là tên đối tượng hợp lệ."
 
 #, c-format
 msgid "invalid object type \"%s\""
@@ -17407,26 +18097,134 @@ msgstr "đối tượng %s có mã kiểu %d chưa biết"
 
 #, c-format
 msgid "unable to parse object: %s"
-msgstr "không thể phân tích đối tượng: “%s”"
+msgstr "không thể đọc đối tượng: '%s'"
 
 #, c-format
 msgid "hash mismatch %s"
 msgstr "mã băm không khớp %s"
 
+msgid "trying to write commit not in index"
+msgstr "đã thử ghi lần chuyển giao nằm ngoài chỉ mục"
+
+msgid "failed to load bitmap index (corrupted?)"
+msgstr "không thể đọc chỉ mục bitmap (bị hỏng?)"
+
+msgid "corrupted bitmap index (too small)"
+msgstr "chỉ mục bitmap bị hỏng (quá nhỏ)"
+
+msgid "corrupted bitmap index file (wrong header)"
+msgstr "tập tin chỉ mục bitmap bị hỏng (sai phần đầu)"
+
+#, c-format
+msgid "unsupported version '%d' for bitmap index file"
+msgstr "không hỗ trợ tập tin chỉ mục bitmap phiên bản '%d'"
+
+msgid "corrupted bitmap index file (too short to fit hash cache)"
+msgstr "tập tin chỉ mục bitmap bị hỏng (quá ngắn để chứa bộ đệm mã băm)"
+
+msgid "corrupted bitmap index file (too short to fit lookup table)"
+msgstr "tập tin chỉ mục bitmap bị hỏng (quá ngắn để chứa bảng tìm kiếm)"
+
+#, c-format
+msgid "duplicate entry in bitmap index: '%s'"
+msgstr "đối tượng trùng lặp trong bitmap: '%s'"
+
+#, c-format
+msgid "corrupt ewah bitmap: truncated header for entry %d"
+msgstr "ewah bitmap bị hỏng: phần đầu bị cắt ngắn cho mục thứ %d"
+
+#, c-format
+msgid "corrupt ewah bitmap: commit index %u out of range"
+msgstr "ewah bitmap bị hỏng: mục chuyển giao thứ %u nằm ngoài phạm vi"
+
+msgid "corrupted bitmap pack index"
+msgstr "chỉ mục gói bitmap bị hỏng"
+
+msgid "invalid XOR offset in bitmap pack index"
+msgstr "XOR offset không hợp lệ trong chỉ mục gói bitmap"
+
+msgid "cannot fstat bitmap file"
+msgstr "không thể fstat file bitmap"
+
+msgid "checksum doesn't match in MIDX and bitmap"
+msgstr "tổng kiểm ra trong MIDX và bitmap không khớp"
+
 msgid "multi-pack bitmap is missing required reverse index"
-msgstr "ánh xạ multi-pack thiếu mục lục để dành cần thiết"
+msgstr "bitmap multi-pack thiếu chỉ mục để dành cần thiết"
 
 #, c-format
 msgid "could not open pack %s"
-msgstr "không thể mở gói “%s”"
+msgstr "không thể mở gói '%s'"
+
+msgid "could not determine MIDX preferred pack"
+msgstr "không thể xác định gói MIDX ưa dùng"
 
 #, c-format
 msgid "preferred pack (%s) is invalid"
-msgstr "\"preferred pack\" (%s) không hợp lệ"
+msgstr "preferred pack (%s) không hợp lệ"
+
+msgid "corrupt bitmap lookup table: triplet position out of index"
+msgstr "bảng tìm kiếm bitmap bị hỏng: vị trí bộ ba nằm ngoài chỉ mục"
+
+msgid "corrupt bitmap lookup table: xor chain exceeds entry count"
+msgstr "bảng tìm kiếm bitmap bị hỏng: chuỗi xor vượt quá số lượng mục"
+
+#, c-format
+msgid "corrupt bitmap lookup table: commit index %u out of range"
+msgstr "bảng tìm kiếm bitmap bị hỏng: mục chuyển giao thứ %u nằm ngoài phạm vi"
+
+#, c-format
+msgid "corrupt ewah bitmap: truncated header for bitmap of commit \"%s\""
+msgstr ""
+"ewah bitmap bị hỏng: bitmap lần chuyển giao \"%s\" có phần đầu bị cắt ngắn"
+
+#, c-format
+msgid "unable to load pack: '%s', disabling pack-reuse"
+msgstr "không thể đọc gói: '%s', vô hiệu sử dụng lại gói"
+
+msgid "unable to compute preferred pack, disabling pack-reuse"
+msgstr "không thể tính giá trị gói ưa dùng, vô hiệu sử dụng lại gói"
+
+#, c-format
+msgid "object '%s' not found in type bitmaps"
+msgstr "không tìm thấy đối tượng '%s' trong type bitmap"
+
+#, c-format
+msgid "object '%s' does not have a unique type"
+msgstr "đối tượng '%s' không có kiểu độc nhất"
+
+#, c-format
+msgid "object '%s': real type '%s', expected: '%s'"
+msgstr "đối tượng '%s': kiểu '%s', cần: '%s'"
+
+#, c-format
+msgid "object not in bitmap: '%s'"
+msgstr "không tìm thấy đối tượng trong bitmap: %s"
+
+msgid "failed to load bitmap indexes"
+msgstr "đọc chỉ mục bitmap thất bại"
+
+msgid "you must specify exactly one commit to test"
+msgstr "bạn phải chỉ định các lần chuyển giao muốn kiểm tra"
+
+#, c-format
+msgid "commit '%s' doesn't have an indexed bitmap"
+msgstr "lần chuyển giao '%s' không có chỉ mục bitmap"
+
+msgid "mismatch in bitmap results"
+msgstr "kết quả bitmap không khớp"
 
 #, c-format
-msgid "could not find %s in pack %s at offset %<PRIuMAX>"
-msgstr "không thể tìm thấy %s trong gói “%s” tại vị trí %<PRIuMAX>"
+msgid "could not find '%s' in pack '%s' at offset %<PRIuMAX>"
+msgstr "không thể tìm thấy '%s' trong gói '%s' tại vị trí %<PRIuMAX>"
+
+#, c-format
+msgid "unable to get disk usage of '%s'"
+msgstr "không thể lấy dung lượng đĩa đã dùng của %s"
+
+#, c-format
+msgid "bitmap file '%s' has invalid checksum"
+msgstr "file bitmap '%s' có checksum không hợp lệ"
 
 #, c-format
 msgid "mtimes file %s is too small"
@@ -17438,7 +18236,7 @@ msgstr "tập tin mtimes %s có chữ ký chưa biết"
 
 #, c-format
 msgid "mtimes file %s has unsupported version %<PRIu32>"
-msgstr "tá»\87p mtimes %s có phiên bản không được hỗ trợ %<PRIu32>"
+msgstr "tập mtimes %s có phiên bản không được hỗ trợ %<PRIu32>"
 
 #, c-format
 msgid "mtimes file %s has unsupported hash id %<PRIu32>"
@@ -17462,18 +18260,31 @@ msgstr "tập tin reverse-index %s có chữ ký chưa biết"
 
 #, c-format
 msgid "reverse-index file %s has unsupported version %<PRIu32>"
-msgstr "tá»\87p chỉ mục ngược %s có phiên bản không được hỗ trợ %<PRIu32>"
+msgstr "tập chỉ mục ngược %s có phiên bản không được hỗ trợ %<PRIu32>"
 
 #, c-format
 msgid "reverse-index file %s has unsupported hash id %<PRIu32>"
-msgstr "tệp chỉ mục ngược %s có id mã băm không được hỗ trợ %<PRIu32>"
+msgstr "tập chỉ mục ngược %s có id mã băm không được hỗ trợ %<PRIu32>"
+
+msgid "invalid checksum"
+msgstr "checksum không hợp lệ"
+
+#, c-format
+msgid "invalid rev-index position at %<PRIu64>: %<PRIu32> != %<PRIu32>"
+msgstr "vị trí mục xét duyệt không hợp lệ %<PRIu64>: %<PRIu32> != %<PRIu32>"
+
+msgid "multi-pack-index reverse-index chunk is the wrong size"
+msgstr "chunk chỉ mục ngược của chỉ mục đa gói có kích thước sai"
+
+msgid "could not determine preferred pack"
+msgstr "không thể xác định gói ưa dùng"
 
 msgid "cannot both write and verify reverse index"
-msgstr "không thể cùng lúc đọc và xác minh được bảng mục lục đảo ngược"
+msgstr "không thể cùng lúc gh và xác minh chỉ mục ngược"
 
 #, c-format
 msgid "could not stat: %s"
-msgstr "không thể lấy thông tin thống kê: %s"
+msgstr "không thể stat: %s"
 
 #, c-format
 msgid "failed to make %s readable"
@@ -17481,7 +18292,7 @@ msgstr "gặp lỗi làm cho %s đọc được"
 
 #, c-format
 msgid "could not write '%s' promisor file"
-msgstr "không thể ghi tập tin promisor “%s”"
+msgstr "không thể ghi tập tin promisor '%s'"
 
 msgid "offset before end of packfile (broken .idx?)"
 msgstr "vị trí tương đối trước điểm kết thúc của tập tin gói (.idx hỏng à?)"
@@ -17492,44 +18303,36 @@ msgstr "tập tin gói %s không thể được ánh xạ %s"
 
 #, c-format
 msgid "offset before start of pack index for %s (corrupt index?)"
-msgstr "vị trí tương đối nằm trước chỉ mục gói cho %s (mục lục bị hỏng à?)"
+msgstr "vị trí tương đối nằm trước chỉ mục gói cho %s (chỉ mục bị hỏng à?)"
 
 #, c-format
 msgid "offset beyond end of pack index for %s (truncated index?)"
 msgstr ""
-"vị trí tương đối vượt quá cuối của chỉ mục gói cho %s (mục lục bị cắt cụt à?)"
+"vị trí tương đối vượt quá cuối của chỉ mục gói cho %s (chỉ mục bị cắt cụt à?)"
 
 #, c-format
 msgid "malformed expiration date '%s'"
-msgstr "ngày tháng hết hạn dị hình “%s”"
+msgstr "ngày tháng hết hạn sai quy cách '%s'"
 
 #, c-format
 msgid "option `%s' expects \"always\", \"auto\", or \"never\""
-msgstr "tùy chọn “%s” cần \"always\", \"auto\", hoặc \"never\""
+msgstr "tùy chọn '%s' cần \"always\", \"auto\", hoặc \"never\""
 
 #, c-format
 msgid "malformed object name '%s'"
-msgstr "tên đối tượng dị hình “%s”"
+msgstr "tên đối tượng sai quy cách '%s'"
 
 #, c-format
 msgid "option `%s' expects \"%s\" or \"%s\""
-msgstr "tùy chọn “%s” cần \"%s\" hoặc \"%s\""
+msgstr "tùy chọn '%s' cần \"%s\" hoặc \"%s\""
 
 #, c-format
 msgid "%s requires a value"
-msgstr "“%s” yêu cầu một giá trị"
-
-#, c-format
-msgid "%s is incompatible with %s"
-msgstr "%s là xung khắc với %s"
-
-#, c-format
-msgid "%s : incompatible with something else"
-msgstr "%s : xung khắc với các cái khác"
+msgstr "'%s' yêu cầu một giá trị"
 
 #, c-format
 msgid "%s takes no value"
-msgstr "%s k nhận giá trị"
+msgstr "%s không nhận giá trị"
 
 #, c-format
 msgid "%s isn't available"
@@ -17545,26 +18348,29 @@ msgstr "tùy chọn chưa rõ rang: %s (nên là --%s%s hay --%s%s)"
 
 #, c-format
 msgid "did you mean `--%s` (with two dashes)?"
-msgstr "có phải ý bạn là “--%s“ (với hai dấu gạch ngang)?"
+msgstr "có phải ý bạn là '--%s' (với hai dấu gạch ngang)?"
 
 #, c-format
 msgid "alias of --%s"
 msgstr "bí danh của --%s"
 
+msgid "need a subcommand"
+msgstr "cần câu lệnh con"
+
 #, c-format
 msgid "unknown option `%s'"
-msgstr "không hiểu tùy chọn “%s”"
+msgstr "không hiểu tùy chọn '%s'"
 
 #, c-format
 msgid "unknown switch `%c'"
-msgstr "không hiểu tùy chọn “%c”"
+msgstr "không hiểu tùy chọn '%c'"
 
 #, c-format
 msgid "unknown non-ascii option in string: `%s'"
-msgstr "không hiểu tùy chọn non-ascii trong chuỗi: “%s”"
+msgstr "không hiểu tùy chọn non-ascii trong chuỗi: '%s'"
 
 msgid "..."
-msgstr ""
+msgstr "..."
 
 #, c-format
 msgid "usage: %s"
@@ -17607,6 +18413,10 @@ msgstr "    %s"
 msgid "-NUM"
 msgstr "-SỐ"
 
+#, c-format
+msgid "opposite of --no-%s"
+msgstr "ngược lại với --no-%s"
+
 msgid "expiry-date"
 msgstr "ngày hết hạn"
 
@@ -17622,8 +18432,11 @@ msgstr "im lặng hơn nữa"
 msgid "use <n> digits to display object names"
 msgstr "sử dụng <n> chữ số để hiển thị tên đối tượng"
 
+msgid "prefixed path to initial superproject"
+msgstr "đường dẫn tiền tố đến project cha ban đầu"
+
 msgid "how to strip spaces and #comments from message"
-msgstr "làm thế nào để cắt bỏ khoảng trắng và #ghichú từ mẩu tin nhắn"
+msgstr "làm thế nào để cắt bỏ khoảng trắng và #ghi-chú từ tin nhắn"
 
 msgid "read pathspec from file"
 msgstr "đọc đặc tả đường dẫn từ tập tin"
@@ -17634,16 +18447,24 @@ msgstr ""
 "với --pathspec-from-file, các phần tử đặc tả đường dẫn bị ngăn cách bởi ký "
 "tự NULL"
 
+#, c-format
+msgid "bad boolean environment value '%s' for '%s'"
+msgstr "sai giá trị kiểu boolean của cấu hình '%s' cho '%s'"
+
+#, c-format
+msgid "failed to parse %s"
+msgstr "gặp lỗi khi đọc cú pháp %s"
+
 #, c-format
 msgid "Could not make %s writable by group"
 msgstr "Không thể làm %s được ghi bởi nhóm"
 
 msgid "Escape character '\\' not allowed as last character in attr value"
 msgstr ""
-"Ký tự thoát chuỗi “\\” không được phép là ký tự cuối trong giá trị thuộc tính"
+"Ký tự thoát chuỗi '\\' không được phép là ký tự cuối trong giá trị thuộc tính"
 
 msgid "Only one 'attr:' specification is allowed."
-msgstr "Chỉ có một đặc tả “attr:” là được phép."
+msgstr "Chỉ có một đặc tả 'attr:' là được phép."
 
 msgid "attr spec must not be empty"
 msgstr "đặc tả attr phải không được để trống"
@@ -17653,42 +18474,45 @@ msgid "invalid attribute name %s"
 msgstr "tên thuộc tính không hợp lệ %s"
 
 msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
-msgstr ""
-"các cài đặt đặc tả đường dẫn “glob” và “noglob” toàn cục là xung khắc nhau"
+msgstr "các cài đặt đặc tả đường dẫn 'glob' và 'noglob' toàn cục là xung khắc"
 
 msgid ""
 "global 'literal' pathspec setting is incompatible with all other global "
 "pathspec settings"
 msgstr ""
-"cài đặt đặc tả đường dẫn “literal” toàn cục là xung khắc với các cài đặt đặc "
-"tả đường dẫn toàn cục khác"
+"cài đặt đặc tả đường dẫn 'literal' toàn cục không tương thích với các cài "
+"đặt đặc tả đường dẫn toàn cục khác"
 
 msgid "invalid parameter for pathspec magic 'prefix'"
-msgstr "tham số không hợp lệ cho “tiền tố” màu nhiệm đặc tả đường đẫn"
+msgstr "tham số không hợp lệ cho đặc tả đường đẫn đặc biệt 'prefix'"
 
 #, c-format
 msgid "Invalid pathspec magic '%.*s' in '%s'"
-msgstr "Số màu nhiệm đặc tả đường dẫn không hợp lệ “%.*s” trong “%s”"
+msgstr "Đặc tả đường dẫn không hợp lệ '%.*s' trong '%s'"
 
 #, c-format
 msgid "Missing ')' at the end of pathspec magic in '%s'"
-msgstr "Thiếu “)” tại cuối của số màu nhiệm đặc tả đường dẫn trong “%s”"
+msgstr "Thiếu ')' tại cuối của đặc tả đường dẫn trong '%s'"
 
 #, c-format
 msgid "Unimplemented pathspec magic '%c' in '%s'"
-msgstr "Chưa viết mã cho số màu nhiệm đặc tả đường dẫn “%c” trong “%s”"
+msgstr "Chưa hỗ trợ đặc tả đường dẫn '%c' trong '%s'"
 
 #, c-format
 msgid "%s: 'literal' and 'glob' are incompatible"
-msgstr "%s: “literal” và “glob” xung khắc nhau"
+msgstr "%s: 'literal' và 'glob' xung khắc"
+
+#, c-format
+msgid "'%s' is outside the directory tree"
+msgstr "'%s' nằm ngoài cây thư mục"
 
 #, c-format
 msgid "%s: '%s' is outside repository at '%s'"
-msgstr "%s: “%s” ngoài một kho chứa tại “%s”"
+msgstr "%s: '%s' nằm ngoài một kho chứa tại '%s'"
 
 #, c-format
 msgid "'%s' (mnemonic: '%c')"
-msgstr "“%s” (mnemonic: “%c”)"
+msgstr "'%s' (mnemonic: '%c')"
 
 #, c-format
 msgid "%s: pathspec magic not supported by this command: %s"
@@ -17696,7 +18520,7 @@ msgstr "%s: số mầu nhiệm đặc tả đường dẫn chưa được hỗ t
 
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
-msgstr "đặc tả đường dẫn “%s” vượt ra ngoài liên kết mềm"
+msgstr "đặc tả đường dẫn '%s' vượt ra ngoài liên kết mềm"
 
 #, c-format
 msgid "line is badly quoted: %s"
@@ -17746,14 +18570,14 @@ msgid "remote error: %s"
 msgstr "lỗi máy chủ: %s"
 
 msgid "Refreshing index"
-msgstr "Làm mới bảng mục lục"
+msgstr "Làm mới chỉ mục"
 
 #, c-format
 msgid "unable to create threaded lstat: %s"
-msgstr "không thể tạo tuyến trình lstat: %s"
+msgstr "không thể tạo tiến trình lstat: %s"
 
 msgid "unable to parse --pretty format"
-msgstr "không thể phân tích định dạng --pretty"
+msgstr "không thể đọc định dạng --pretty"
 
 msgid "promisor-remote: unable to fork off fetch subprocess"
 msgstr "promisor-remote: không thể rẽ nhánh tuyến trình con fetch"
@@ -17762,12 +18586,15 @@ msgid "promisor-remote: could not write to fetch subprocess"
 msgstr "promisor-remote: không thể ghi tiến trình con fetch"
 
 msgid "promisor-remote: could not close stdin to fetch subprocess"
-msgstr ""
-"promisor-remote: không thể đóng đầu vào tiêu chuẩn tiến trình con fetch"
+msgstr "promisor-remote: không thể đóng stdin tiến trình con fetch"
 
 #, c-format
 msgid "promisor remote name cannot begin with '/': %s"
-msgstr "tên máy chủ hứa hẹn không thể bắt đầu bằng “/”: %s"
+msgstr "tên máy chủ promisor không thể bắt đầu bằng '/': %s"
+
+#, c-format
+msgid "could not fetch %s from promisor remote"
+msgstr "không thể tải %s từ máy chủ promisor"
 
 msgid "object-info: expected flush after arguments"
 msgstr "object-info: cần đẩy dữ liệu lên đĩa sau các tham số"
@@ -17776,38 +18603,44 @@ msgid "Removing duplicate objects"
 msgstr "Đang gỡ các đối tượng trùng lặp"
 
 msgid "could not start `log`"
-msgstr "không thể lấy thông tin thống kê về “log“"
+msgstr "không thể khởi chạy `log`"
 
 msgid "could not read `log` output"
-msgstr "không thể đọc kết xuất “log”"
+msgstr "không thể đọc đầu ra `log`"
 
 #, c-format
 msgid "could not parse commit '%s'"
-msgstr "không thể phân tích lần chuyển giao “%s”"
+msgstr "không thể đọc lần chuyển giao '%s'"
 
 #, c-format
 msgid ""
 "could not parse first line of `log` output: did not start with 'commit ': "
 "'%s'"
 msgstr ""
-"không thể phân tích cú pháp dòng đầu tiên của đầu ra “log”: không bắt đầu "
-"bằng “commit ”: “%s”"
+"không hiểu cú pháp dòng đầu tiên của đầu ra 'log': không bắt đầu bằng "
+"'commit ': '%s'"
 
 #, c-format
 msgid "could not parse git header '%.*s'"
-msgstr "không thể phân tích cú pháp phần đầu git “%.*s”"
+msgstr "không hiểu cú pháp phần đầu git '%.*s'"
 
 msgid "failed to generate diff"
 msgstr "gặp lỗi khi tạo khác biệt"
 
 #, c-format
 msgid "could not parse log for '%s'"
-msgstr "không thể phân tích nhật ký cho “%s”"
+msgstr "không thể đọc nhật ký cho '%s'"
+
+#, c-format
+msgid "invalid extra cruft tip: '%s'"
+msgstr "extra cruft tip không hợp lệ: '%s'"
+
+msgid "unable to enumerate additional recent objects"
+msgstr "không thể đếm các đối tượng mới thêm"
 
 #, c-format
 msgid "will not add file alias '%s' ('%s' already exists in index)"
-msgstr ""
-"sẽ không thêm các bí danh “%s” (“%s” đã có từ trước trong bảng mục lục)"
+msgstr "sẽ không thêm các bí danh '%s' ('%s' đã có từ trước trong chỉ mục)"
 
 msgid "cannot create an empty blob in the object database"
 msgstr "không thể tạo một blob rỗng trong cơ sở dữ liệu đối tượng"
@@ -17819,22 +18652,18 @@ msgstr ""
 
 #, c-format
 msgid "unable to index file '%s'"
-msgstr "không thể đánh mục lục tập tin “%s”"
+msgstr "không thể đánh chỉ mục tập tin '%s'"
 
 #, c-format
 msgid "unable to add '%s' to index"
-msgstr "không thể thêm %s vào bảng mục lục"
-
-#, c-format
-msgid "unable to stat '%s'"
-msgstr "không thể lấy thống kê “%s”"
+msgstr "không thể thêm %s vào chỉ mục"
 
 #, c-format
 msgid "'%s' appears as both a file and as a directory"
-msgstr "%s có vẻ không phải là tập tin và cũng chẳng phải là một thư mục"
+msgstr "%s có vẻ vừa là tập tin và cũng vừa là thư mục"
 
 msgid "Refresh index"
-msgstr "Làm tươi mới bảng mục lục"
+msgstr "Làm mới chỉ mục"
 
 #, c-format
 msgid ""
@@ -17858,37 +18687,37 @@ msgstr "chữ ký sai 0x%08x"
 
 #, c-format
 msgid "bad index version %d"
-msgstr "phiên bản mục lục sai %d"
+msgstr "phiên bản chỉ mục sai %d"
 
 msgid "bad index file sha1 signature"
-msgstr "chữ ký dạng sha1 cho tập tin mục lục không đúng"
+msgstr "chữ ký dạng sha1 cho tập tin chỉ mục không đúng"
 
 #, c-format
 msgid "index uses %.4s extension, which we do not understand"
-msgstr "mục lục dùng phần mở rộng %.4s, cái mà chúng tôi không hiểu được"
+msgstr "chỉ mục dùng phần mở rộng %.4s, cái mà chúng tôi không hiểu được"
 
 #, c-format
 msgid "ignoring %.4s extension"
-msgstr "đang lờ đi phần mở rộng %.4s"
+msgstr "đang bỏ qua phần mở rộng %.4s"
 
 #, c-format
 msgid "unknown index entry format 0x%08x"
-msgstr "không hiểu định dạng mục lục 0x%08x"
+msgstr "không hiểu định dạng chỉ mục 0x%08x"
 
 #, c-format
 msgid "malformed name field in the index, near path '%s'"
-msgstr "trường tên sai sạng trong mục lục, gần đường dẫn “%s”"
+msgstr "trường tên sai sạng trong chỉ mục, gần đường dẫn '%s'"
 
 msgid "unordered stage entries in index"
-msgstr "các mục tin stage không đúng thứ tự trong mục lục"
+msgstr "các mục tin stage không đúng thứ tự trong chỉ mục"
 
 #, c-format
 msgid "multiple stage entries for merged file '%s'"
-msgstr "nhiều mục stage cho tập tin hòa trộn “%s”"
+msgstr "nhiều mục stage cho tập tin hòa trộn '%s'"
 
 #, c-format
 msgid "unordered stage entries for '%s'"
-msgstr "các mục tin stage không đúng thứ tự cho “%s”"
+msgstr "các mục tin stage không đúng thứ tự cho '%s'"
 
 #, c-format
 msgid "unable to create load_cache_entries thread: %s"
@@ -17900,19 +18729,19 @@ msgstr "không thể gia nhập tuyến load_cache_entries: %s"
 
 #, c-format
 msgid "%s: index file open failed"
-msgstr "%s: mở tập tin mục lục gặp lỗi"
+msgstr "%s: mở tập tin chỉ mục gặp lỗi"
 
 #, c-format
 msgid "%s: cannot stat the open index"
-msgstr "%s: không thể lấy thống kê bảng mục lục đã mở"
+msgstr "%s: không thể stat chỉ mục đã mở"
 
 #, c-format
 msgid "%s: index file smaller than expected"
-msgstr "%s: tập tin mục lục nhỏ hơn mong đợi"
+msgstr "%s: tập tin chỉ mục nhỏ hơn mong đợi"
 
 #, c-format
 msgid "%s: unable to map index file%s"
-msgstr "%s: không thể ánh xạ tập tin mục lục%s"
+msgstr "%s: không thể ánh xạ tập tin chỉ mục%s"
 
 #, c-format
 msgid "unable to create load_index_extensions thread: %s"
@@ -17924,46 +18753,50 @@ msgstr "không thể gia nhập tuyến load_index_extensions: %s"
 
 #, c-format
 msgid "could not freshen shared index '%s'"
-msgstr "không thể làm tươi mới mục lục đã chia sẻ “%s”"
+msgstr "không thể làm tươi mới chỉ mục đã chia sẻ '%s'"
 
 #, c-format
 msgid "broken index, expect %s in %s, got %s"
-msgstr "mục lục bị hỏng, cần %s trong %s, nhưng lại nhận được %s"
+msgstr "chỉ mục bị hỏng, cần %s trong %s, nhưng lại có %s"
 
 msgid "cannot write split index for a sparse index"
-msgstr "không thể ghi mục lục chia tách cho \"sparse index\""
+msgstr "không thể ghi chỉ mục chia tách cho \"sparse index\""
 
 msgid "failed to convert to a sparse-index"
 msgstr "gặp lỗi khi chuyển đổi sang \"sparse-index\""
 
-#, c-format
-msgid "could not stat '%s'"
-msgstr "không thể lấy thông tin thống kê về “%s”"
-
 #, c-format
 msgid "unable to open git dir: %s"
 msgstr "không thể mở thư mục git: %s"
 
 #, c-format
 msgid "unable to unlink: %s"
-msgstr "không thể bỏ liên kết (unlink): “%s”"
+msgstr "không thể bỏ liên kết (unlink): '%s'"
 
 #, c-format
 msgid "cannot fix permission bits on '%s'"
-msgstr "không thể sửa các bít phân quyền trên “%s”"
+msgstr "không thể sửa các bít phân quyền trên '%s'"
 
 #, c-format
 msgid "%s: cannot drop to stage #0"
 msgstr "%s: không thể xóa bỏ stage #0"
 
+#, c-format
+msgid "unexpected diff status %c"
+msgstr "trạng thái lệnh diff không như mong đợi %c"
+
+#, c-format
+msgid "remove '%s'\n"
+msgstr "gỡ bỏ '%s'\n"
+
 msgid ""
 "You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
 "continue'.\n"
 "Or you can abort the rebase with 'git rebase --abort'.\n"
 msgstr ""
-"Bạn có thể sửa nó bằng “git rebase --edit-todo” và sau đó chạy “git rebase --"
-"continue.\n"
-"Hoặc là bạn có thể bãi bỏ việc cải tổ bằng “git rebase --abort”.\n"
+"Bạn có thể sửa nó bằng 'git rebase --edit-todo' và sau đó chạy 'git rebase --"
+"continue'.\n"
+"Hoặc là bạn có thể huỷ bỏ việc cải tổ bằng 'git rebase --abort'.\n"
 
 #, c-format
 msgid ""
@@ -17988,9 +18821,12 @@ msgid ""
 "l, label <label> = label current HEAD with a name\n"
 "t, reset <label> = reset HEAD to a label\n"
 "m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n"
-".       create a merge commit using the original merge commit's\n"
-".       message (or the oneline, if no original merge commit was\n"
-".       specified); use -c <commit> to reword the commit message\n"
+"        create a merge commit using the original merge commit's\n"
+"        message (or the oneline, if no original merge commit was\n"
+"        specified); use -c <commit> to reword the commit message\n"
+"u, update-ref <ref> = track a placeholder for the <ref> to be updated\n"
+"                      to this position in the new commits. The <ref> is\n"
+"                      updated at the end of the rebase\n"
 "\n"
 "These lines can be re-ordered; they are executed from top to bottom.\n"
 msgstr ""
@@ -17998,7 +18834,7 @@ msgstr ""
 "Các lệnh:\n"
 "p, pick <commit> = dùng lần chuyển giao\n"
 "r, reword <commit> = dùng lần chuyển giao, nhưng sửa lại phần chú thích\n"
-"e, edit <commit> = dùng lần chuyển giao, nhưng dừng lại để tu bổ (amend)\n"
+"e, edit <commit> = dùng lần chuyển giao, nhưng dừng lại để tu bổ\n"
 "s, squash <commit> = dùng lần chuyển giao, nhưng trộn vào lần chuyển giao kế "
 "trước\n"
 "f, fixup [-C | -c] <commit> = giống như \"squash\", nhưng chỉ giữ lại phần "
@@ -18009,33 +18845,35 @@ msgstr ""
 "nhưng\n"
 "                   mở trình biên soạn\n"
 "x, exec <commit> = chạy lệnh (phần còn lại của dòng) dùng hệ vỏ\n"
-"b, break = dừng tại đây (tiếp tục cải tổ sau này bằng git rebase --"
-"continue)\n"
+"b, break = dừng tại đây (tiếp tục cải tổ sau này bằng 'git rebase --"
+"continue')\n"
 "d, drop <commit> = xóa bỏ lần chuyển giao\n"
-"l, label <label> = đánh nhãn HEAD hiện tại bằng một tên\n"
-"t, reset <label> = đặt lại HEAD thành một nhãn\n"
+"l, label <label> = đánh tên nhãn HEAD hiện tại\n"
+"t, reset <label> = đặt lại HEAD về một nhãn\n"
 "m, merge [-C <commit> | -c <commit>] <nhãn> [# <một_dòng>]\n"
 ".       tạo một lần chuyển giao hòa trộn sử dụng chú thích của lần chuyển\n"
 ".       giao hòa trộn gốc (hoặc một_dòng, nếu không chỉ định lần chuyển giao "
 "hòa\n"
 ".       trộn gốc). Dùng -c <commit> để reword chú thích của lần chuyển "
 "giao.\n"
+"u, update-ref <ref> = track a placeholder for the <ref> to be updated\n"
+"                      to this position in the new commits. The <ref> is\n"
+"                      updated at the end of the rebase\n"
 "\n"
-"Những dòng này có thể được thay đổi thứ tự; chúng chạy từ trên đỉnh xuống "
-"dưới đáy.\n"
+"Những dòng này có thể được thay đổi thứ tự; chúng được thực thi từ trên "
+"xuống dưới.\n"
 
 #, c-format
 msgid "Rebase %s onto %s (%d command)"
 msgid_plural "Rebase %s onto %s (%d commands)"
-msgstr[0] "Cải tổ %s vào %s (%d lệnh )"
+msgstr[0] "Cải tổ %s vào %s (%d lệnh)"
 
 msgid ""
 "\n"
 "Do not remove any line. Use 'drop' explicitly to remove a commit.\n"
 msgstr ""
 "\n"
-"Đừng xóa bất kỳ dòng nào. Dùng “drop” một cách rõ ràng để xóa bỏ một lần "
-"chuyển giao.\n"
+"Đừng xóa bất kỳ dòng nào. Dùng 'drop' để xóa bỏ một lần chuyển giao.\n"
 
 msgid ""
 "\n"
@@ -18063,12 +18901,12 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Tuy nhiên, nếu bạn xóa bỏ mọi thứ, việc cải tổ sẽ bị bãi bỏ.\n"
+"Tuy nhiên, nếu bạn xóa bỏ mọi thứ, việc cải tổ sẽ bị huỷ bỏ.\n"
 "\n"
 
 #, c-format
 msgid "could not write '%s'."
-msgstr "không thể ghi “%s”."
+msgstr "không thể ghi '%s'."
 
 #, c-format
 msgid ""
@@ -18090,29 +18928,37 @@ msgstr ""
 "Để tránh thông báo này, dùng \"drop\" một cách rõ ràng để xóa bỏ một lần "
 "chuyển giao.\n"
 "\n"
-"Dùng “git config rebase.missingCommitsCheck” để thay đổi mức độ của cảnh "
+"Dùng 'git config rebase.missingCommitsCheck' để thay đổi mức độ của cảnh "
 "báo.\n"
 "Cánh ứng xử có thể là: ignore, warn, error.\n"
 "\n"
 
 #, c-format
 msgid "%s: 'preserve' superseded by 'merges'"
-msgstr "%s: “preserve” bị cấm bởi “merges”"
+msgstr "%s: 'preserve' bị thay bởi 'merges'"
 
 msgid "gone"
-msgstr "đã ra đi"
+msgstr "đã xoá"
 
 #, c-format
 msgid "ahead %d"
-msgstr "phía trước %d"
+msgstr "đứng trước %d"
 
 #, c-format
 msgid "behind %d"
-msgstr "Ä\91ằng sau %d"
+msgstr "Ä\91ứng sau %d"
 
 #, c-format
 msgid "ahead %d, behind %d"
-msgstr "trước %d, sau %d"
+msgstr "đứng trước %d, đứng sau %d"
+
+#, c-format
+msgid "%%(%.*s) does not take arguments"
+msgstr "%%(%.*s) không nhận các đối số"
+
+#, c-format
+msgid "unrecognized %%(%.*s) argument: %s"
+msgstr "đối số không được thừa nhận %%(%.*s): %s"
 
 #, c-format
 msgid "expected format: %%(color:<color>)"
@@ -18131,40 +18977,36 @@ msgid "Integer value expected refname:rstrip=%s"
 msgstr "Giá trị nguyên cần tên tham chiếu:rstrip=%s"
 
 #, c-format
-msgid "unrecognized %%(%s) argument: %s"
-msgstr "đối số không được thừa nhận %%(%s): %s"
+msgid "expected %%(trailers:key=<value>)"
+msgstr "cần %%(trailers:key=<giá trị>)"
 
 #, c-format
-msgid "%%(objecttype) does not take arguments"
-msgstr "%%(objecttype) không nhận các đối số"
+msgid "unknown %%(trailers) argument: %s"
+msgstr "không hiểu tham số %%(trailers): %s"
 
 #, c-format
-msgid "%%(deltabase) does not take arguments"
-msgstr "%%(deltabase) không nhận các đối số"
+msgid "positive value expected contents:lines=%s"
+msgstr "cần nội dung mang giá trị dương:lines=%s"
 
 #, c-format
-msgid "%%(body) does not take arguments"
-msgstr "%%(body) không nhận các đối số"
+msgid "argument expected for %s"
+msgstr "cần đối số cho %s"
 
 #, c-format
-msgid "expected %%(trailers:key=<value>)"
-msgstr "cần %%(trailers:key=<giá trị>)"
+msgid "positive value expected %s=%s"
+msgstr "cần giá trị dương %s=%s"
 
 #, c-format
-msgid "unknown %%(trailers) argument: %s"
-msgstr "không hiểu tham số %%(trailers): %s"
+msgid "cannot fully parse %s=%s"
+msgstr "không hiểu %s=%s"
 
 #, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "cần nội dung mang giá trị dương:lines=%s"
+msgid "value expected %s="
+msgstr "cần %s="
 
 #, c-format
 msgid "positive value expected '%s' in %%(%s)"
-msgstr "cần giá trị dương “%s” trong %%(%s)"
-
-#, c-format
-msgid "unrecognized email option: %s"
-msgstr "không nhận ra tùy chọn thư điện tử: “%s”"
+msgstr "cần giá trị dương '%s' trong %%(%s)"
 
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
@@ -18178,17 +19020,21 @@ msgstr "vị trí không được thừa nhận:%s"
 msgid "unrecognized width:%s"
 msgstr "chiều rộng không được thừa nhận:%s"
 
+#, c-format
+msgid "unrecognized %%(%s) argument: %s"
+msgstr "đối số không được thừa nhận %%(%s): %s"
+
 #, c-format
 msgid "positive width expected with the %%(align) atom"
-msgstr "cần giá trị độ rộng dương với nguyên tử %%(align)"
+msgstr "cần giá trị độ rộng dương với atom %%(align)"
 
 #, c-format
-msgid "%%(rest) does not take arguments"
-msgstr "%%(rest) không nhận các đối số"
+msgid "expected format: %%(ahead-behind:<committish>)"
+msgstr "cần định dạng: %%(ahead-behind:<committish>)"
 
 #, c-format
 msgid "malformed field name: %.*s"
-msgstr "tên trường dị hình: %.*s"
+msgstr "tên trường sai quy cách: %.*s"
 
 #, c-format
 msgid "unknown field name: %.*s"
@@ -18198,32 +19044,32 @@ msgstr "không hiểu tên trường: %.*s"
 msgid ""
 "not a git repository, but the field '%.*s' requires access to object data"
 msgstr ""
-"không phải là một kho git, nhưng trường “%.*s” yêu cầu truy cập vào dữ liệu "
+"không phải là một kho git, nhưng trường '%.*s' yêu cầu truy cập vào dữ liệu "
 "đối tượng"
 
 #, c-format
 msgid "format: %%(%s) atom used without a %%(%s) atom"
-msgstr "định dạng: nguyên tử %%(%s) được dùng mà không có nguyên tử %%(%s)"
+msgstr "định dạng: atom %%(%s) được dùng mà không có atom %%(%s)"
 
 #, c-format
 msgid "format: %%(then) atom used more than once"
-msgstr "định dạng: nguyên tử %%(then) được dùng nhiều hơn một lần"
+msgstr "định dạng: atom %%(then) được dùng nhiều hơn một lần"
 
 #, c-format
 msgid "format: %%(then) atom used after %%(else)"
-msgstr "định dạng: nguyên tử %%(then) được dùng sau %%(else)"
+msgstr "định dạng: atom %%(then) được dùng sau %%(else)"
 
 #, c-format
 msgid "format: %%(else) atom used more than once"
-msgstr "định dạng: nguyên tử %%(else) được dùng nhiều hơn một lần"
+msgstr "định dạng: atom %%(else) được dùng nhiều hơn một lần"
 
 #, c-format
 msgid "format: %%(end) atom used without corresponding atom"
-msgstr "định dạng: nguyên tử %%(end) được dùng mà không có nguyên tử tương ứng"
+msgstr "định dạng: atom %%(end) được dùng mà không có atom tương ứng"
 
 #, c-format
 msgid "malformed format string %s"
-msgstr "chuỗi định dạng dị hình %s"
+msgstr "chuỗi định dạng sai quy cách %s"
 
 #, c-format
 msgid "this command reject atom %%(%.*s)"
@@ -18233,6 +19079,9 @@ msgstr "lệnh này từ chối atom %%(%.*s)"
 msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
 msgstr "--format=%.*s không thể được dùng với --python, --shell, --tcl"
 
+msgid "failed to run 'describe'"
+msgstr "gặp lỗi khi chạy 'describe'"
+
 #, c-format
 msgid "(no branch, rebasing %s)"
 msgstr "(không nhánh, đang cải tổ %s)"
@@ -18266,27 +19115,27 @@ msgstr "parse_object_buffer gặp lỗi trên %s cho %s"
 
 #, c-format
 msgid "malformed object at '%s'"
-msgstr "đối tượng dị hình tại “%s”"
+msgstr "đối tượng sai quy cách tại '%s'"
 
 #, c-format
 msgid "ignoring ref with broken name %s"
-msgstr "đang lờ đi tham chiếu với tên hỏng %s"
+msgstr "đang bỏ qua tham chiếu với tên hỏng %s"
 
 #, c-format
 msgid "ignoring broken ref %s"
-msgstr "đang lờ đi tham chiếu hỏng %s"
+msgstr "đang bỏ qua tham chiếu hỏng %s"
 
 #, c-format
 msgid "format: %%(end) atom missing"
-msgstr "định dạng: thiếu nguyên tử %%(end)"
+msgstr "định dạng: thiếu atom %%(end)"
 
 #, c-format
 msgid "malformed object name %s"
-msgstr "tên đối tượng dị hình %s"
+msgstr "tên đối tượng sai quy cách %s"
 
 #, c-format
 msgid "option `%s' must point to a commit"
-msgstr "tùy chọn “%s” phải chỉ đến một lần chuyển giao"
+msgstr "tùy chọn '%s' phải chỉ đến một lần chuyển giao"
 
 msgid "key"
 msgstr "khóa"
@@ -18294,17 +19143,20 @@ msgstr "khóa"
 msgid "field name to sort on"
 msgstr "tên trường cần sắp xếp"
 
+msgid "exclude refs which match pattern"
+msgstr "không bao gồm các tham chiếu khớp với mẫu"
+
 #, c-format
 msgid "not a reflog: %s"
 msgstr "không phải một reflog: %s"
 
 #, c-format
 msgid "no reflog for '%s'"
-msgstr "không reflog cho “%s”"
+msgstr "không reflog cho '%s'"
 
 #, c-format
 msgid "%s does not point to a valid object!"
-msgstr "“%s” không chỉ đến một lần chuyển giao hợp lệ nào cả!"
+msgstr "'%s' không chỉ đến một lần chuyển giao hợp lệ nào cả!"
 
 #, c-format
 msgid ""
@@ -18319,20 +19171,20 @@ msgid ""
 "\n"
 "\tgit branch -m <name>\n"
 msgstr ""
-"Sử dụng “%s” làm tên cho nhánh ban đầu. Tên nhánh mặc định này\n"
+"Sử dụng '%s' làm tên cho nhánh ban đầu. Tên nhánh mặc định này\n"
 "có thể thay đổi. Để cấu hình tên nhánh khởi đầu sử dụng trong tất cả\n"
 "kho lưu trữ mới của bạn, cái mà sẽ ngăn chặn cảnh báo này, gọi lệnh:\n"
 "\n"
 "\tgit config --global init.defaultBranch <tên>\n"
 "\n"
-"Tên thường được chọn thay cho “master” là “main”, “trunk” và\n"
-"“development”. Nhánh vừa tạo có thể được đổi tên thông qua lệnh:\n"
+"Tên thường được chọn thay cho 'master' là 'main', 'trunk' và\n"
+"'development'. Nhánh vừa tạo có thể được đổi tên thông qua lệnh:\n"
 "\n"
 "\tgit branch -m <tên>\n"
 
 #, c-format
 msgid "could not retrieve `%s`"
-msgstr "không thể lấy về “%s”"
+msgstr "không thể lấy về '%s'"
 
 #, c-format
 msgid "invalid branch name: %s = %s"
@@ -18340,7 +19192,7 @@ msgstr "tên nhánh không hợp lệ: %s = %s"
 
 #, c-format
 msgid "ignoring dangling symref %s"
-msgstr "đang lờ đi tham chiếu mềm thừa %s"
+msgstr "đang bỏ qua tham chiếu mềm thừa %s"
 
 #, c-format
 msgid "log for ref %s has gap after %s"
@@ -18356,33 +19208,29 @@ msgstr "nhật ký cho %s trống rỗng"
 
 #, c-format
 msgid "refusing to update ref with bad name '%s'"
-msgstr "từ chối cập nhật tham chiếu với tên sai “%s”"
+msgstr "từ chối cập nhật tham chiếu với tên sai '%s'"
 
 #, c-format
 msgid "update_ref failed for ref '%s': %s"
-msgstr "update_ref bị lỗi cho ref “%s”: %s"
+msgstr "update_ref bị lỗi cho ref '%s': %s"
 
 #, c-format
 msgid "multiple updates for ref '%s' not allowed"
-msgstr "không cho phép đa cập nhật cho tham chiếu “%s”"
+msgstr "không cho phép đa cập nhật cho tham chiếu '%s'"
 
 msgid "ref updates forbidden inside quarantine environment"
 msgstr "cập nhật tham chiếu bị cấm trong môi trường kiểm tra"
 
 msgid "ref updates aborted by hook"
-msgstr "các cập nhật tham chiếu bị bãi bỏ bởi móc"
+msgstr "các cập nhật tham chiếu bị huỷ bỏ bởi móc"
 
 #, c-format
 msgid "'%s' exists; cannot create '%s'"
-msgstr "“%s” sẵn có; không thể tạo “%s”"
+msgstr "'%s' sẵn có; không thể tạo '%s'"
 
 #, c-format
 msgid "cannot process '%s' and '%s' at the same time"
-msgstr "không thể xử lý “%s” và “%s” cùng một lúc"
-
-#, c-format
-msgid "could not remove reference %s"
-msgstr "không thể gỡ bỏ tham chiếu: %s"
+msgstr "không thể xử lý '%s' và '%s' cùng một lúc"
 
 #, c-format
 msgid "could not delete reference %s: %s"
@@ -18392,13 +19240,84 @@ msgstr "không thể xóa bỏ tham chiếu %s: %s"
 msgid "could not delete references: %s"
 msgstr "không thể xóa bỏ tham chiếu: %s"
 
+#, c-format
+msgid "refname is dangerous: %s"
+msgstr "tên tham chiếu không an toàn: %s"
+
+#, c-format
+msgid "trying to write ref '%s' with nonexistent object %s"
+msgstr "thử ghi tham chiếu '%s' tới đối tượng %s không tồn tại"
+
+#, c-format
+msgid "trying to write non-commit object %s to branch '%s'"
+msgstr "thử ghi đối tượng không phải chuyển giao %s tới nhánh '%s'"
+
+#, c-format
+msgid ""
+"multiple updates for 'HEAD' (including one via its referent '%s') are not "
+"allowed"
+msgstr ""
+"không cho phép đa cập nhật cho tham chiếu HEAD (bao gồm cả thông qua tham "
+"chiếu '%s')"
+
+#, c-format
+msgid "cannot lock ref '%s': unable to resolve reference '%s'"
+msgstr "không thể khoá tham chiếu '%s': không thể phân giải tham chiếu '%s'"
+
+#, c-format
+msgid "cannot lock ref '%s': error reading reference"
+msgstr "không thể khoá tham chiếu '%s': lỗi khi đọc tham chiếu"
+
+#, c-format
+msgid ""
+"multiple updates for '%s' (including one via symref '%s') are not allowed"
+msgstr ""
+"không cho phép đa cập nhật cho tham chiếu '%s' (bao gồm cả thông qua tham "
+"chiếu biểu trưng '%s')"
+
+#, c-format
+msgid "cannot lock ref '%s': reference already exists"
+msgstr "không thể lock tham chiếu '%s': tham chiếu đã tồn tại"
+
+#, c-format
+msgid "cannot lock ref '%s': reference is missing but expected %s"
+msgstr "không thể lock tham chiếu '%s': không tồn tại tham chiếu nhưng cần %s"
+
+#, c-format
+msgid "cannot lock ref '%s': is at %s but expected %s"
+msgstr "không thể lock tham chiếu '%s': đang ở %s nhưng cần %s"
+
+#, c-format
+msgid "reftable: transaction prepare: %s"
+msgstr "reftable: chuẩn bị chuyển giao: %s"
+
+#, c-format
+msgid "reftable: transaction failure: %s"
+msgstr "reftable: chuyển giao thất bại: %s"
+
+#, c-format
+msgid "unable to compact stack: %s"
+msgstr "không thể nén stack: %s"
+
+#, c-format
+msgid "refname %s not found"
+msgstr "không tìm thấy tên tham chiếu %s"
+
+#, c-format
+msgid "refname %s is a symbolic ref, copying it is not supported"
+msgstr "tên tham chiếu %s là tham chiếu biểu trưng, không hỗ trợ sao chép"
+
 #, c-format
 msgid "invalid refspec '%s'"
-msgstr "refspec không hợp lệ “%s”"
+msgstr "refspec không hợp lệ '%s'"
 
 #, c-format
 msgid "invalid quoting in push-option value: '%s'"
-msgstr "sai trích dẫn trong giá trị push-option :“%s”"
+msgstr "sai trích dẫn trong giá trị push-option :'%s'"
+
+#, c-format
+msgid "unknown value for object-format: %s"
+msgstr "không hiểu giá trị cho object-format: %s"
 
 #, c-format
 msgid "%sinfo/refs not valid: is this a git repository?"
@@ -18406,38 +19325,37 @@ msgstr "%sinfo/refs không hợp lệ: đây có phải là một kho git?"
 
 msgid "invalid server response; expected service, got flush packet"
 msgstr ""
-"đáp ứng từ máy phục vụ không hợp lệ; cần dịch vụ, nhưng lại nhận được gói "
-"flush"
+"phản hồi từ máy chủ không hợp lệ; cần dịch vụ, nhưng lại nhận được gói flush"
 
 #, c-format
 msgid "invalid server response; got '%s'"
-msgstr "trả về của máy phục vụ không hợp lệ; nhận được %s"
+msgstr "phản hồi từ máy chủ không hợp lệ; nhận được %s"
 
 #, c-format
 msgid "repository '%s' not found"
-msgstr "không tìm thấy kho “%s”"
+msgstr "không tìm thấy kho '%s'"
 
 #, c-format
 msgid "Authentication failed for '%s'"
-msgstr "Xác thực gặp lỗi cho “%s”"
+msgstr "Xác thực gặp lỗi cho '%s'"
 
 #, c-format
 msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
-msgstr "không thể truy cập “%s” với cấu hình http.pinnedPubkey: %s"
+msgstr "không thể truy cập '%s' với cấu hình http.pinnedPubkey: %s"
 
 #, c-format
 msgid "unable to access '%s': %s"
-msgstr "không thể truy cập “%s”: %s"
+msgstr "không thể truy cập '%s': %s"
 
 #, c-format
 msgid "redirecting to %s"
 msgstr "chuyển hướng đến %s"
 
 msgid "shouldn't have EOF when not gentle on EOF"
-msgstr "không nên có EOF khi không gentle trên EOF"
+msgstr "không nên có EOF khi không thể xử lý EOF"
 
 msgid "remote server sent unexpected response end packet"
-msgstr "máy phục vụ gửi gói kết thúc không cần"
+msgstr "máy chủ gửi gói kết thúc bất thường"
 
 msgid "unable to rewind rpc post data - try increasing http.postBuffer"
 msgstr "không thể tua lại dữ liệu post rpc - thử tăng http.postBuffer"
@@ -18454,15 +19372,15 @@ msgid "RPC failed; %s"
 msgstr "RPC gặp lỗi; %s"
 
 msgid "cannot handle pushes this big"
-msgstr "không thể xử lý đẩy cái lớn này"
+msgstr "không thể xử lý đẩy lớn cỡ này"
 
 #, c-format
 msgid "cannot deflate request; zlib deflate error %d"
-msgstr "không thể giải nén yêu cầu; có lỗi khi giải nén của zlib %d"
+msgstr "không thể giải nén yêu cầu; lỗi zlib deflate %d"
 
 #, c-format
 msgid "cannot deflate request; zlib end error %d"
-msgstr "không thể giải nén yêu cầu; có lỗi ở cuối %d"
+msgstr "không thể giải nén yêu cầu; lỗi zlib end %d"
 
 #, c-format
 msgid "%d bytes of length header were received"
@@ -18483,12 +19401,19 @@ msgstr "không thể lấy về bằng sha1 thông qua smart http"
 
 #, c-format
 msgid "protocol error: expected sha/ref, got '%s'"
-msgstr "lỗi giao thức: cần sha/ref, nhưng lại nhận được “%s”"
+msgstr "lỗi giao thức: cần sha/ref, nhưng lại nhận được '%s'"
 
 #, c-format
 msgid "http transport does not support %s"
 msgstr "vận chuyển http không hỗ trợ %s"
 
+msgid "protocol error: expected '<url> <path>', missing space"
+msgstr "lỗi giao thức: cần '<url> <path>', thiếu dấu cách"
+
+#, c-format
+msgid "failed to download file at URL '%s'"
+msgstr "gặp lỗi khi tải tập tin tại URL '%s'"
+
 msgid "git-http-push failed"
 msgstr "git-http-push gặp lỗi"
 
@@ -18503,11 +19428,11 @@ msgstr "remote-curl: đã cố gắng fetch mà không có kho nội bộ"
 
 #, c-format
 msgid "remote-curl: unknown command '%s' from git"
-msgstr "remote-curl: không hiểu lệnh “%s” từ git"
+msgstr "remote-curl: không hiểu lệnh '%s' từ git"
 
 #, c-format
 msgid "config remote shorthand cannot begin with '/': %s"
-msgstr "cấu hình viết tắt máy chủ không thể bắt đầu bằng “/”: %s"
+msgstr "cấu hình viết tắt máy chủ không thể bắt đầu bằng '/': %s"
 
 msgid "more than one receivepack given, using the first"
 msgstr "đã đưa ra nhiều hơn một gói nhận về, đang sử dụng cái đầu tiên"
@@ -18537,19 +19462,19 @@ msgstr "%s theo dõi cả %s và %s"
 
 #, c-format
 msgid "key '%s' of pattern had no '*'"
-msgstr "khóa “%s” của mẫu k có “*”"
+msgstr "khóa '%s' của mẫu k có '*'"
 
 #, c-format
 msgid "value '%s' of pattern has no '*'"
-msgstr "giá trị “%s” của mẫu k có “*”"
+msgstr "giá trị '%s' của mẫu k có '*'"
 
 #, c-format
 msgid "src refspec %s does not match any"
-msgstr "refspec %s nguồn không khớp bất kỳ cái gì"
+msgstr "refspec (đặc tả tham chiếu) nguồn %s không khớp bất kỳ cái gì"
 
 #, c-format
 msgid "src refspec %s matches more than one"
-msgstr "refspec %s nguồn khớp nhiều hơn một"
+msgstr "refspec (đặc tả tham chiếu) nguồn %s khớp nhiều hơn một"
 
 #. TRANSLATORS: "matches '%s'%" is the <dst> part of "git push
 #. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
@@ -18567,17 +19492,16 @@ msgid ""
 "\n"
 "Neither worked, so we gave up. You must fully qualify the ref."
 msgstr ""
-"Đích bạn đã cung cấp không phải tên tham chiếu đầy đủ (tức là\n"
-"bắt đầu bằng \"refs/\"). Chúng tôi đã cố suy luận rằng ý của bạn là:\n"
+"Đích bạn đã cung cấp không phải tên tham chiếu đầy đủ\n"
+"(bắt đầu bằng \"refs/\"). Chúng tôi đã thử đoán ý của bạn theo hai cách:\n"
 "\n"
-"- Tìm kiếm một tham chiếu mà nó khớp “%s” bên phía máy chủ.\n"
-"- Kiểm tra xem <src> được đẩy lên (“%s”)\n"
-"  là một tham chiếu trong \"refs/{heads,tags}/\". Nếu thế chúng tôi thêm một "
-"tiền tố\n"
-"  refs/{heads,tags}/ tương ứng bên phía máy chủ.\n"
+"- Tìm kiếm một tham chiếu khớp '%s' bên phía máy chủ.\n"
+"- Kiểm tra xem <nguồn> được đẩy lên ('%s')\n"
+"  có là một tham chiếu trong \"refs/{heads,tags}/\", và nếu vậy thêm\n"
+"  tiền tố refs/{heads,tags}/ tương ứng bên phía máy chủ.\n"
 "\n"
-"Nếu cả hai là không thể, thì chúng tôi cũng chịu thua. Bạn phải dùng tham "
-"chiếu dạng đầy đủ."
+"Vì cả hai đều không thể, chúng tôi chịu. Bạn phải dùng tham chiếu dạng đầy "
+"đủ."
 
 #, c-format
 msgid ""
@@ -18585,9 +19509,9 @@ msgid ""
 "Did you mean to create a new branch by pushing to\n"
 "'%s:refs/heads/%s'?"
 msgstr ""
-"Phần <src> của đặc tả đường dẫn là một đối tượng lần chuyển giao.\n"
+"Phần <src> của đặc tả tham chiếu là một đối tượng lần chuyển giao.\n"
 "Có phải ý bạn là một tạo một nhánh mới bằng cách đẩy lên\n"
-"“%s:refs/heads/%s”?"
+"'%s:refs/heads/%s'?"
 
 #, c-format
 msgid ""
@@ -18595,9 +19519,9 @@ msgid ""
 "Did you mean to create a new tag by pushing to\n"
 "'%s:refs/tags/%s'?"
 msgstr ""
-"Phần <src> của đặc tả đường dẫn là một đối tượng thẻ.\n"
+"Phần <nguồn> của đặc tả tham chiếu là một đối tượng thẻ.\n"
 "Có phải ý bạn là một tạo một thẻ mới bằng cách đẩy lên\n"
-"“%s:refs/tags/%s”?"
+"'%s:refs/tags/%s'?"
 
 #, c-format
 msgid ""
@@ -18605,9 +19529,9 @@ msgid ""
 "Did you mean to tag a new tree by pushing to\n"
 "'%s:refs/tags/%s'?"
 msgstr ""
-"Phần <src> của đặc tả đường dẫn là một đối tượng cây.\n"
+"Phần <nguồn> của đặc tả tham chiếu là một đối tượng cây.\n"
 "Có phải ý bạn là một tạo một cây mới bằng cách đẩy lên\n"
-"“%s:refs/tags/%s”?"
+"'%s:refs/tags/%s'?"
 
 #, c-format
 msgid ""
@@ -18615,17 +19539,17 @@ msgid ""
 "Did you mean to tag a new blob by pushing to\n"
 "'%s:refs/tags/%s'?"
 msgstr ""
-"Phần <src> của đặc tả đường dẫn là một đối tượng blob.\n"
+"Phần <nguồn> của đặc tả tham chiếu là một đối tượng blob.\n"
 "Có phải ý bạn là một tạo một blob mới bằng cách đẩy lên\n"
-"“%s:refs/tags/%s”?"
+"'%s:refs/tags/%s'?"
 
 #, c-format
 msgid "%s cannot be resolved to branch"
-msgstr "“%s” không thể được phân giải thành nhánh"
+msgstr "'%s' không thể được phân giải thành nhánh"
 
 #, c-format
 msgid "unable to delete '%s': remote ref does not exist"
-msgstr "không thể xóa “%s”: tham chiếu trên máy chủ không tồn tại"
+msgstr "không thể xóa '%s': tham chiếu trên máy chủ không tồn tại"
 
 #, c-format
 msgid "dst refspec %s matches more than one"
@@ -18640,34 +19564,34 @@ msgstr "HEAD không chỉ đến một nhánh nào cả"
 
 #, c-format
 msgid "no such branch: '%s'"
-msgstr "không có nhánh nào như thế: “%s”"
+msgstr "không có nhánh nào như thế: '%s'"
 
 #, c-format
 msgid "no upstream configured for branch '%s'"
-msgstr "không có thượng nguồn được cấu hình cho nhánh “%s”"
+msgstr "không có thượng nguồn được cấu hình cho nhánh '%s'"
 
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr ""
-"nhánh thượng nguồn “%s” không được lưu lại như là một nhánh theo dõi máy chủ"
+"nhánh thượng nguồn '%s' không được lưu lại như là một nhánh theo dõi máy chủ"
 
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
-msgstr "đẩy lên đích “%s” trên máy chủ “%s” không có nhánh theo dõi nội bộ"
+msgstr "đẩy lên đích '%s' trên máy chủ '%s' không có nhánh theo dõi nội bộ"
 
 #, c-format
 msgid "branch '%s' has no remote for pushing"
-msgstr "nhánh “%s” không có máy chủ để đẩy lên"
+msgstr "nhánh '%s' không có máy chủ để đẩy lên"
 
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
-msgstr "đẩy refspecs cho “%s” không bao gồm “%s”"
+msgstr "đẩy refspecs cho '%s' không bao gồm '%s'"
 
 msgid "push has no destination (push.default is 'nothing')"
-msgstr "đẩy lên mà không có đích (push.default là “nothing”)"
+msgstr "đẩy lên mà không có đích (push.default là 'nothing')"
 
 msgid "cannot resolve 'simple' push to a single destination"
-msgstr "không thể phân giải đẩy “đơn giản” đến một đích đơn"
+msgstr "không thể phân giải đẩy 'đơn giản' đến một đích đơn"
 
 #, c-format
 msgid "couldn't find remote ref %s"
@@ -18675,23 +19599,23 @@ msgstr "không thể tìm thấy tham chiếu máy chủ %s"
 
 #, c-format
 msgid "* Ignoring funny ref '%s' locally"
-msgstr "* Đang bỏ qua tham chiếu thú vị nội bộ “%s”"
+msgstr "* Đang bỏ qua tham chiếu thú vị nội bộ '%s'"
 
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr ""
-"Nhánh của bạn dựa trên cơ sở là “%s”, nhưng trên thượng nguồn không còn.\n"
+"Nhánh của bạn dựa trên cơ sở là '%s', nhưng trên thượng nguồn không còn.\n"
 
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "   (dùng \" git branch --unset-upstream\" để sửa)\n"
 
 #, c-format
 msgid "Your branch is up to date with '%s'.\n"
-msgstr "Nhánh của bạn đã cập nhật với “%s”.\n"
+msgstr "Nhánh của bạn đã cập nhật với '%s'.\n"
 
 #, c-format
 msgid "Your branch and '%s' refer to different commits.\n"
-msgstr "Nhánh của bạn và “%s” tham chiếu đến các lần chuyển giao khác nhau.\n"
+msgstr "Nhánh của bạn và '%s' tham chiếu đến các lần chuyển giao khác nhau.\n"
 
 #, c-format
 msgid "  (use \"%s\" for details)\n"
@@ -18700,7 +19624,7 @@ msgstr "  (dùng \"%s\" để biết thêm chi tiết)\n"
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
-msgstr[0] "Nhánh của bạn đứng trước “%s” %d lần chuyển giao.\n"
+msgstr[0] "Nhánh của bạn đứng trước '%s' %d lần chuyển giao.\n"
 
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (dùng \"git push\" để xuất bản các lần chuyển giao nội bộ của bạn)\n"
@@ -18710,8 +19634,8 @@ msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
 "Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
 msgstr[0] ""
-"Nhánh của bạn đứng đằng sau “%s” %d lần chuyển giao, và có thể được chuyển-"
-"tiếp-nhanh.\n"
+"Nhánh của bạn đứng sau '%s' %d lần chuyển giao, và có thể được chuyển-tiếp-"
+"nhanh.\n"
 
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr "  (dùng \"git pull\" để cập nhật nhánh nội bộ của bạn)\n"
@@ -18724,22 +19648,21 @@ msgid_plural ""
 "Your branch and '%s' have diverged,\n"
 "and have %d and %d different commits each, respectively.\n"
 msgstr[0] ""
-"Nhánh của bạn và “%s” bị phân kỳ,\n"
-"và có %d và %d lần chuyển giao khác nhau cho từng cái,\n"
-"tương ứng với mỗi lần.\n"
+"Nhánh của bạn và '%s' bị phân kỳ,\n"
+"và tương ứng có %d và %d lần chuyển giao khác nhau cho từng nhánh.\n"
 
-msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
+msgid ""
+"  (use \"git pull\" if you want to integrate the remote branch with yours)\n"
 msgstr ""
-"  (dùng \"git pull\" để hòa trộn nhánh trên máy chủ vào trong nhánh của "
-"bạn)\n"
+"  (dùng \"git pull\" để hòa trộn nhánh trên máy chủ vào nhánh của bạn)\n"
 
 #, c-format
 msgid "cannot parse expected object name '%s'"
-msgstr "không thể phân tích tên đối tượng mong muốn “%s”"
+msgstr "không thể đọc tên đối tượng mong muốn '%s'"
 
 #, c-format
 msgid "cannot strip one component off url '%s'"
-msgstr "không thể cắt bỏ một thành phần ra khỏi “%s” url"
+msgstr "không thể cắt bỏ một thành phần ra khỏi '%s' url"
 
 #, c-format
 msgid "bad replace ref name: %s"
@@ -18761,65 +19684,61 @@ msgstr "không thể ghi bản ghi rerere"
 
 #, c-format
 msgid "there were errors while writing '%s' (%s)"
-msgstr "gặp lỗi đọc khi đang ghi “%s” (%s)"
+msgstr "gặp lỗi đọc khi đang ghi '%s' (%s)"
 
 #, c-format
 msgid "could not parse conflict hunks in '%s'"
-msgstr "không thể phân tích các mảnh xung đột trong “%s”"
+msgstr "không thể đọc các khúc xung đột trong '%s'"
 
 #, c-format
 msgid "failed utime() on '%s'"
-msgstr "gặp lỗi utime() trên “%s”"
+msgstr "gặp lỗi utime() trên '%s'"
 
 #, c-format
 msgid "writing '%s' failed"
-msgstr "gặp lỗi khi đang ghi “%s”"
+msgstr "gặp lỗi khi đang ghi '%s'"
 
 #, c-format
 msgid "Staged '%s' using previous resolution."
-msgstr "Đã tạm cất “%s” sử dụng cách phân giải kế trước."
+msgstr "Đã tạm cất '%s' sử dụng cách phân giải kế trước."
 
 #, c-format
 msgid "Recorded resolution for '%s'."
-msgstr "Cách giải quyết đã ghi lại cho “%s”."
+msgstr "Cách giải quyết đã ghi lại cho '%s'."
 
 #, c-format
 msgid "Resolved '%s' using previous resolution."
-msgstr "Đã phân giải giải “%s” sử dụng cách giải quyết kế trước."
+msgstr "Đã phân giải giải '%s' sử dụng cách giải quyết kế trước."
 
 #, c-format
 msgid "cannot unlink stray '%s'"
-msgstr "không thể unlink stray “%s”"
+msgstr "không thể unlink stray '%s'"
 
 #, c-format
 msgid "Recorded preimage for '%s'"
-msgstr "Preimage đã được ghi lại cho “%s”"
+msgstr "Preimage đã được ghi lại cho '%s'"
 
 #, c-format
 msgid "failed to update conflicted state in '%s'"
-msgstr "gặp lỗi khi chạy cập nhật trạng thái bị xung đột trong “%s”"
+msgstr "gặp lỗi khi chạy cập nhật trạng thái bị xung đột trong '%s'"
 
 #, c-format
 msgid "no remembered resolution for '%s'"
-msgstr "đừng nhó các giải quyết cho “%s”"
-
-#, c-format
-msgid "cannot unlink '%s'"
-msgstr "không thể unlink “%s”"
+msgstr "đừng nhó các giải quyết cho '%s'"
 
 #, c-format
 msgid "Updated preimage for '%s'"
-msgstr "Đã cập nhật preimage cho “%s”"
+msgstr "Đã cập nhật preimage cho '%s'"
 
 #, c-format
 msgid "Forgot resolution for '%s'\n"
-msgstr "Quên phân giải cho “%s”\n"
+msgstr "Quên phân giải cho '%s'\n"
 
 msgid "unable to open rr-cache directory"
 msgstr "không thể mở thư mục rr-cache"
 
 msgid "update the index with reused conflict resolution if possible"
-msgstr "cập nhật bảng mục lục với phân giải xung đột dùng lại nếu được"
+msgstr "cập nhật chỉ mục với phân giải xung đột dùng lại nếu được"
 
 msgid "could not determine HEAD revision"
 msgstr "không thể dò tìm điểm xét duyệt HEAD"
@@ -18828,15 +19747,45 @@ msgstr "không thể dò tìm điểm xét duyệt HEAD"
 msgid "failed to find tree of %s"
 msgstr "gặp lỗi khi tìm cây của %s"
 
+#, c-format
+msgid "unsupported section for hidden refs: %s"
+msgstr "không hỗ trợ mục cho tham chiếu ẩn: %s"
+
+msgid "--exclude-hidden= passed more than once"
+msgstr "--exclude-hidden= được dùng hơn một lần"
+
+#, c-format
+msgid "resolve-undo records `%s` which is missing"
+msgstr "resolve-undo ghi nhận '%s' bị thiếu"
+
+#, c-format
+msgid "%s exists but is a symbolic ref"
+msgstr "%s có tồn tại nhưng là tham chiếu biểu trưng"
+
+msgid ""
+"--merge requires one of the pseudorefs MERGE_HEAD, CHERRY_PICK_HEAD, "
+"REVERT_HEAD or REBASE_HEAD"
+msgstr ""
+"--merge yêu cầu tham chiếu ảo MERGE_HEAD, CHERRY_PICK_HEAD, REVERT_HEAD hoặc "
+"REBASE_HEAD"
+
+#, c-format
+msgid "could not get commit for --ancestry-path argument %s"
+msgstr "không tìm thấy lần chuyển giao ứng với đối số --ancestry-path %s"
+
 msgid "--unpacked=<packfile> no longer supported"
 msgstr "--unpacked=<packfile> không còn được hỗ trợ nữa"
 
+#, c-format
+msgid "invalid option '%s' in --stdin mode"
+msgstr "tùy chọn không hợp lệ '%s' trong chế độ --stdin"
+
 msgid "your current branch appears to be broken"
 msgstr "nhánh hiện tại của bạn có vẻ như bị hỏng"
 
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
-msgstr "nhánh hiện tại của bạn “%s” không có một lần chuyển giao nào cả"
+msgstr "nhánh hiện tại của bạn '%s' không có một lần chuyển giao nào cả"
 
 msgid "object filtering requires --objects"
 msgstr "lọc đối tượng yêu cầu --objects"
@@ -18848,173 +19797,376 @@ msgstr "-L vẫn chưa hỗ trợ định dạng khác biệt nào ngoài -p và
 msgid "cannot create async thread: %s"
 msgstr "không thể tạo tuyến trình async: %s"
 
-msgid "unexpected flush packet while reading remote unpack status"
-msgstr ""
-"gặp gói flush không cần trong khi đọc tình trạng giải nén gói trên máy chủ"
-
 #, c-format
-msgid "unable to parse remote unpack status: %s"
-msgstr "không thể phân tích tình trạng unpack máy chủ: %s"
+msgid "'%s' does not exist"
+msgstr "\"%s\" không tồn tại"
 
 #, c-format
-msgid "remote unpack failed: %s"
-msgstr "máy chủ gặp lỗi unpack: %s"
+msgid "could not switch to '%s'"
+msgstr "không thể chuyển đến '%s'"
 
-msgid "failed to sign the push certificate"
-msgstr "gặp lỗi khi ký chứng thực đẩy"
+msgid "need a working directory"
+msgstr "cần một thư mục làm việc"
 
-msgid "send-pack: unable to fork off fetch subprocess"
-msgstr "send-pack: không thể rẽ nhánh tuyến trình con fetch"
+msgid "Scalar enlistments require a worktree"
+msgstr "'Scalar enlistments' cần một cây làm việc"
 
-msgid "push negotiation failed; proceeding anyway with push"
-msgstr "đẩy đàm phán thất bại; vẫn tiếp tục xử lý bằng lệnh đẩy"
+#, c-format
+msgid "could not configure %s=%s"
+msgstr "không thể đóng cấu hình %s=%s"
 
-msgid "the receiving end does not support this repository's hash algorithm"
-msgstr "kết thúc nhận không hỗ trợ các tùy chọn của lệnh push"
+msgid "could not configure log.excludeDecoration"
+msgstr "không thể cấu hình log.excludeDecoration"
 
-msgid "the receiving end does not support --signed push"
-msgstr "kết thúc nhận không hỗ trợ đẩy --signed"
+msgid "could not add enlistment"
+msgstr "không thể thêm enlistment"
 
-msgid ""
-"not sending a push certificate since the receiving end does not support --"
-"signed push"
-msgstr ""
-"đừng gửi giấy chứng nhận đẩy trước khi kết thúc nhận không hỗ trợ đẩy --"
-"signed"
+msgid "could not set recommended config"
+msgstr "không thể đặt cấu hình đề nghị"
 
-msgid "the receiving end does not support --atomic push"
-msgstr "kết thúc nhận không hỗ trợ đẩy --atomic"
+msgid "could not turn on maintenance"
+msgstr "không thể bật chế độ bảo trì"
 
-msgid "the receiving end does not support push options"
-msgstr "kết thúc nhận không hỗ trợ các tùy chọn của lệnh push"
+msgid "could not start the FSMonitor daemon"
+msgstr "không thể khởi chạy tiến trình nền FSMonitor"
 
-#, c-format
-msgid "invalid commit message cleanup mode '%s'"
-msgstr "chế độ dọn dẹp ghi chú các lần chuyển giao không hợp lệ “%s”"
+msgid "could not turn off maintenance"
+msgstr "không thể tắt chế độ bảo trì"
+
+msgid "could not remove enlistment"
+msgstr "không thể bỏ enlistment"
 
 #, c-format
-msgid "could not delete '%s'"
-msgstr "không thể xóa bỏ “%s”"
+msgid "remote HEAD is not a branch: '%.*s'"
+msgstr "HEAD của máy chủ không phải một nhánh: '%.*s'"
 
-msgid "revert"
-msgstr "hoàn nguyên"
+msgid "failed to get default branch name from remote; using local default"
+msgstr "gặp lỗi khi lấy tên nhánh mặc định từ máy chủ; sử dụng mặc định nội bộ"
 
-msgid "cherry-pick"
-msgstr "cherry-pick"
+msgid "failed to get default branch name"
+msgstr "gặp lỗi khi lấy tên nhánh mặc định"
 
-msgid "rebase"
-msgstr "rebase"
+msgid "failed to unregister repository"
+msgstr "gặp lỗi khi hủy đăng ký kho chứa"
 
-#, c-format
-msgid "unknown action: %d"
-msgstr "không nhận ra thao tác: %d"
+msgid "failed to stop the FSMonitor daemon"
+msgstr "Gặp lỗi khi dừng tiến trình nền FSMonitor"
 
-msgid ""
-"after resolving the conflicts, mark the corrected paths\n"
-"with 'git add <paths>' or 'git rm <paths>'"
-msgstr ""
-"sau khi giải quyết các xung đột, đánh dấu đường dẫn đã sửa\n"
-"với lệnh “git add </các/đường/dẫn>” hoặc “git rm </các/đường/dẫn>”"
+msgid "failed to delete enlistment directory"
+msgstr "gặp lỗi khi xóa thư mục enlistment"
 
-msgid ""
-"After resolving the conflicts, mark them with\n"
-"\"git add/rm <pathspec>\", then run\n"
-"\"git cherry-pick --continue\".\n"
-"You can instead skip this commit with \"git cherry-pick --skip\".\n"
-"To abort and get back to the state before \"git cherry-pick\",\n"
-"run \"git cherry-pick --abort\"."
-msgstr ""
-"Sau khi giải quyết vấn đề xung đột, hãy đánh dấu bằng\n"
-"\"git add/rm <pathspec>\", sai đó chạy\n"
-"\"git cherry-pick --continue\".\n"
-"Bạn có thể bỏ qua lần chuyển giao này với \"git cherry-pick --skip\".\n"
-"Để bãi bỏ và quay trở lại trạng thái trước khi \"git cherry-pick\",\n"
-"chạy \"git cherry-pick --abort\"."
+msgid "branch to checkout after clone"
+msgstr "nhánh để checkout sau khi nhân bản"
+
+msgid "when cloning, create full working directory"
+msgstr "khi nhân bản, tạo đầy đủ thư mục làm việc"
+
+msgid "only download metadata for the branch that will be checked out"
+msgstr "chỉ siêu dữ liệu tải về cho nhánh mà sẽ được checkout"
+
+msgid "create repository within 'src' directory"
+msgstr "tạo kho chứa trong thư mục 'src'"
 
 msgid ""
-"After resolving the conflicts, mark them with\n"
-"\"git add/rm <pathspec>\", then run\n"
-"\"git revert --continue\".\n"
-"You can instead skip this commit with \"git revert --skip\".\n"
-"To abort and get back to the state before \"git revert\",\n"
-"run \"git revert --abort\"."
+"scalar clone [--single-branch] [--branch <main-branch>] [--full-clone]\n"
+"\t[--[no-]src] <url> [<enlistment>]"
 msgstr ""
-"Sau khi giải quyết vấn đề này, hãy đánh dấu chúng bằng\n"
-"\"git add/rm <đặc_tả_đường_dẫn_xung_đột>\", sau đó chạy\n"
-"\"git revert --continue\".\n"
-"Bạn có thể bỏ qua lần chuyển giao này với \"git rebase --skip\".\n"
-"Để bãi bỏ và quay trở lại trạng thái trước \"git revert\",\n"
-"chạy \"git revert --abort\"."
+"scalar clone [--single-branch] [--branch <nhánh-chính>] [--full-clone]\n"
+"\t[--[no-]src] <url> [<enlistment>]"
 
 #, c-format
-msgid "could not lock '%s'"
-msgstr "không thể khóa “%s”"
+msgid "cannot deduce worktree name from '%s'"
+msgstr "không thể suy diễn tên cây làm việc từ '%s'"
 
 #, c-format
-msgid "could not write to '%s'"
-msgstr "không thể ghi vào “%s”"
+msgid "directory '%s' exists already"
+msgstr "thư mục '%s' đã sẵn có"
 
 #, c-format
-msgid "could not write eol to '%s'"
-msgstr "không thể ghi eol vào “%s”"
+msgid "failed to get default branch for '%s'"
+msgstr "gặp lỗi khi lấy nhánh mặc định cho '%s'"
 
 #, c-format
-msgid "failed to finalize '%s'"
-msgstr "gặp lỗi khi hoàn thành “%s”"
+msgid "could not configure remote in '%s'"
+msgstr "không thể cấu hình máy chủ trong '%s'"
 
 #, c-format
-msgid "your local changes would be overwritten by %s."
-msgstr "các thay đổi nội bộ của bạn có thể bị ghi đè bởi lệnh %s."
+msgid "could not configure '%s'"
+msgstr "không thể cấu hình '%s'"
 
-msgid "commit your changes or stash them to proceed."
-msgstr "chuyển giao các thay đổi của bạn hay tạm cất (stash) chúng để xử lý."
+msgid "partial clone failed; attempting full clone"
+msgstr "nhân bản từng phần gặp lỗi; đang cố thử nhân bản đầy đủ"
 
-#, c-format
-msgid "%s: fast-forward"
-msgstr "%s: chuyển-tiếp-nhanh"
+msgid "could not configure for full clone"
+msgstr "không thể cấu hình cho nhân bản đầy đủ"
 
-#. TRANSLATORS: %s will be "revert", "cherry-pick" or
-#. "rebase".
-#.
-#, c-format
-msgid "%s: Unable to write new index file"
-msgstr "%s: Không thể ghi tập tin lưu bảng mục lục mới"
+msgid "scalar diagnose [<enlistment>]"
+msgstr "scalar diagnose [<enlistment>]"
 
-msgid "unable to update cache tree"
-msgstr "không thể cập nhật cây bộ nhớ đệm"
+msgid "`scalar list` does not take arguments"
+msgstr "`scalar list` không nhận các tham số"
 
-msgid "could not resolve HEAD commit"
-msgstr "không thể phân giải lần chuyển giao HEAD"
+msgid "scalar register [<enlistment>]"
+msgstr "scalar register [<enlistment>]"
+
+msgid "reconfigure all registered enlistments"
+msgstr "cấu hình mọi enlistments đã đăng ký"
+
+msgid "scalar reconfigure [--all | <enlistment>]"
+msgstr "scalar reconfigure [--all | <enlistment>]"
+
+msgid "--all or <enlistment>, but not both"
+msgstr "--all hoặc <enlistment>, không thể là cả hai"
 
 #, c-format
-msgid "no key present in '%.*s'"
-msgstr "không có khóa hiện diện trong “%.*s”"
+msgid "could not remove stale scalar.repo '%s'"
+msgstr "không thể xoá scalar.repo đã cũ '%s'"
 
 #, c-format
-msgid "unable to dequote value of '%s'"
-msgstr "không thể giải trích dẫn giá trị của “%s”"
+msgid "removed stale scalar.repo '%s'"
+msgstr "đã xoá scalar.repo đã cũ '%s'"
 
-msgid "'GIT_AUTHOR_NAME' already given"
-msgstr "“GIT_AUTHOR_NAME” đã sẵn đưa ra rồi"
+#, c-format
+msgid "repository at '%s' has different owner"
+msgstr "kho '%s' thuộc quyền sở hữu của người khác"
 
-msgid "'GIT_AUTHOR_EMAIL' already given"
-msgstr "“GIT_AUTHOR_EMAIL” đã sẵn đưa ra rồi"
+#, c-format
+msgid "repository at '%s' has a format issue"
+msgstr "kho '%s' có vấn đề định dạng"
 
-msgid "'GIT_AUTHOR_DATE' already given"
-msgstr "“GIT_AUTHOR_DATE” đã sẵn đưa ra rồi"
+#, c-format
+msgid "repository not found in '%s'"
+msgstr "không tìm thấy kho trong '%s'"
+
+#, c-format
+msgid ""
+"to unregister this repository from Scalar, run\n"
+"\tgit config --global --unset --fixed-value scalar.repo \"%s\""
+msgstr ""
+"để bỏ đăng ký kho này khỏi Scalar, chạy lệnh\n"
+"\tgit config --global --unset --fixed-value scalar.repo \"%s\""
+
+msgid ""
+"scalar run <task> [<enlistment>]\n"
+"Tasks:\n"
+msgstr ""
+"scalar run <task> [<enlistment>]\n"
+"Nhiệm vụ:\n"
+
+#, c-format
+msgid "no such task: '%s'"
+msgstr "không có nhiệm vụ nào như thế: '%s'"
+
+msgid "scalar unregister [<enlistment>]"
+msgstr "scalar unregister [<enlistment>]"
+
+msgid "scalar delete <enlistment>"
+msgstr "scalar delete <enlistment>"
+
+msgid "refusing to delete current working directory"
+msgstr "từ chối gỡ bỏ thư mục làm việc hiện tại"
+
+msgid "include Git version"
+msgstr "bao gồm phiên bản Git"
+
+msgid "include Git's build options"
+msgstr "bao gồm các tùy chọn biên dịch của Git"
+
+msgid "scalar verbose [-v | --verbose] [--build-options]"
+msgstr "scalar verbose [-v | --verbose] [--build-options]"
+
+msgid "-C requires a <directory>"
+msgstr "-C cần một <thư_mục>"
+
+#, c-format
+msgid "could not change to '%s'"
+msgstr "không thể chuyển sang '%s'"
+
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c cần một tham số <key>=<value>"
+
+msgid ""
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
+"\n"
+"Commands:\n"
+msgstr ""
+"scalar [-C </thư/mục/>] [-c <khóa>=<giá trị>] <lệnh> [<các tùy chọn>]\n"
+"\n"
+"Các lệnh:\n"
+
+msgid "unexpected flush packet while reading remote unpack status"
+msgstr ""
+"gặp gói flush bất thường trong khi đọc tình trạng giải nén gói trên máy chủ"
+
+#, c-format
+msgid "unable to parse remote unpack status: %s"
+msgstr "không thể đọc tình trạng unpack máy chủ: %s"
+
+#, c-format
+msgid "remote unpack failed: %s"
+msgstr "máy chủ gặp lỗi unpack: %s"
+
+msgid "failed to sign the push certificate"
+msgstr "gặp lỗi khi ký chứng thực đẩy"
+
+msgid "send-pack: unable to fork off fetch subprocess"
+msgstr "send-pack: không thể rẽ nhánh tuyến trình con fetch"
+
+msgid "push negotiation failed; proceeding anyway with push"
+msgstr "đẩy đàm phán thất bại; vẫn tiếp tục xử lý bằng lệnh đẩy"
+
+msgid "the receiving end does not support this repository's hash algorithm"
+msgstr "kết thúc nhận không hỗ trợ các tùy chọn của lệnh push"
+
+msgid "the receiving end does not support --signed push"
+msgstr "kết thúc nhận không hỗ trợ đẩy --signed"
+
+msgid ""
+"not sending a push certificate since the receiving end does not support --"
+"signed push"
+msgstr ""
+"đừng gửi giấy chứng nhận đẩy trước khi kết thúc nhận không hỗ trợ đẩy --"
+"signed"
+
+msgid "the receiving end does not support --atomic push"
+msgstr "kết thúc nhận không hỗ trợ đẩy --atomic"
+
+msgid "the receiving end does not support push options"
+msgstr "kết thúc nhận không hỗ trợ các tùy chọn của lệnh push"
+
+#, c-format
+msgid "invalid commit message cleanup mode '%s'"
+msgstr "chế độ dọn dẹp ghi chú các lần chuyển giao không hợp lệ '%s'"
+
+#, c-format
+msgid "could not delete '%s'"
+msgstr "không thể xóa bỏ '%s'"
+
+msgid "revert"
+msgstr "hoàn nguyên"
+
+msgid "cherry-pick"
+msgstr "cherry-pick"
+
+msgid "rebase"
+msgstr "rebase"
+
+#, c-format
+msgid "unknown action: %d"
+msgstr "không nhận ra thao tác: %d"
+
+msgid ""
+"Resolve all conflicts manually, mark them as resolved with\n"
+"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
+"You can instead skip this commit: run \"git rebase --skip\".\n"
+"To abort and get back to the state before \"git rebase\", run \"git rebase --"
+"abort\"."
+msgstr ""
+"Giải quyết vấn đề này thủ công, hãy đanh dấu chúng đã được giải quyết bằng\n"
+"hãy chạy lệnh \"git add/rm <các_tập tin_xung_đột>\", sau đó chạy \"git "
+"rebase --continue\".\n"
+"Bạn có thể bỏ qua bản vá, chạy \"git rebase --skip\".\n"
+"Để huỷ bỏ và quay trở lại trạng thái trước \"git rebase\", chạy \"git rebase "
+"--abort\"."
+
+msgid ""
+"after resolving the conflicts, mark the corrected paths\n"
+"with 'git add <paths>' or 'git rm <paths>'"
+msgstr ""
+"sau khi giải quyết các xung đột, đánh dấu đường dẫn đã sửa\n"
+"với lệnh 'git add </các/đường/dẫn>' hoặc 'git rm </các/đường/dẫn>'"
+
+msgid ""
+"After resolving the conflicts, mark them with\n"
+"\"git add/rm <pathspec>\", then run\n"
+"\"git cherry-pick --continue\".\n"
+"You can instead skip this commit with \"git cherry-pick --skip\".\n"
+"To abort and get back to the state before \"git cherry-pick\",\n"
+"run \"git cherry-pick --abort\"."
+msgstr ""
+"Sau khi giải quyết vấn đề xung đột, hãy đánh dấu bằng\n"
+"\"git add/rm <pathspec>\", sai đó chạy\n"
+"\"git cherry-pick --continue\".\n"
+"Bạn có thể bỏ qua lần chuyển giao này với \"git cherry-pick --skip\".\n"
+"Để huỷ bỏ và quay trở lại trạng thái trước khi \"git cherry-pick\",\n"
+"chạy \"git cherry-pick --abort\"."
+
+msgid ""
+"After resolving the conflicts, mark them with\n"
+"\"git add/rm <pathspec>\", then run\n"
+"\"git revert --continue\".\n"
+"You can instead skip this commit with \"git revert --skip\".\n"
+"To abort and get back to the state before \"git revert\",\n"
+"run \"git revert --abort\"."
+msgstr ""
+"Sau khi giải quyết vấn đề này, hãy đánh dấu chúng bằng\n"
+"\"git add/rm <đặc_tả_đường_dẫn_xung_đột>\", sau đó chạy\n"
+"\"git revert --continue\".\n"
+"Bạn có thể bỏ qua lần chuyển giao này với \"git rebase --skip\".\n"
+"Để huỷ bỏ và quay trở lại trạng thái trước \"git revert\",\n"
+"chạy \"git revert --abort\"."
+
+#, c-format
+msgid "could not lock '%s'"
+msgstr "không thể khóa '%s'"
+
+#, c-format
+msgid "could not write eol to '%s'"
+msgstr "không thể ghi eol vào '%s'"
+
+#, c-format
+msgid "failed to finalize '%s'"
+msgstr "gặp lỗi khi hoàn thành '%s'"
+
+#, c-format
+msgid "your local changes would be overwritten by %s."
+msgstr "các thay đổi nội bộ của bạn có thể bị ghi đè bởi lệnh %s."
+
+msgid "commit your changes or stash them to proceed."
+msgstr "chuyển giao các thay đổi của bạn hay tạm cất (stash) chúng để xử lý."
+
+#. TRANSLATORS: %s will be "revert", "cherry-pick" or
+#. "rebase".
+#.
+#, c-format
+msgid "%s: Unable to write new index file"
+msgstr "%s: Không thể ghi tập tin chỉ mục mới"
+
+msgid "unable to update cache tree"
+msgstr "không thể cập nhật cây bộ nhớ đệm"
+
+msgid "could not resolve HEAD commit"
+msgstr "không thể phân giải lần chuyển giao HEAD"
+
+#, c-format
+msgid "no key present in '%.*s'"
+msgstr "không có khóa hiện diện trong '%.*s'"
+
+#, c-format
+msgid "unable to dequote value of '%s'"
+msgstr "không thể giải trích dẫn giá trị của '%s'"
+
+msgid "'GIT_AUTHOR_NAME' already given"
+msgstr "'GIT_AUTHOR_NAME' đã sẵn đưa ra rồi"
+
+msgid "'GIT_AUTHOR_EMAIL' already given"
+msgstr "'GIT_AUTHOR_EMAIL' đã sẵn đưa ra rồi"
+
+msgid "'GIT_AUTHOR_DATE' already given"
+msgstr "'GIT_AUTHOR_DATE' đã sẵn đưa ra rồi"
 
 #, c-format
 msgid "unknown variable '%s'"
-msgstr "không hiểu biến “%s”"
+msgstr "không hiểu biến '%s'"
 
 msgid "missing 'GIT_AUTHOR_NAME'"
-msgstr "thiếu “GIT_AUTHOR_NAME”"
+msgstr "thiếu 'GIT_AUTHOR_NAME'"
 
 msgid "missing 'GIT_AUTHOR_EMAIL'"
-msgstr "thiếu “GIT_AUTHOR_EMAIL”"
+msgstr "thiếu 'GIT_AUTHOR_EMAIL'"
 
 msgid "missing 'GIT_AUTHOR_DATE'"
-msgstr "thiếu “GIT_AUTHOR_DATE”"
+msgstr "thiếu 'GIT_AUTHOR_DATE'"
 
 #, c-format
 msgid ""
@@ -19045,7 +20197,7 @@ msgstr ""
 "  git rebase --continue\n"
 
 msgid "'prepare-commit-msg' hook failed"
-msgstr "móc “prepare-commit-msg” bị lỗi"
+msgstr "móc 'prepare-commit-msg' bị lỗi"
 
 msgid ""
 "Your name and email address were configured automatically based\n"
@@ -19108,8 +20260,7 @@ msgid "couldn't look up newly created commit"
 msgstr "không thể tìm thấy lần chuyển giao mới hơn đã được tạo"
 
 msgid "could not parse newly created commit"
-msgstr ""
-"không thể phân tích cú pháp của đối tượng chuyển giao mới hơn đã được tạo"
+msgstr "không hiểu cú pháp của đối tượng chuyển giao mới hơn đã được tạo"
 
 msgid "unable to resolve HEAD after creating commit"
 msgstr "không thể phân giải HEAD sau khi tạo lần chuyển giao"
@@ -19121,37 +20272,33 @@ msgid " (root-commit)"
 msgstr " (root-commit)"
 
 msgid "could not parse HEAD"
-msgstr "không thể phân tích HEAD"
+msgstr "không thể đọc HEAD"
 
 #, c-format
 msgid "HEAD %s is not a commit!"
 msgstr "HEAD %s không phải là một lần chuyển giao!"
 
 msgid "unable to parse commit author"
-msgstr "không thể phân tích tác giả của lần chuyển giao"
+msgstr "không thể đọc tác giả của lần chuyển giao"
 
 #, c-format
 msgid "unable to read commit message from '%s'"
-msgstr "không thể đọc phần chú thích (message) từ “%s”"
+msgstr "không thể đọc phần chú thích từ '%s'"
 
 #, c-format
 msgid "invalid author identity '%s'"
-msgstr "định danh tác giả không hợp lệ “%s”"
+msgstr "danh tính tác giả không hợp lệ '%s'"
 
 msgid "corrupt author: missing date information"
-msgstr "tác giả sai hỏng: thiếu thông tin ngày tháng"
+msgstr "hỏng tên tác giả: thiếu thông tin ngày tháng"
 
 #, c-format
 msgid "could not update %s"
 msgstr "không thể cập nhật %s"
 
-#, c-format
-msgid "could not parse commit %s"
-msgstr "không thể phân tích lần chuyển giao %s"
-
 #, c-format
 msgid "could not parse parent commit %s"
-msgstr "không thể phân tích lần chuyển giao cha mẹ “%s”"
+msgstr "không thể đọc lần chuyển giao mẹ '%s'"
 
 #, c-format
 msgid "unknown command: %d"
@@ -19162,14 +20309,14 @@ msgstr "Đây là chú thích cho lần chuyển giao thứ nhất:"
 
 #, c-format
 msgid "This is the commit message #%d:"
-msgstr "Đây là chú thích cho lần chuyển giao thứ #%d:"
+msgstr "Đây là chú thích cho lần chuyển giao thứ %d:"
 
 msgid "The 1st commit message will be skipped:"
 msgstr "Chú thích cho lần chuyển giao thứ nhất sẽ bị bỏ qua:"
 
 #, c-format
 msgid "The commit message #%d will be skipped:"
-msgstr "Chú thích cho lần chuyển giao thứ #%d sẽ bị bỏ qua:"
+msgstr "Chú thích cho lần chuyển giao thứ %d sẽ bị bỏ qua:"
 
 #, c-format
 msgid "This is a combination of %d commits."
@@ -19177,7 +20324,7 @@ msgstr "Đây là tổ hợp của %d lần chuyển giao."
 
 #, c-format
 msgid "cannot write '%s'"
-msgstr "không thể ghi “%s”"
+msgstr "không thể ghi '%s'"
 
 msgid "need a HEAD to fixup"
 msgstr "cần một HEAD để sửa"
@@ -19186,21 +20333,22 @@ msgid "could not read HEAD"
 msgstr "không thể đọc HEAD"
 
 msgid "could not read HEAD's commit message"
-msgstr "không thể đọc phần chú thích (message) của HEAD"
+msgstr "không thể đọc phần chú thích của HEAD"
 
 #, c-format
 msgid "could not read commit message of %s"
-msgstr "không thể đọc phần chú thích (message) của %s"
+msgstr "không thể đọc phần chú thích của %s"
 
 msgid "your index file is unmerged."
-msgstr "tập tin lưu mục lục của bạn không được hòa trộn."
+msgstr "tập tin chỉ mục của bạn không được hòa trộn."
 
 msgid "cannot fixup root commit"
 msgstr "không thể sửa chữa lần chuyển giao gốc"
 
 #, c-format
 msgid "commit %s is a merge but no -m option was given."
-msgstr "lần chuyển giao %s là một lần hòa trộn nhưng không đưa ra tùy chọn -m."
+msgstr ""
+"lần chuyển giao %s là một lần hòa trộn nhưng lệnh không có tùy chọn -m."
 
 #, c-format
 msgid "commit %s does not have parent %d"
@@ -19214,35 +20362,43 @@ msgstr "không thể lấy ghi chú lần chuyển giao cho %s"
 #. "revert" or "pick", the second %s a SHA1.
 #, c-format
 msgid "%s: cannot parse parent commit %s"
-msgstr "%s: không thể phân tích lần chuyển giao mẹ của %s"
-
-#, c-format
-msgid "could not rename '%s' to '%s'"
-msgstr "không thể đổi tên “%s” thành “%s”"
+msgstr "%s: không thể đọc lần chuyển giao mẹ của %s"
 
 #, c-format
 msgid "could not revert %s... %s"
-msgstr "không thể hoàn nguyên %s %s"
+msgstr "không thể hoàn nguyên %s... %s"
 
 #, c-format
 msgid "could not apply %s... %s"
-msgstr "không thể áp dụng miếng vá %s… %s"
+msgstr "không thể áp dụng bản vá %s... %s"
 
 #, c-format
 msgid "dropping %s %s -- patch contents already upstream\n"
-msgstr "xóa %s %s -- vá nội dung thượng nguồn đã có\n"
+msgstr "xóa %s %s -- thượng nguồn đã có bản vá\n"
 
 #, c-format
 msgid "git %s: failed to read the index"
-msgstr "git %s: gặp lỗi đọc bảng mục lục"
+msgstr "git %s: gặp lỗi khi đọc chỉ mục"
 
 #, c-format
 msgid "git %s: failed to refresh the index"
-msgstr "git %s: gặp lỗi khi làm tươi mới bảng mục lục"
+msgstr "git %s: gặp lỗi khi làm mới chỉ mục"
 
 #, c-format
-msgid "%s does not accept arguments: '%s'"
-msgstr "%s không nhận các đối số: “%s”"
+msgid "'%s' is not a valid label"
+msgstr "'%s' không phải một nhãn hợp lệ"
+
+#, c-format
+msgid "'%s' is not a valid refname"
+msgstr "'%s' không phải tên tham chiếu hợp lệ"
+
+#, c-format
+msgid "update-ref requires a fully qualified refname e.g. refs/heads/%s"
+msgstr "update-ref yêu cầu tên tham chiếu đầy đủ v.d. refs/heads/%s"
+
+#, c-format
+msgid "invalid command '%.*s'"
+msgstr "lệnh không hợp lệ '%.*s'"
 
 #, c-format
 msgid "missing arguments for %s"
@@ -19250,7 +20406,7 @@ msgstr "thiếu đối số cho %s"
 
 #, c-format
 msgid "could not parse '%s'"
-msgstr "không thể phân tích cú pháp “%s”"
+msgstr "không thể đọc '%s'"
 
 #, c-format
 msgid "invalid line %d: %.*s"
@@ -19258,7 +20414,7 @@ msgstr "dòng không hợp lệ %d: %.*s"
 
 #, c-format
 msgid "cannot '%s' without a previous commit"
-msgstr "không thể “%s” thể mà không có lần chuyển giao kế trước"
+msgstr "không thể '%s' thể mà không có lần chuyển giao kế trước"
 
 msgid "cancelling a cherry picking in progress"
 msgstr "đang hủy bỏ thao tác cherry pick đang thực hiện"
@@ -19267,30 +20423,30 @@ msgid "cancelling a revert in progress"
 msgstr "đang hủy bỏ các thao tác hoàn nguyên đang thực hiện"
 
 msgid "please fix this using 'git rebase --edit-todo'."
-msgstr "vui lòng sửa lỗi này bằng cách dùng “git rebase --edit-todo”."
+msgstr "vui lòng sửa lỗi này bằng cách dùng 'git rebase --edit-todo'."
 
 #, c-format
 msgid "unusable instruction sheet: '%s'"
-msgstr "bảng chỉ thị không thể dùng được: %s"
+msgstr "bảng chỉ thị không dùng được: %s"
 
 msgid "no commits parsed."
-msgstr "không có lần chuyển giao nào được phân tích."
+msgstr "không đọc được lần chuyển giao nào."
 
 msgid "cannot cherry-pick during a revert."
-msgstr "không thể cherry-pick trong khi hoàn nguyên."
+msgstr "không thể cherry-pick trong khi đang hoàn nguyên."
 
 msgid "cannot revert during a cherry-pick."
-msgstr "không thể thực hiện việc hoàn nguyên trong khi đang cherry-pick."
+msgstr "không thể hoàn nguyên trong khi đang cherry-pick."
 
 msgid "unusable squash-onto"
-msgstr "squash-onto không dùng được"
+msgstr "không dùng được squash-onto"
 
 #, c-format
 msgid "malformed options sheet: '%s'"
-msgstr "bảng tùy chọn dị hình: “%s”"
+msgstr "bảng tùy chọn sai quy cách: '%s'"
 
 msgid "empty commit set passed"
-msgstr "lần chuyển giao trống rỗng đặt là hợp quy cách"
+msgstr "được chỉ định một lần chuyển giao trống rỗng"
 
 msgid "revert is already in progress"
 msgstr "có thao tác hoàn nguyên đang được thực hiện"
@@ -19300,7 +20456,7 @@ msgid "try \"git revert (--continue | %s--abort | --quit)\""
 msgstr "hãy thử \"git revert (--continue | %s--abort | --quit)\""
 
 msgid "cherry-pick is already in progress"
-msgstr "có thao tác “cherry-pick” đang được thực hiện"
+msgstr "có thao tác cherry-pick đang được thực hiện"
 
 #, c-format
 msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
@@ -19308,62 +20464,57 @@ msgstr "hãy thử \"git cherry-pick (--continue | %s--abort | --quit)\""
 
 #, c-format
 msgid "could not create sequencer directory '%s'"
-msgstr "không thể tạo thư mục xếp dãy “%s”"
-
-msgid "could not lock HEAD"
-msgstr "không thể khóa HEAD"
+msgstr "không thể tạo thư mục sequencer '%s'"
 
 msgid "no cherry-pick or revert in progress"
-msgstr "không cherry-pick hay hoàn nguyên trong tiến trình"
+msgstr "không có cherry-pick hay hoàn nguyên đang được thực hiện"
 
 msgid "cannot resolve HEAD"
 msgstr "không thể phân giải HEAD"
 
 msgid "cannot abort from a branch yet to be born"
-msgstr "không thể hủy bỏ từ một nhánh mà nó còn chưa được tạo ra"
+msgstr "không thể hủy bỏ từ một nhánh chưa được tạo ra"
 
 #, c-format
 msgid "cannot read '%s': %s"
-msgstr "không thể đọc “%s”: %s"
+msgstr "không thể đọc '%s': %s"
 
 msgid "unexpected end of file"
 msgstr "gặp kết thúc tập tin đột xuất"
 
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
-msgstr "tập tin HEAD “pre-cherry-pick” đã lưu “%s” bị hỏng"
+msgstr "tập tin HEAD trước cherry-pick '%s' bị hỏng"
 
 msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
-msgstr ""
-"Bạn có lẽ đã có HEAD đã bị di chuyển đi, Không thể tua, kiểm tra HEAD của "
-"bạn!"
+msgstr "Bạn có lẽ đã di chuyển HEAD, Không thể quay lại, hãy kiểm tra HEAD!"
 
 msgid "no revert in progress"
-msgstr "không có tiến trình hoàn nguyên nào"
+msgstr "không có hoàn nguyên nào đang được thực hiện"
 
 msgid "no cherry-pick in progress"
 msgstr "không có cherry-pick đang được thực hiện"
 
 msgid "failed to skip the commit"
-msgstr "gặp lỗi khi bỏ qua đối tượng chuyển giao"
+msgstr "gặp lỗi khi bỏ qua lần chuyển giao"
 
 msgid "there is nothing to skip"
-msgstr "ở đây không có gì để mà bỏ qua cả"
+msgstr "ở đây không có gì để bỏ qua"
 
 #, c-format
 msgid ""
 "have you committed already?\n"
 "try \"git %s --continue\""
 msgstr ""
-"bạn đã sẵn sàng chuyển giao chưa?\n"
-"thử \"git %s --continue\""
+"hình như bạn đã bắt đầu chuyển giao rồi?\n"
+"thử chạy \"git %s --continue\""
 
 msgid "cannot read HEAD"
 msgstr "không thể đọc HEAD"
 
 #, c-format
 msgid "unable to copy '%s' to '%s'"
-msgstr "không thể chép “%s” sang “%s”"
+msgstr "không thể sao chép '%s' sang '%s'"
 
 #, c-format
 msgid ""
@@ -19375,21 +20526,21 @@ msgid ""
 "\n"
 "  git rebase --continue\n"
 msgstr ""
-"Bạn có thể tu bổ lần chuyển giao ngay bây giờ bằng:\n"
+"Bạn có thể tu bổ lần chuyển giao bằng:\n"
 "\n"
 "  git commit --amend %s\n"
 "\n"
-"Một khi đã hài lòng với những thay đổi của mình, thì chạy:\n"
+"Sau khi hài lòng với những thay đổi của mình, hãy chạy:\n"
 "\n"
 "  git rebase --continue\n"
 
 #, c-format
 msgid "Could not apply %s... %.*s"
-msgstr "Không thể áp dụng %s %.*s"
+msgstr "Không thể áp dụng %s... %.*s"
 
 #, c-format
 msgid "Could not merge %.*s"
-msgstr "Không hòa trộn %.*s"
+msgstr "Không thể hòa trộn %.*s"
 
 #, c-format
 msgid "Executing: %s\n"
@@ -19404,33 +20555,37 @@ msgid ""
 "\n"
 msgstr ""
 "thực thi gặp lỗi: %s\n"
-"%sBạn có thể sửa các trục trặc, và sau đó chạy lệnh\n"
+"%sBạn có thể sửa lại, và sau đó chạy lệnh\n"
 "\n"
 "  git rebase --continue\n"
 "\n"
 
-msgid "and made changes to the index and/or the working tree\n"
-msgstr "và tạo các thay đổi bảng mục lục và/hay cây làm việc\n"
+msgid "and made changes to the index and/or the working tree.\n"
+msgstr "và thay đổi chỉ mục hay cây làm việc\n"
 
 #, c-format
 msgid ""
 "execution succeeded: %s\n"
-"but left changes to the index and/or the working tree\n"
+"but left changes to the index and/or the working tree.\n"
 "Commit or stash your changes, and then run\n"
 "\n"
 "  git rebase --continue\n"
 "\n"
 msgstr ""
 "thực thi thành công: %s\n"
-"nhưng còn các thay đổi trong mục lục và/hoặc cây làm việc\n"
-"Chuyển giao hay tạm cất các thay đổi này đi, rồi chạy\n"
+"nhưng còn các thay đổi trong chỉ mục hay cây làm việc.\n"
+"Hãy chuyển giao hay tạm cất các thay đổi này, rồi chạy\n"
 "\n"
 "  git rebase --continue\n"
 "\n"
 
 #, c-format
 msgid "illegal label name: '%.*s'"
-msgstr "tên nhãn dị hình: “%.*s”"
+msgstr "tên nhãn không hợp lệ: '%.*s'"
+
+#, c-format
+msgid "could not resolve '%s'"
+msgstr "không thể phân giải '%s'"
 
 msgid "writing fake root commit"
 msgstr "ghi lần chuyển giao gốc giả"
@@ -19438,45 +20593,63 @@ msgstr "ghi lần chuyển giao gốc giả"
 msgid "writing squash-onto"
 msgstr "đang ghi squash-onto"
 
-#, c-format
-msgid "could not resolve '%s'"
-msgstr "không thể phân giải “%s”"
-
 msgid "cannot merge without a current revision"
-msgstr "không thể hòa trộn mà không có một điểm xét duyệt hiện tại"
+msgstr "không thể hòa trộn mà không có điểm hiệu chỉnh hiện tại"
 
 #, c-format
 msgid "unable to parse '%.*s'"
-msgstr "không thể phân tích “%.*s”"
+msgstr "không thể đọc '%.*s'"
 
 #, c-format
 msgid "nothing to merge: '%.*s'"
-msgstr "chẳng có gì để hòa trộn: “%.*s”"
+msgstr "chẳng có gì để hòa trộn: '%.*s'"
 
 msgid "octopus merge cannot be executed on top of a [new root]"
-msgstr "hòa trộn octopus không thể được thực thi trên đỉnh của một [new root]"
+msgstr ""
+"hòa trộn kiểu bạch tuộc không thể được thực thi trên đỉnh của [new root]"
 
 #, c-format
 msgid "could not get commit message of '%s'"
-msgstr "không thể lấy chú thích của lần chuyển giao của “%s”"
+msgstr "không thể lấy chú thích của lần chuyển giao của '%s'"
 
 #, c-format
 msgid "could not even attempt to merge '%.*s'"
-msgstr "không thể ngay cả khi thử hòa trộn “%.*s”"
+msgstr "hoàn toàn không thể hòa trộn '%.*s'"
 
 msgid "merge: Unable to write new index file"
-msgstr "merge: Không thể ghi tập tin lưu bảng mục lục mới"
+msgstr "merge: Không thể ghi tập tin chỉ mục mới"
+
+#, c-format
+msgid ""
+"another 'rebase' process appears to be running; '%s.lock' already exists"
+msgstr "Một lần cải tổ khác đang diễn ra; %s.lock đã tồn tại"
+
+#, c-format
+msgid ""
+"Updated the following refs with %s:\n"
+"%s"
+msgstr ""
+"Đã cập nhật các tham chiếu sau thành %s:\n"
+"%s"
+
+#, c-format
+msgid ""
+"Failed to update the following refs with %s:\n"
+"%s"
+msgstr ""
+"Không thể cập nhật các tham chiếu sau thành %s:\n"
+"%s"
 
 msgid "Cannot autostash"
 msgstr "Không thể autostash"
 
 #, c-format
 msgid "Unexpected stash response: '%s'"
-msgstr "Gặp đáp ứng stash không cần: “%s”"
+msgstr "Gặp phản hồi stash bất thường '%s'"
 
 #, c-format
 msgid "Could not create directory for '%s'"
-msgstr "Không thể tạo thư mục cho “%s”"
+msgstr "Không thể tạo thư mục cho '%s'"
 
 #, c-format
 msgid "Created autostash: %s\n"
@@ -19491,7 +20664,7 @@ msgstr "Đã áp dụng autostash.\n"
 
 #, c-format
 msgid "cannot store %s"
-msgstr "không thá»­ lÆ°u â\80\9c%sâ\80\9d"
+msgstr "không thá»\83 lÆ°u '%s'"
 
 #, c-format
 msgid ""
@@ -19500,16 +20673,19 @@ msgid ""
 "You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
 msgstr ""
 "%s\n"
-"Các thay đổi của bạn an toàn trong stash (tạm cất đi).\n"
+"Các thay đổi của bạn an toàn trong tạm cất.\n"
 "Bạn có thể chạy lệnh \"git stash pop\" hay \"git stash drop\" bất kỳ lúc "
 "nào.\n"
 
 msgid "Applying autostash resulted in conflicts."
-msgstr "Áp dụng autostash có hiệu quả trong các xung đột."
+msgstr "Áp dụng autostash đã gây nên xung đột."
 
 msgid "Autostash exists; creating a new stash entry."
 msgstr "Autostash đã sẵn có; nên tạo một mục stash mới."
 
+msgid "autostash reference is a symref"
+msgstr "tham chiếu autostash là symref"
+
 msgid "could not detach HEAD"
 msgstr "không thể tách rời HEAD"
 
@@ -19535,19 +20711,19 @@ msgstr ""
 "Không thể thực thi lệnh todo\n"
 "\n"
 "    %.*s\n"
-"Nó đã được lên lịch lại: Để sửa lệnh trước khi tiếp tục, vui lòng\n"
+"Lệnh đã được lên lịch lại. Để sửa lệnh trước khi tiếp tục, vui lòng\n"
 "sửa danh sách todo trước:\n"
 "\n"
 "    git rebase --edit-todo\n"
 "    git rebase --continue\n"
 
 #, c-format
-msgid "Rebasing (%d/%d)%s"
-msgstr "Đang cải tổ (%d/%d)%s"
+msgid "Stopped at %s...  %.*s\n"
+msgstr "Dừng lại ở %s...  %.*s\n"
 
 #, c-format
-msgid "Stopped at %s...  %.*s\n"
-msgstr "Dừng lại ở %s…  %.*s\n"
+msgid "Rebasing (%d/%d)%s"
+msgstr "Đang cải tổ (%d/%d)%s"
 
 #, c-format
 msgid "unknown command %d"
@@ -19557,7 +20733,7 @@ msgid "could not read orig-head"
 msgstr "không thể đọc orig-head"
 
 msgid "could not read 'onto'"
-msgstr "không thể đọc “onto”."
+msgstr "không thể đọc 'onto'."
 
 #, c-format
 msgid "could not update HEAD to %s"
@@ -19571,15 +20747,15 @@ msgid "cannot rebase: You have unstaged changes."
 msgstr "không thể cải tổ: Bạn có các thay đổi chưa được đưa lên bệ phóng."
 
 msgid "cannot amend non-existing commit"
-msgstr "không thể tu bỏ một lần chuyển giao không tồn tại"
+msgstr "không thể tu sửa lần chuyển giao không tồn tại"
 
 #, c-format
 msgid "invalid file: '%s'"
-msgstr "tập tin không hợp lệ: “%s”"
+msgstr "tập tin không hợp lệ: '%s'"
 
 #, c-format
 msgid "invalid contents: '%s'"
-msgstr "nội dung không hợp lệ: “%s”"
+msgstr "nội dung không hợp lệ: '%s'"
 
 msgid ""
 "\n"
@@ -19588,11 +20764,11 @@ msgid ""
 msgstr ""
 "\n"
 "Bạn có các thay đổi chưa chuyển giao trong thư mục làm việc. Vui lòng\n"
-"chuyển giao chúng trước và sau đó chạy lệnh “git rebase --continue” lần nữa."
+"chuyển giao chúng trước rồi sau đó chạy lệnh 'git rebase --continue'."
 
 #, c-format
 msgid "could not write file: '%s'"
-msgstr "không thể ghi tập tin: “%s”"
+msgstr "không thể ghi tập tin: '%s'"
 
 msgid "could not remove CHERRY_PICK_HEAD"
 msgstr "không thể xóa bỏ CHERRY_PICK_HEAD"
@@ -19602,14 +20778,14 @@ msgstr "không thể chuyển giao các thay đổi đã đưa lên bệ phóng.
 
 #, c-format
 msgid "%s: can't cherry-pick a %s"
-msgstr "%s: không thể cherry-pick một %s"
+msgstr "%s: không thể cherry-pick %s"
 
 #, c-format
 msgid "%s: bad revision"
-msgstr "%s: điểm xét duyệt sai"
+msgstr "%s: điểm hiệu chỉnh không hợp lệ"
 
 msgid "can't revert as initial commit"
-msgstr "không thể hoàn nguyên một lần chuyển giao khởi tạo"
+msgstr "không thể hoàn nguyên lần chuyển giao khởi tạo"
 
 #, c-format
 msgid "skipped previously applied commit %s"
@@ -19629,14 +20805,18 @@ msgid "nothing to do"
 msgstr "không có gì để làm"
 
 msgid "could not skip unnecessary pick commands"
-msgstr "không thể bỏ qua các lệnh cậy (pick) không cần thiết"
+msgstr "không thể bỏ qua các lệnh pick không cần thiết"
 
 msgid "the script was already rearranged."
-msgstr "văn lệnh đã sẵn được sắp đặt rồi."
+msgstr "script đã được sắp đặt rồi."
+
+#, c-format
+msgid "update-refs file at '%s' is invalid"
+msgstr "tập tin update-refs '%s' không hợp lệ"
 
 #, c-format
 msgid "'%s' is outside repository at '%s'"
-msgstr "“%s” ngoài một kho chứa tại “%s”"
+msgstr "'%s' nằm ngoài kho chứa tại '%s'"
 
 #, c-format
 msgid ""
@@ -19644,8 +20824,8 @@ msgid ""
 "Use 'git <command> -- <path>...' to specify paths that do not exist locally."
 msgstr ""
 "%s: không có đường dẫn nào như thế ở trong cây làm việc.\n"
-"Dùng “git <lệnh> -- <đường/dẫn>…” để chỉ định đường dẫn mà nó không tồn tại "
-"một cách nội bộ."
+"Dùng 'git <lệnh> -- <đường/dẫn>...' để chỉ định đường dẫn không tồn tại nội "
+"bộ."
 
 #, c-format
 msgid ""
@@ -19653,14 +20833,14 @@ msgid ""
 "Use '--' to separate paths from revisions, like this:\n"
 "'git <command> [<revision>...] -- [<file>...]'"
 msgstr ""
-"tham số chưa rõ ràng “%s”: chưa biết điểm xem xét hay đường dẫn không trong "
-"cây làm việc.\n"
-"Dùng “--” để ngăn cách các đường dẫn khỏi điểm xem xét, như thế này:\n"
-"“git <lệnh> [<điểm xem xét>…] -- [<tập tin>…]”"
+"tham số chưa rõ ràng '%s': chưa biết điểm xét duyệt hay đường dẫn không "
+"trong cây làm việc.\n"
+"Dùng '--' để ngăn cách các đường dẫn khỏi điểm xét duyệt, như thế này:\n"
+"'git <lệnh> [<điểm xét duyệt>...] -- [<tập tin>...]'"
 
 #, c-format
 msgid "option '%s' must come before non-option arguments"
-msgstr "tùy chọn “%s” phải trước các đối số đầu tiên không có tùy chọn"
+msgstr "tùy chọn '%s' phải trước các đối số đầu tiên không có tùy chọn"
 
 #, c-format
 msgid ""
@@ -19668,16 +20848,20 @@ msgid ""
 "Use '--' to separate paths from revisions, like this:\n"
 "'git <command> [<revision>...] -- [<file>...]'"
 msgstr ""
-"tham số chưa rõ ràng “%s”: cả điểm xem xét và tên tập tin.\n"
-"Dùng “--” để ngăn cách các đường dẫn khỏi điểm xem xét, như thế này:\n"
-"“git <lệnh> [<điểm xem xét>…] -- [<tập tin>…]”"
+"tham số chưa rõ ràng '%s': cả điểm xem xét và tên tập tin.\n"
+"Dùng '--' để ngăn cách các đường dẫn khỏi điểm xem xét, như thế này:\n"
+"'git <lệnh> [<điểm xem xét>...] -- [<tập tin>...]'"
 
 msgid "unable to set up work tree using invalid config"
-msgstr "không thể cài đặt thư mục làm việc sử dụng cấu hình không hợp lệ"
+msgstr "không thể thiết lập thư mục làm việc với cấu hình không hợp lệ"
+
+#, c-format
+msgid "'%s' already specified as '%s'"
+msgstr "'%s' đã được chỉ định là '%s' rồi"
 
 #, c-format
 msgid "Expected git repo version <= %d, found %d"
-msgstr "Cần phiên bản kho git <= %d, nhưng lại nhận được %d"
+msgstr "Cần phiên bản kho git <= %d, nhưng lại  %d"
 
 msgid "unknown repository extension found:"
 msgid_plural "unknown repository extensions found:"
@@ -19685,15 +20869,16 @@ msgstr[0] "tìm thấy phần mở rộng kho chưa biết:"
 
 msgid "repo version is 0, but v1-only extension found:"
 msgid_plural "repo version is 0, but v1-only extensions found:"
-msgstr[0] "phiên bản kho là 0, nhưng lại tìm thấy phần mở rộng chỉ v1:"
+msgstr[0] ""
+"phiên bản kho là 0, nhưng lại tìm thấy phần mở rộng chỉ dành cho v1:"
 
 #, c-format
 msgid "error opening '%s'"
-msgstr "gặp lỗi khi mở “%s”"
+msgstr "gặp lỗi khi mở '%s'"
 
 #, c-format
 msgid "too large to be a .git file: '%s'"
-msgstr "tập tin .git là quá lớn: “%s”"
+msgstr "tập tin .git quá lớn: '%s'"
 
 #, c-format
 msgid "error reading %s"
@@ -19701,11 +20886,11 @@ msgstr "gặp lỗi khi đọc %s"
 
 #, c-format
 msgid "invalid gitfile format: %s"
-msgstr "định dạng tập tin git không hợp lệ: %s"
+msgstr "định dạng gitfile không hợp lệ: %s"
 
 #, c-format
 msgid "no path in gitfile: %s"
-msgstr "không có đường dẫn trong tập tin git: %s"
+msgstr "không có đường dẫn trong gitfile: %s"
 
 #, c-format
 msgid "not a git repository: %s"
@@ -19713,55 +20898,60 @@ msgstr "không phải là kho git: %s"
 
 #, c-format
 msgid "'$%s' too big"
-msgstr "“$%s” quá lớn"
+msgstr "'$%s' quá lớn"
 
 #, c-format
 msgid "not a git repository: '%s'"
-msgstr "không phải là kho git: “%s”"
+msgstr "không phải là kho git: '%s'"
 
 #, c-format
 msgid "cannot chdir to '%s'"
-msgstr "không thể chdir (chuyển đổi thư mục) sang “%s”"
+msgstr "không thể chdir (chuyển thư mục) sang '%s'"
 
 msgid "cannot come back to cwd"
-msgstr "không thể quay lại cwd"
+msgstr "không thể quay lại thư mục làm việc hiện hành"
 
 #, c-format
 msgid "failed to stat '%*s%s%s'"
-msgstr "gặp lỗi khi lấy thống kê về “%*s%s%s”"
+msgstr "gặp lỗi khi stat'%*s%s%s'"
 
 msgid "Unable to read current working directory"
 msgstr "Không thể đọc thư mục làm việc hiện hành"
 
 #, c-format
 msgid "cannot change to '%s'"
-msgstr "không thể chuyển sang “%s”"
+msgstr "không thể chuyển sang '%s'"
 
 #, c-format
 msgid "not a git repository (or any of the parent directories): %s"
-msgstr "không phải là kho git (hoặc bất kỳ thư mục cha mẹ nào): %s"
+msgstr "không phải là kho git (các thư mục cha cũng không phải): %s"
 
 #, c-format
 msgid ""
 "not a git repository (or any parent up to mount point %s)\n"
 "Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."
 msgstr ""
-"không phải là kho git (hay bất kỳ cha mẹ nào đến tận điểm gắn kết %s)\n"
+"không phải là kho git (các thư mục cha dưới điểm gắn kết %s cũng không "
+"phải)\n"
 "Dừng tại biên của hệ thống tập tin (GIT_DISCOVERY_ACROSS_FILESYSTEM chưa "
-"đặt)."
+"được đặt)."
 
 #, c-format
 msgid ""
-"unsafe repository ('%s' is owned by someone else)\n"
-"To add an exception for this directory, call:\n"
+"detected dubious ownership in repository at '%s'\n"
+"%sTo add an exception for this directory, call:\n"
 "\n"
 "\tgit config --global --add safe.directory %s"
 msgstr ""
-"kho lưu trữ không an toàn ('%s' thuộc sở hữu của người khác)\n"
-"Để thêm ngoại lệ cho thư mục này, hãy gọi:\n"
+"kho lưu trữ '%s' thuộc sở hữu của người khác\n"
+"%sĐể thêm ngoại lệ cho thư mục này, hãy gọi:\n"
 "\n"
 "\tgit config --global --add safe.directory %s"
 
+#, c-format
+msgid "cannot use bare repository '%s' (safe.bareRepository is '%s')"
+msgstr "không thể dùng kho chứa bare '%s' (safe.bareRepository là '%s')"
+
 #, c-format
 msgid ""
 "problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -19771,26 +20961,116 @@ msgstr ""
 "người sở hữu tập tin phải luôn có quyền đọc và ghi."
 
 msgid "fork failed"
-msgstr "gặp lỗi khi rẽ nhánh tiến trình"
+msgstr "gặp lỗi khi fork"
 
 msgid "setsid failed"
 msgstr "setsid gặp lỗi"
 
 #, c-format
-msgid "index entry is a directory, but not sparse (%08x)"
-msgstr "mục tin mục lục là một thư mục, nhưng không \"sparse\" (%08x)"
+msgid "cannot stat template '%s'"
+msgstr "không thể lấy thông tin về mẫu '%s'"
 
-msgid "cannot use split index with a sparse index"
-msgstr "không thể sử dụng bảng mục lục chia tách với một \"sparse index\""
+#, c-format
+msgid "cannot opendir '%s'"
+msgstr "không thể mở thư mục '%s'"
 
-#. TRANSLATORS: IEC 80000-13:2008 gibibyte
 #, c-format
-msgid "%u.%2.2u GiB"
-msgstr "%u.%2.2u GiB"
+msgid "cannot readlink '%s'"
+msgstr "không thể đọc nội dung liên kết '%s'"
 
-#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
 #, c-format
-msgid "%u.%2.2u GiB/s"
+msgid "cannot symlink '%s' '%s'"
+msgstr "không thể tạo liên kết mềm '%s' '%s'"
+
+#, c-format
+msgid "cannot copy '%s' to '%s'"
+msgstr "không thể sao chép '%s' sang '%s'"
+
+#, c-format
+msgid "ignoring template %s"
+msgstr "đang bỏ qua mẫu '%s'"
+
+#, c-format
+msgid "templates not found in %s"
+msgstr "các mẫu không được tìm thấy trong %s"
+
+#, c-format
+msgid "not copying templates from '%s': %s"
+msgstr "không sao chép các mẫu từ '%s': %s"
+
+#, c-format
+msgid "invalid initial branch name: '%s'"
+msgstr "tên nhánh khởi tạo không hợp lệ: '%s'"
+
+#, c-format
+msgid "re-init: ignored --initial-branch=%s"
+msgstr "re-init: --initial-branch=%s bị bỏ qua"
+
+#, c-format
+msgid "unable to handle file type %d"
+msgstr "không thể xử lý (handle) tập tin kiểu %d"
+
+#, c-format
+msgid "unable to move %s to %s"
+msgstr "không di chuyển được %s vào %s"
+
+msgid "attempt to reinitialize repository with different hash"
+msgstr "cố để khởi tạo lại một kho với kiểu băm dữ liệu khác"
+
+msgid ""
+"attempt to reinitialize repository with different reference storage format"
+msgstr "cố khởi tạo lại một kho với kiểu lưu tham chiếu dữ liệu khác"
+
+#, c-format
+msgid "%s already exists"
+msgstr "%s đã có từ trước rồi"
+
+#, c-format
+msgid "Reinitialized existing shared Git repository in %s%s\n"
+msgstr "Đã khởi tạo lại kho Git chia sẻ sẵn có trong %s%s\n"
+
+#, c-format
+msgid "Reinitialized existing Git repository in %s%s\n"
+msgstr "Đã khởi tạo lại kho Git sẵn có trong %s%s\n"
+
+#, c-format
+msgid "Initialized empty shared Git repository in %s%s\n"
+msgstr "Đã khởi tạo lại kho Git chia sẻ trống rỗng sẵn có trong %s%s\n"
+
+#, c-format
+msgid "Initialized empty Git repository in %s%s\n"
+msgstr "Đã khởi tạo lại kho Git trống rỗng sẵn có trong %s%s\n"
+
+#, c-format
+msgid "index entry is a directory, but not sparse (%08x)"
+msgstr "mục tin chỉ mục là một thư mục, nhưng không \"sparse\" (%08x)"
+
+msgid "cannot use split index with a sparse index"
+msgstr "không thể sử dụng chỉ mục chia tách với một \"sparse index\""
+
+#. TRANSLATORS: The first %s is a command like "ls-tree".
+#, c-format
+msgid "bad %s format: element '%s' does not start with '('"
+msgstr "định dạng %s sai: phần tử '%s' không bắt đầu bằng '('"
+
+#. TRANSLATORS: The first %s is a command like "ls-tree".
+#, c-format
+msgid "bad %s format: element '%s' does not end in ')'"
+msgstr "định dạng %s sai: phần tử '%s' không bắt kết thúc bằng ')'"
+
+#. TRANSLATORS: %s is a command like "ls-tree".
+#, c-format
+msgid "bad %s format: %%%.*s"
+msgstr "định dạng %s sai: %%%.*s"
+
+#. TRANSLATORS: IEC 80000-13:2008 gibibyte
+#, c-format
+msgid "%u.%2.2u GiB"
+msgstr "%u.%2.2u GiB"
+
+#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
+#, c-format
+msgid "%u.%2.2u GiB/s"
 msgstr "%u.%2.2u GiB/giây"
 
 #. TRANSLATORS: IEC 80000-13:2008 mebibyte
@@ -19825,22 +21105,16 @@ msgid "%u byte/s"
 msgid_plural "%u bytes/s"
 msgstr[0] "%u byte/giây"
 
-#, c-format
-msgid "could not edit '%s'"
-msgstr "không thể sửa “%s”"
-
 #, c-format
 msgid "ignoring suspicious submodule name: %s"
-msgstr "đang lờ đi tên mô-đun-con mập mờ: %s"
+msgstr "đang bỏ qua tên mô-đun-con mập mờ: %s"
 
 msgid "negative values not allowed for submodule.fetchJobs"
 msgstr "không cho phép giá trị âm ở submodule.fetchJobs"
 
 #, c-format
 msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
-msgstr ""
-"đang bỏ qua “%s” cái mà có thể được phiên dịch như là một tùy chọn dòng "
-"lệnh: %s"
+msgstr "đang bỏ qua '%s' nhưng có thể được hiểu là tùy chọn trên dòng lệnh: %s"
 
 #, c-format
 msgid "Could not update .gitmodules entry %s"
@@ -19864,11 +21138,11 @@ msgstr "gặp lỗi khi tổ chức .gitmodules đã cập nhật"
 
 #, c-format
 msgid "in unpopulated submodule '%s'"
-msgstr "trong mô-đun-con không có gì “%s”"
+msgstr "trong mô-đun-con không có gì '%s'"
 
 #, c-format
 msgid "Pathspec '%s' is in submodule '%.*s'"
-msgstr "Đặc tả đường dẫn “%s” thì ở trong mô-đun-con “%.*s”"
+msgstr "Đặc tả đường dẫn '%s' ở trong mô-đun-con '%.*s'"
 
 #, c-format
 msgid "bad --ignore-submodules argument: %s"
@@ -19879,33 +21153,33 @@ msgid ""
 "Submodule in commit %s at path: '%s' collides with a submodule named the "
 "same. Skipping it."
 msgstr ""
-"Mô-đun-con trong lần chuyển giao %s tại đường dẫn: “%s” va chạm với mô-đun-"
-"con cùng tên. Nên bỏ qua nó."
+"Mô-đun-con trong lần chuyển giao %s tại đường dẫn: '%s' va chạm với mô-đun-"
+"con cùng tên. Nên sẽ bỏ qua."
 
 #, c-format
 msgid "submodule entry '%s' (%s) is a %s, not a commit"
 msgstr ""
-"mục tin mô-đun-con “%s” (%s) là một %s, không phải là một lần chuyển giao"
+"mục tin mô-đun-con '%s' (%s) là một %s, không phải là một lần chuyển giao"
 
 #, c-format
 msgid ""
 "Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
 "submodule %s"
 msgstr ""
-"Không thể chạy lệnh git rev-list <các lần chuyển giao> --not --remotes -n "
-"1” trong mô-đun-con “%s”"
+"Không thể chạy lệnh 'git rev-list <các lần chuyển giao> --not --remotes -n "
+"1' trong mô-đun-con '%s'"
 
 #, c-format
 msgid "process for submodule '%s' failed"
-msgstr "xử lý cho mô-đun-con “%s” gặp lỗi"
+msgstr "xử lý cho mô-đun-con '%s' gặp lỗi"
 
 #, c-format
 msgid "Pushing submodule '%s'\n"
-msgstr "Đẩy lên mô-đun-con “%s”\n"
+msgstr "Đẩy lên mô-đun-con '%s'\n"
 
 #, c-format
 msgid "Unable to push submodule '%s'\n"
-msgstr "Không thể đẩy lên mô-đun-con “%s”\n"
+msgstr "Không thể đẩy lên mô-đun-con '%s'\n"
 
 #, c-format
 msgid "Fetching submodule %s%s\n"
@@ -19913,11 +21187,11 @@ msgstr "Đang lấy về mô-đun-con %s%s\n"
 
 #, c-format
 msgid "Could not access submodule '%s'\n"
-msgstr "Không thể truy cập mô-đun-con “%s”\n"
+msgstr "Không thể truy cập mô-đun-con '%s'\n"
 
 #, c-format
 msgid "Could not access submodule '%s' at commit %s\n"
-msgstr "Không thể truy cập mô-đun-con “%s” ở lần chuyển giao %s\n"
+msgstr "Không thể truy cập mô-đun-con '%s' ở lần chuyển giao %s\n"
 
 #, c-format
 msgid "Fetching submodule %s%s at commit %s\n"
@@ -19929,65 +21203,65 @@ msgid ""
 "%s"
 msgstr ""
 "Có lỗi khi lấy về mô-đun-con:\n"
-" “%s”"
+" '%s'"
 
 #, c-format
 msgid "'%s' not recognized as a git repository"
-msgstr "không nhận ra “%s” là một kho git"
+msgstr "không nhận ra '%s' là một kho git"
 
 #, c-format
 msgid "Could not run 'git status --porcelain=2' in submodule %s"
-msgstr "Không thể chạy “git status --porcelain=2” trong mô-đun-con “%s”"
+msgstr "Không thể chạy 'git status --porcelain=2' trong mô-đun-con '%s'"
 
 #, c-format
 msgid "'git status --porcelain=2' failed in submodule %s"
-msgstr "“git status --porcelain=2” gặp lỗi trong mô-đun-con “%s”"
+msgstr "'git status --porcelain=2' gặp lỗi trong mô-đun-con '%s'"
 
 #, c-format
 msgid "could not start 'git status' in submodule '%s'"
-msgstr "không thể lấy thống kê “git status” trong mô-đun-con “%s”"
+msgstr "không thể khởi chạy 'git status' trong mô-đun-con '%s'"
 
 #, c-format
 msgid "could not run 'git status' in submodule '%s'"
-msgstr "không thể chạy “git status” trong mô-đun-con “%s”"
+msgstr "không thể chạy 'git status' trong mô-đun-con '%s'"
 
 #, c-format
 msgid "Could not unset core.worktree setting in submodule '%s'"
-msgstr "Không thể đặt core.worktree trong mô-đun-con “%s”"
+msgstr "Không thể đặt core.worktree trong mô-đun-con '%s'"
 
 #, c-format
 msgid "could not recurse into submodule '%s'"
-msgstr "không thể đệ quy vào trong mô-đun-con “%s”"
+msgstr "không thể đệ quy vào trong mô-đun-con '%s'"
 
 msgid "could not reset submodule index"
-msgstr "không thể đặt lại mục lục của mô-đun-con"
+msgstr "không thể đặt lại chỉ mục của mô-đun-con"
 
 #, c-format
 msgid "submodule '%s' has dirty index"
-msgstr "mô-đun-con “%s” có mục lục còn bẩn"
+msgstr "mô-đun-con '%s' có chỉ mục không sạch"
 
 #, c-format
 msgid "Submodule '%s' could not be updated."
-msgstr "Mô-đun-con “%s” không thể được cập nhật."
+msgstr "Mô-đun-con '%s' không thể được cập nhật."
 
 #, c-format
 msgid "submodule git dir '%s' is inside git dir '%.*s'"
-msgstr "thư mục git mô đun con “%s” là bên trong git DIR “%.*s”"
+msgstr "thư mục git mô đun con '%s' là bên trong git DIR '%.*s'"
 
 #, c-format
 msgid ""
 "relocate_gitdir for submodule '%s' with more than one worktree not supported"
 msgstr ""
-"relocate_gitdir cho mô-đun-con “%s” với nhiều hơn một cây làm việc là chưa "
+"relocate_gitdir cho mô-đun-con '%s' với nhiều hơn một cây làm việc là chưa "
 "được hỗ trợ"
 
 #, c-format
 msgid "could not lookup name for submodule '%s'"
-msgstr "không thể tìm kiếm tên cho mô-đun-con “%s”"
+msgstr "không thể tìm kiếm tên cho mô-đun-con '%s'"
 
 #, c-format
 msgid "refusing to move '%s' into an existing git dir"
-msgstr "từ chối di chuyển “%s” vào trong một thư mục git sẵn có"
+msgstr "từ chối di chuyển '%s' vào trong một thư mục git sẵn có"
 
 #, c-format
 msgid ""
@@ -19995,12 +21269,12 @@ msgid ""
 "'%s' to\n"
 "'%s'\n"
 msgstr ""
-"Di cư thư mục git của “%s%s” từ\n"
-"“%s” sang\n"
-"“%s”\n"
+"Di cư thư mục git của '%s%s' từ\n"
+"'%s' sang\n"
+"'%s'\n"
 
 msgid "could not start ls-files in .."
-msgstr "không thể lấy thông tin thống kê về ls-files trong .."
+msgstr "không thể khởi chạy ls-files trong .."
 
 #, c-format
 msgid "ls-tree returned unexpected return code %d"
@@ -20008,13 +21282,26 @@ msgstr "ls-tree trả về mã không như mong đợi %d"
 
 #, c-format
 msgid "failed to lstat '%s'"
-msgstr "gặp lỗi khi lstat “%s”"
+msgstr "gặp lỗi khi lstat '%s'"
 
-msgid "unhandled options"
-msgstr "các tùy chọn được không xử lý"
+msgid "no remote configured to get bundle URIs from"
+msgstr "không có máy chủ để lấy URI bundle"
 
-msgid "error preparing revisions"
-msgstr "gặp lỗi khi chuẩn bị các điểm xét duyệt"
+#, c-format
+msgid "remote '%s' has no configured URL"
+msgstr "máy chủ '%s' không có cấu hình URL"
+
+msgid "could not get the bundle-uri list"
+msgstr "không thể lấy về danh sách bundle-uri"
+
+msgid "test-tool cache-tree <options> (control|prime|update)"
+msgstr "test-tool cache-tree <các tuỳ chọn> (control|prime|update)"
+
+msgid "clear the cache tree before each iteration"
+msgstr "dọn cây nhớ tạm trước mỗi chu kỳ"
+
+msgid "number of entries in the cache tree to invalidate (default 0)"
+msgstr "số mục cần huỷ trong câu nhớ tạm (mặc định 0)"
 
 #, c-format
 msgid "commit %s is not marked reachable"
@@ -20027,7 +21314,7 @@ msgid "test-tool serve-v2 [<options>]"
 msgstr "test-tool serve-v2 [<các tùy chọn>]"
 
 msgid "exit immediately after advertising capabilities"
-msgstr "thoát ngay sau khi khởi tạo quảng cáo capabilities"
+msgstr "thoát ngay sau khi quảng bá capabilities"
 
 msgid "test-helper simple-ipc is-active    [<name>] [<options>]"
 msgstr "test-helper simple-ipc is-active    [<tên>] [<các tùy chọn>]"
@@ -20062,7 +21349,7 @@ msgid "named-pipe name"
 msgstr "tên named-pipe"
 
 msgid "number of threads in server thread pool"
-msgstr "số lượng tiến trình trong kho tiến trình máy phục vụ"
+msgstr "số lượng tiến trình trong kho tiến trình máy chủ"
 
 msgid "seconds to wait for daemon to start or stop"
 msgstr "số giây mà dịch vụ chạy nền chờ khi khởi động hoặc dừng"
@@ -20083,67 +21370,44 @@ msgid "token"
 msgstr "thẻ bài"
 
 msgid "command token to send to the server"
-msgstr "thẻ bài lệnh để gửi lên cho máy phục vụ"
+msgstr "thẻ bài lệnh để gửi lên cho máy chủ"
 
 #, c-format
 msgid "running trailer command '%s' failed"
-msgstr "chạy lệnh kéo theo “%s” gặp lỗi"
+msgstr "chạy lệnh kéo theo '%s' gặp lỗi"
 
 #, c-format
 msgid "unknown value '%s' for key '%s'"
-msgstr "không hiểu giá trị “%s” cho khóa “%s”"
+msgstr "không hiểu giá trị '%s' cho khóa '%s'"
 
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
-msgstr "thẻ thừa trống rỗng trong phần thừa “%.*s”"
-
-#, c-format
-msgid "could not read input file '%s'"
-msgstr "không đọc được tập tin đầu vào “%s”"
-
-#, c-format
-msgid "could not stat %s"
-msgstr "không thể lấy thông tin thống kê về %s"
-
-#, c-format
-msgid "file %s is not a regular file"
-msgstr "\"%s\" không phải là tập tin bình thường"
-
-#, c-format
-msgid "file %s is not writable by user"
-msgstr "tập tin %s người dùng không thể ghi được"
-
-msgid "could not open temporary file"
-msgstr "không thể tạo tập tin tạm thời"
-
-#, c-format
-msgid "could not rename temporary file to %s"
-msgstr "không thể đổi tên tập tin tạm thời thành %s"
+msgstr "thẻ thừa trống rỗng trong phần thừa '%.*s'"
 
 msgid "full write to remote helper failed"
-msgstr "ghi đầy đủ lên bộ hỗ trợ máy chủ gặp lỗi"
+msgstr "ghi đầy đủ lên helper máy chủ gặp lỗi"
 
 #, c-format
 msgid "unable to find remote helper for '%s'"
-msgstr "không thể tìm thấy bộ hỗ trợ máy chủ cho “%s”"
+msgstr "không thể tìm thấy helper máy chủ cho '%s'"
 
 msgid "can't dup helper output fd"
-msgstr "không thể nhân đôi fd dầu ra bộ hỗ trợ"
+msgstr "không thể nhân đôi fd dầu ra helper"
 
 #, c-format
 msgid ""
 "unknown mandatory capability %s; this remote helper probably needs newer "
 "version of Git"
 msgstr ""
-"không hiểu capability bắt buộc %s; bộ hỗ trợ máy chủ này gần như chắc chắn "
-"là cần phiên bản Git mới hơn"
+"không hiểu capability bắt buộc %s; helper máy chủ này gần như chắc chắn là "
+"cần phiên bản Git mới hơn"
 
 msgid "this remote helper should implement refspec capability"
-msgstr "bộ hỗ trợ máy chủ này cần phải thực thi capability đặc tả tham chiếu"
+msgstr "remote helper này cần hỗ trợ capability đặc tả tham chiếu"
 
 #, c-format
 msgid "%s unexpectedly said: '%s'"
-msgstr "%s said bất ngờ: “%s”"
+msgstr "%s bất ngờ trả lời: '%s'"
 
 #, c-format
 msgid "%s also locked %s"
@@ -20169,9 +21433,6 @@ msgstr "giao thức này không hỗ trợ cài đặt đường dẫn dịch v
 msgid "invalid remote service path"
 msgstr "đường dẫn dịch vụ máy chủ không hợp lệ"
 
-msgid "operation not supported by protocol"
-msgstr "thao tác không được gia thức hỗ trợ"
-
 #, c-format
 msgid "can't connect to subservice %s"
 msgstr "không thể kết nối đến dịch vụ phụ %s"
@@ -20180,15 +21441,15 @@ msgid "--negotiate-only requires protocol v2"
 msgstr "--negotiate-only cần giao thức v2"
 
 msgid "'option' without a matching 'ok/error' directive"
-msgstr "“option” không có chỉ thị “ok/error” tương ứng"
+msgstr "'option' không có chỉ thị 'ok/error' tương ứng"
 
 #, c-format
 msgid "expected ok/error, helper said '%s'"
-msgstr "cần ok/error, nhưng bộ hỗ trợ lại nói “%s”"
+msgstr "cần ok/error, nhưng helper lại nói '%s'"
 
 #, c-format
 msgid "helper reported unexpected status of %s"
-msgstr "bộ hỗ trợ báo cáo rằng không cần tình trạng của %s"
+msgstr "helper báo cáo tình trạng bất thường của %s"
 
 #, c-format
 msgid "helper %s does not support dry-run"
@@ -20212,14 +21473,14 @@ msgstr "helper %s không hỗ trợ --%s"
 
 #, c-format
 msgid "helper %s does not support 'push-option'"
-msgstr "helper %s không hỗ trợ “push-option”"
+msgstr "helper %s không hỗ trợ 'push-option'"
 
 msgid "remote-helper doesn't support push; refspec needed"
 msgstr "remote-helper không hỗ trợ push; cần đặc tả tham chiếu"
 
 #, c-format
-msgid "helper %s does not support 'force'"
-msgstr "helper %s không hỗ trợ “force”"
+msgid "helper %s does not support '--force'"
+msgstr "helper %s không hỗ trợ '--force'"
 
 msgid "couldn't run fast-export"
 msgstr "không thể chạy fast-export"
@@ -20238,7 +21499,7 @@ msgstr ""
 
 #, c-format
 msgid "unsupported object format '%s'"
-msgstr "không hỗ trợ định dạng đối tượng “%s”"
+msgstr "không hỗ trợ định dạng đối tượng '%s'"
 
 #, c-format
 msgid "malformed response in ref list: %s"
@@ -20277,18 +21538,18 @@ msgstr "không thể khởi chạy tuyến trình cho việc chép dữ liệu"
 
 #, c-format
 msgid "Would set upstream of '%s' to '%s' of '%s'\n"
-msgstr "Không thể đặt thượng nguồn của “%s” thành “%s” của “%s”\n"
+msgstr "Không thể đặt thượng nguồn của '%s' thành '%s' của '%s'\n"
 
 #, c-format
 msgid "could not read bundle '%s'"
-msgstr "không thể đọc bó “%s”"
+msgstr "không thể đọc bó '%s'"
 
 #, c-format
 msgid "transport: invalid depth option '%s'"
-msgstr "vận chuyển: tùy chọn độ sâu “%s” không hợp lệ"
+msgstr "vận chuyển: tùy chọn độ sâu '%s' không hợp lệ"
 
 msgid "see protocol.version in 'git help config' for more details"
-msgstr "xem protocol.version trong “git help config” để có thêm thông tin"
+msgstr "xem protocol.version trong 'git help config' để có thêm thông tin"
 
 msgid "server options require protocol version 2 or later"
 msgstr "các tùy chọn máy chủ yêu cầu giao thức phiên bản 2 hoặc mới hơn"
@@ -20297,18 +21558,14 @@ msgid "server does not support wait-for-done"
 msgstr "máy chủ không hỗ trợ wait-for-done"
 
 msgid "could not parse transport.color.* config"
-msgstr "không thể phân tích cú pháp cấu hình transport.color.*"
+msgstr "không hiểu cú pháp cấu hình transport.color.*"
 
 msgid "support for protocol v2 not implemented yet"
-msgstr "việc hỗ trợ giao thức v2 chưa được thực hiện"
-
-#, c-format
-msgid "unknown value for config '%s': %s"
-msgstr "không hiểu giá trị cho cho cấu hình “%s”: %s"
+msgstr "chưa hỗ trợ giao thức v2"
 
 #, c-format
 msgid "transport '%s' not allowed"
-msgstr "không cho phép phương thức vận chuyển “%s”"
+msgstr "không cho phép phương thức vận chuyển '%s'"
 
 msgid "git-over-rsync is no longer supported"
 msgstr "git-over-rsync không còn được hỗ trợ nữa"
@@ -20319,7 +21576,7 @@ msgid ""
 "not be found on any remote:\n"
 msgstr ""
 "Các đường dẫn mô-đun-con sau đây có chứa các thay đổi cái mà\n"
-"có thể được tìm thấy trên mọi máy phục vụ:\n"
+"có thể được tìm thấy trên mọi máy chủ:\n"
 
 #, c-format
 msgid ""
@@ -20344,20 +21601,29 @@ msgstr ""
 "\n"
 "\tgit push\n"
 "\n"
-"để đẩy chúng lên máy phục vụ.\n"
+"để đẩy chúng lên máy chủ.\n"
 "\n"
 
 msgid "Aborting."
-msgstr "Bãi bỏ."
+msgstr "huỷ bỏ."
 
 msgid "failed to push all needed submodules"
 msgstr "gặp lỗi khi đẩy dữ liệu của tất cả các mô-đun-con cần thiết"
 
+msgid "bundle-uri operation not supported by protocol"
+msgstr "thao tác bundle-uri không được giao thức hỗ trợ"
+
+msgid "could not retrieve server-advertised bundle-uri list"
+msgstr "không thể lấy về danh sách bundle-uri do phía máy chủ quảng bá"
+
+msgid "operation not supported by protocol"
+msgstr "thao tác không được giao thức hỗ trợ"
+
 msgid "too-short tree object"
 msgstr "đối tượng cây quá ngắn"
 
 msgid "malformed mode in tree entry"
-msgstr "chế độ dị hình trong đề mục cây"
+msgstr "chế độ sai quy cách trong đề mục cây"
 
 msgid "empty filename in tree entry"
 msgstr "tên tập tin trống rỗng trong mục tin cây"
@@ -20452,7 +21718,7 @@ msgid ""
 "The following untracked working tree files would be removed by checkout:\n"
 "%%s"
 msgstr ""
-"Các tập tin cây làm viá»\87c chÆ°a Ä\91ược theo dõi sau Ä\91ây sẽ bá»\8b gỡ bá»\8f bá»\9fi lá»\87nh "
+"Các tập tin trong cây làm viá»\87c chÆ°a Ä\91ược theo dõi sau sẽ bá»\8b xoá bá»\8f bá»\9fi lá»\87nh "
 "checkout:\n"
 "%%s"
 
@@ -20461,17 +21727,17 @@ msgid ""
 "The following untracked working tree files would be removed by merge:\n"
 "%%sPlease move or remove them before you merge."
 msgstr ""
-"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị gỡ bỏ bởi lệnh hòa "
-"trộn:\n"
-"%%sVui lòng di chuyển hay gỡ bá»\8f chúng trÆ°á»\9bc khi bạn hòa trá»\99n."
+"Các tập tin trong cây làm việc chưa được theo dõi sau sẽ bị xoá bỏ bởi lệnh "
+"hòa trộn:\n"
+"%%sVui lòng di chuyển hay xoá bá»\8f chúng trÆ°á»\9bc khi bạn hòa trá»\99n."
 
 #, c-format
 msgid ""
 "The following untracked working tree files would be removed by merge:\n"
 "%%s"
 msgstr ""
-"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị gỡ bỏ bởi lệnh hòa "
-"trộn:\n"
+"Các tập tin trong cây làm việc chưa được theo dõi sau sẽ bị xoá bỏ bởi lệnh "
+"hòa trộn:\n"
 "%%s"
 
 #, c-format
@@ -20479,15 +21745,15 @@ msgid ""
 "The following untracked working tree files would be removed by %s:\n"
 "%%sPlease move or remove them before you %s."
 msgstr ""
-"Các tập tin cây làm viá»\87c chÆ°a Ä\91ược theo dõi sau Ä\91ây sẽ bá»\8b gỡ bá»\8f bá»\9fi %s:\n"
-"%%sVui lòng di chuyển hay gỡ bá»\8f chúng trÆ°á»\9bc khi bạn %s."
+"Các tập tin trong cây làm viá»\87c chÆ°a Ä\91ược theo dõi sau sẽ bá»\8b xoá bá»\8f bá»\9fi %s:\n"
+"%%sVui lòng di chuyển hay xoá bá»\8f chúng trÆ°á»\9bc khi bạn %s."
 
 #, c-format
 msgid ""
 "The following untracked working tree files would be removed by %s:\n"
 "%%s"
 msgstr ""
-"Các tập tin cây làm viá»\87c chÆ°a Ä\91ược theo dõi sau Ä\91ây sẽ bá»\8b gỡ bá»\8f bá»\9fi %s:\n"
+"Các tập tin trong cây làm viá»\87c chÆ°a Ä\91ược theo dõi sau sẽ bá»\8b xoá bá»\8f bá»\9fi %s:\n"
 "%%s"
 
 #, c-format
@@ -20496,9 +21762,9 @@ msgid ""
 "checkout:\n"
 "%%sPlease move or remove them before you switch branches."
 msgstr ""
-"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị ghi đè bởi lệnh "
+"Các tập tin trong cây làm việc chưa được theo dõi sau sẽ bị ghi đè bởi lệnh "
 "checkout:\n"
-"%%sVui lòng di chuyển hay gỡ bá»\8f chúng trÆ°á»\9bc khi bạn chuyá»\83n nhánh."
+"%%sVui lòng di chuyển hay xoá bá»\8f chúng trÆ°á»\9bc khi bạn chuyá»\83n nhánh."
 
 #, c-format
 msgid ""
@@ -20506,7 +21772,7 @@ msgid ""
 "checkout:\n"
 "%%s"
 msgstr ""
-"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị ghi đè bởi lệnh "
+"Các tập tin trong cây làm việc chưa được theo dõi sau sẽ bị ghi đè bởi lệnh "
 "checkout:\n"
 "%%s"
 
@@ -20515,16 +21781,16 @@ msgid ""
 "The following untracked working tree files would be overwritten by merge:\n"
 "%%sPlease move or remove them before you merge."
 msgstr ""
-"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị ghi đè bởi lệnh "
+"Các tập tin trong cây làm việc chưa được theo dõi sau sẽ bị ghi đè bởi lệnh "
 "hòa trộn:\n"
-"%%sVui lòng di chuyển hay gỡ bá»\8f chúng trÆ°á»\9bc khi bạn hòa trá»\99n."
+"%%sVui lòng di chuyển hay xoá bá»\8f chúng trÆ°á»\9bc khi bạn hòa trá»\99n."
 
 #, c-format
 msgid ""
 "The following untracked working tree files would be overwritten by merge:\n"
 "%%s"
 msgstr ""
-"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị ghi đè bởi lệnh "
+"Các tập tin trong cây làm việc chưa được theo dõi sau sẽ bị ghi đè bởi lệnh "
 "hòa trộn:\n"
 "%%s"
 
@@ -20533,22 +21799,22 @@ msgid ""
 "The following untracked working tree files would be overwritten by %s:\n"
 "%%sPlease move or remove them before you %s."
 msgstr ""
-"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị ghi đè bởi lệnh "
+"Các tập tin trong cây làm việc chưa được theo dõi sau sẽ bị ghi đè bởi lệnh "
 "%s:\n"
-"%%sVui lòng di chuyển hay gỡ bỏ chúng trước khi bạn %s."
+"%%sVui lòng di chuyển hay xoá chúng trước khi bạn %s."
 
 #, c-format
 msgid ""
 "The following untracked working tree files would be overwritten by %s:\n"
 "%%s"
 msgstr ""
-"Các tập tin cây làm việc chưa được theo dõi sau đây sẽ bị ghi đè bởi lệnh "
+"Các tập tin trong cây làm việc chưa được theo dõi sau sẽ bị ghi đè bởi lệnh "
 "%s:\n"
 "%%s"
 
 #, c-format
 msgid "Entry '%s' overlaps with '%s'.  Cannot bind."
-msgstr "Mục “%s” đè lên “%s”. Không thể buộc."
+msgstr "Mục '%s' đè lên '%s'. Không thể bind."
 
 #, c-format
 msgid ""
@@ -20564,7 +21830,7 @@ msgid ""
 "patterns:\n"
 "%s"
 msgstr ""
-"Các đường dẫn sau đây không được cập nhật và vẫn được để lại bất chấp các "
+"Các đường dẫn sau đây chưa được cập nhật và vẫn được để lại mặc dù khớp các "
 "mẫu sparse:\n"
 "%s"
 
@@ -20583,21 +21849,21 @@ msgid ""
 "patterns:\n"
 "%s"
 msgstr ""
-"Các đường dẫn sau đây đã sẵn hiện diện và như vậy không được cập nhật bất "
-"cấp các mẫu sparse:\n"
+"Các đường dẫn sau đây đã tồn tại và như vậy không được cập nhật mặc dù khớp "
+"các mẫu sparse:\n"
 "%s"
 
 #, c-format
 msgid "Aborting\n"
-msgstr "Bãi bỏ\n"
+msgstr "Huỷ bỏ\n"
 
 #, c-format
 msgid ""
 "After fixing the above paths, you may want to run `git sparse-checkout "
 "reapply`.\n"
 msgstr ""
-"Sau khi sửa các đường dẫn phía trên, bạn có thể chạy git sparse-checkout "
-"reapply.\n"
+"Sau khi sửa các đường dẫn phía trên, bạn có thể chạy 'git sparse-checkout "
+"reapply'.\n"
 
 msgid "Updating files"
 msgstr "Đang cập nhật các tập tin"
@@ -20607,12 +21873,12 @@ msgid ""
 "on a case-insensitive filesystem) and only one from the same\n"
 "colliding group is in the working tree:\n"
 msgstr ""
-"các đường dẫn sau đây có xung đột(vd: các đường dẫn phân biệt\n"
-"HOA/thường trên một hệ thống tập tin không phân biệt HOA/thường)\n"
-"và chỉ một từ cùng một nhóm xung đột là trong cây làm việc hiện tại:\n"
+"các đường dẫn sau đây có xung đột (vd: các đường dẫn phân biệt HOA/thường\n"
+"trên hệ thống tập tin không phân biệt HOA/thường) và chỉ một đường dẫn\n"
+"trong nhóm xung đột nằm trong cây làm việc hiện tại:\n"
 
 msgid "Updating index flags"
-msgstr "Đang cập nhật các cờ mục lục"
+msgstr "Đang cập nhật các cờ chỉ mục"
 
 #, c-format
 msgid "worktree and untracked commit have duplicate entries: %s"
@@ -20623,17 +21889,17 @@ msgid "expected flush after fetch arguments"
 msgstr "cần đẩy dữ liệu lên đĩa sau các tham số của lệnh fetch"
 
 msgid "invalid URL scheme name or missing '://' suffix"
-msgstr "tên lược đồ URL không hợp lệ, hoặc thiếu hậu tố “://”"
+msgstr "tên lược đồ URL không hợp lệ, hoặc thiếu hậu tố '://'"
 
 #, c-format
 msgid "invalid %XX escape sequence"
 msgstr "thoát chuỗi %XX không hợp lệ"
 
 msgid "missing host and scheme is not 'file:'"
-msgstr "thiếu máy chủ và lược đồ thì không phải là giao thức “file:”"
+msgstr "thiếu máy chủ và lược đồ không phải là 'file:'"
 
 msgid "a 'file:' URL may not have a port number"
-msgstr "một URL kiểu “file:” không được chứa cổng"
+msgstr "URL kiểu 'file:' không được chứa cổng"
 
 msgid "invalid characters in host name"
 msgstr "có các ký tự không hợp lệ trong tên máy"
@@ -20642,27 +21908,43 @@ msgid "invalid port number"
 msgstr "tên cổng không hợp lệ"
 
 msgid "invalid '..' path segment"
-msgstr "đoạn đường dẫn “..” không hợp lệ"
+msgstr "đoạn đường dẫn '..' không hợp lệ"
+
+#, c-format
+msgid "error: unable to format message: %s\n"
+msgstr "lỗi: không thể định dạng thông điệp: %s\n"
+
+msgid "usage: "
+msgstr "cách dùng: %s"
+
+msgid "fatal: "
+msgstr "lỗi nghiêm trọng: "
+
+msgid "error: "
+msgstr "lỗi: "
+
+msgid "warning: "
+msgstr "cảnh báo: "
 
 msgid "Fetching objects"
 msgstr "Đang lấy về các đối tượng"
 
 #, c-format
 msgid "'%s' at main working tree is not the repository directory"
-msgstr "“%s” tại cây làm việc chình không phải là thư mục kho"
+msgstr "'%s' tại cây làm việc chính không phải là thư mục kho"
 
 #, c-format
 msgid "'%s' file does not contain absolute path to the working tree location"
 msgstr ""
-"tập tin “%s” không chứa đường dẫn tuyệt đối đến vị trí cây làm việc hiện"
+"tập tin '%s' không chứa đường dẫn tuyệt đối đến vị trí cây làm việc hiện"
 
 #, c-format
 msgid "'%s' is not a .git file, error code %d"
-msgstr "“%s” không phải là tập tin .git, mã lỗi %d"
+msgstr "'%s' không phải là tập tin .git, mã lỗi %d"
 
 #, c-format
 msgid "'%s' does not point back to '%s'"
-msgstr "“%s” không chỉ ngược đến “%s”"
+msgstr "'%s' không chỉ ngược đến '%s'"
 
 msgid "not a directory"
 msgstr "không phải thư mục"
@@ -20671,7 +21953,7 @@ msgid ".git is not a file"
 msgstr ".git không phải là một tập tin"
 
 msgid ".git file broken"
-msgstr "tá»\87p .git bị hỏng"
+msgstr "tập tin .git bị hỏng"
 
 msgid ".git file incorrect"
 msgstr "tập tin .git không chính xác"
@@ -20680,13 +21962,13 @@ msgid "not a valid path"
 msgstr "không phải là một đường dẫn hợp lệ"
 
 msgid "unable to locate repository; .git is not a file"
-msgstr "không thể phân bổ kho chứa; .git không phải là một tập tin"
+msgstr "không thể định vị kho chứa; .git không phải là một tập tin"
 
 msgid "unable to locate repository; .git file does not reference a repository"
-msgstr "không thể phân bổ kho chứa; tập tin .git tham chiếu đến một kho"
+msgstr "không thể định vị kho chứa; tập tin .git không chỉ đến một kho"
 
 msgid "unable to locate repository; .git file broken"
-msgstr "không thể phân bổ kho chứa; tập tin .git bị hỏng"
+msgstr "không thể định vị kho chứa; tập tin .git bị hỏng"
 
 msgid "gitdir unreadable"
 msgstr "gitdir không thể đọc được"
@@ -20716,7 +21998,7 @@ msgstr "tập tin gitdir chỉ đến vị trí không tồn tại"
 
 #, c-format
 msgid "unable to set %s in '%s'"
-msgstr "không thể đặt %s trong “%s”"
+msgstr "không thể đặt %s trong '%s'"
 
 #, c-format
 msgid "unable to unset %s in '%s'"
@@ -20727,48 +22009,49 @@ msgstr "gặp lỗi khi đặt cài đặt extensions.worktreeConfig"
 
 #, c-format
 msgid "could not setenv '%s'"
-msgstr "không thể setenv “%s”"
+msgstr "không thể setenv '%s'"
 
 #, c-format
 msgid "unable to create '%s'"
-msgstr "không thể tạo “%s”"
+msgstr "không thể tạo '%s'"
 
 #, c-format
 msgid "could not open '%s' for reading and writing"
-msgstr "không thể mở “%s” để đọc và ghi"
+msgstr "không thể mở '%s' để đọc và ghi"
 
 #, c-format
 msgid "unable to access '%s'"
-msgstr "không thể truy cập “%s”"
+msgstr "không thể truy cập '%s'"
 
 msgid "unable to get current working directory"
 msgstr "không thể lấy thư mục làm việc hiện hành"
 
+msgid "unable to get random bytes"
+msgstr "không thể lấy byte ngẫu nhiên"
+
 msgid "Unmerged paths:"
 msgstr "Những đường dẫn chưa được hòa trộn:"
 
 msgid "  (use \"git restore --staged <file>...\" to unstage)"
-msgstr "  (dùng \"git restore --staged <tập-tin>\" để bỏ ra khỏi bệ phóng)"
+msgstr "  (dùng \"git restore --staged <tập-tin>...\" để bỏ ra khỏi bệ phóng)"
 
 #, c-format
 msgid "  (use \"git restore --source=%s --staged <file>...\" to unstage)"
 msgstr ""
-"  (dùng \"git restore --source=%s --staged <tập-tin>\" để bỏ ra khỏi bệ "
+"  (dùng \"git restore --source=%s --staged <tập-tin>...\" để bỏ ra khỏi bệ "
 "phóng)"
 
 msgid "  (use \"git rm --cached <file>...\" to unstage)"
-msgstr "  (dùng \"git rm --cached <tập-tin>\" để bỏ ra khỏi bệ phóng)"
+msgstr "  (dùng \"git rm --cached <tập-tin>...\" để bỏ ra khỏi bệ phóng)"
 
 msgid "  (use \"git add <file>...\" to mark resolution)"
-msgstr "  (dùng \"git add <tập-tin>…\" để đánh dấu là cần giải quyết)"
+msgstr "  (dùng \"git add <tập-tin>...\" để đánh dấu là muốn thêm)"
 
 msgid "  (use \"git add/rm <file>...\" as appropriate to mark resolution)"
-msgstr ""
-"  (dùng \"git add/rm <tập-tin>…\" như là một cách thích hợp để đánh dấu là "
-"cần được giải quyết)"
+msgstr "  (dùng \"git add/rm <tập-tin>...\" để đánh dấu là muốn thêm/xoá)"
 
 msgid "  (use \"git rm <file>...\" to mark resolution)"
-msgstr "  (dùng \"git rm <tập-tin>…\" để đánh dấu là cần giải quyết)"
+msgstr "  (dùng \"git rm <tập-tin>...\" để đánh dấu là muốn xoá)"
 
 msgid "Changes to be committed:"
 msgstr "Những thay đổi sẽ được chuyển giao:"
@@ -20777,45 +22060,46 @@ msgid "Changes not staged for commit:"
 msgstr "Các thay đổi chưa được đặt lên bệ phóng để chuyển giao:"
 
 msgid "  (use \"git add <file>...\" to update what will be committed)"
-msgstr "  (dùng \"git add <tập-tin>…\" để cập nhật những gì sẽ chuyển giao)"
+msgstr ""
+"  (dùng \"git add <tập-tin>...\" để cập nhật những gì sẽ được chuyển giao)"
 
 msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
 msgstr ""
-"  (dùng \"git add/rm <tập-tin>\" để cập nhật những gì sẽ được chuyển giao)"
+"  (dùng \"git add/rm <tập-tin>...\" để cập nhật những gì sẽ được chuyển giao)"
 
 msgid ""
 "  (use \"git restore <file>...\" to discard changes in working directory)"
 msgstr ""
-"  (dùng \"git restore <tập-tin>…\" để loại bỏ các thay đổi trong thư mục làm "
-"việc)"
+"  (dùng \"git restore <tập-tin>...\" để loại bỏ các thay đổi trong thư mục "
+"làm việc)"
 
 msgid "  (commit or discard the untracked or modified content in submodules)"
 msgstr ""
 "  (chuyển giao hoặc là loại bỏ các nội dung chưa được theo dõi hay đã sửa "
-"chữa trong mô-đun-con)"
+"trong mô-đun-con)"
 
 #, c-format
 msgid "  (use \"git %s <file>...\" to include in what will be committed)"
 msgstr ""
-"  (dùng \"git %s <tập-tin>\" để thêm vào những gì cần được chuyển giao)"
+"  (dùng \"git %s <tập-tin>...\" để thêm vào những gì cần được chuyển giao)"
 
 msgid "both deleted:"
-msgstr "bị xóa bởi cả hai:"
+msgstr "bị cả hai xóa đi:"
 
 msgid "added by us:"
-msgstr "được thêm vào bởi chúng ta:"
+msgstr "được ta thêm vào:"
 
 msgid "deleted by them:"
-msgstr "bị xóa đi bởi họ:"
+msgstr "bị họ xóa đi:"
 
 msgid "added by them:"
-msgstr "được thêm vào bởi họ:"
+msgstr "được họ thêm vào:"
 
 msgid "deleted by us:"
-msgstr "bị xóa bởi chúng ta:"
+msgstr "bị ta xóa đi:"
 
 msgid "both added:"
-msgstr "được thêm vào bởi cả hai:"
+msgstr "được cả hai thêm vào:"
 
 msgid "both modified:"
 msgstr "bị sửa bởi cả hai:"
@@ -20836,10 +22120,10 @@ msgid "renamed:"
 msgstr "đã đổi tên:"
 
 msgid "typechange:"
-msgstr "đổi-kiểu:"
+msgstr "đổi kiểu:"
 
 msgid "unknown:"
-msgstr "không hiểu:"
+msgstr "không :"
 
 msgid "unmerged:"
 msgstr "chưa hòa trộn:"
@@ -20856,20 +22140,20 @@ msgstr "nội dung chưa được theo dõi, "
 #, c-format
 msgid "Your stash currently has %d entry"
 msgid_plural "Your stash currently has %d entries"
-msgstr[0] "Bạn hiện nay ở trong phần cất đi đang có %d mục"
+msgstr[0] "Hiện trong phần cất đi đang có %d mục"
 
 msgid "Submodules changed but not updated:"
 msgstr "Những mô-đun-con đã bị thay đổi nhưng chưa được cập nhật:"
 
 msgid "Submodule changes to be committed:"
-msgstr "Những mô-đun-con thay đổi đã được chuyển giao:"
+msgstr "Những thay đổi mô-đun-con sẽ được chuyển giao:"
 
 msgid ""
 "Do not modify or remove the line above.\n"
 "Everything below it will be ignored."
 msgstr ""
 "Không sửa hay xóa bỏ đường ở trên.\n"
-"Mọi thứ phía dưới sẽ được xóa bỏ."
+"Mọi thứ phía dưới sẽ được bỏ qua."
 
 #, c-format
 msgid ""
@@ -20878,8 +22162,8 @@ msgid ""
 "You can use '--no-ahead-behind' to avoid this.\n"
 msgstr ""
 "\n"
-"Nó cần %.2f giây để tính toán giá trị của trước/sau của nhánh.\n"
-"Bạn có thể dùng “--no-ahead-behind” tránh phải điều này.\n"
+"Cần tới %.2f giây để tính toán giá trị đứng trước/sau của nhánh.\n"
+"Bạn có thể dùng '--no-ahead-behind' để bỏ qua.\n"
 
 msgid "You have unmerged paths."
 msgstr "Bạn có những đường dẫn chưa được hòa trộn."
@@ -20888,7 +22172,7 @@ msgid "  (fix conflicts and run \"git commit\")"
 msgstr "  (sửa các xung đột rồi chạy \"git commit\")"
 
 msgid "  (use \"git merge --abort\" to abort the merge)"
-msgstr "  (dùng \"git merge --abort\" để bãi bỏ việc hòa trộn)"
+msgstr "  (dùng \"git merge --abort\" để huỷ bỏ việc hòa trộn)"
 
 msgid "All conflicts fixed but you are still merging."
 msgstr "Tất cả các xung đột đã được giải quyết nhưng bạn vẫn đang hòa trộn."
@@ -20897,112 +22181,107 @@ msgid "  (use \"git commit\" to conclude merge)"
 msgstr "  (dùng \"git commit\" để hoàn tất việc hòa trộn)"
 
 msgid "You are in the middle of an am session."
-msgstr "Bạn đang ở giữa của một phiên “am”."
+msgstr "Bạn đang trong một phiên 'am' (áp dụng bản vá từ hòm thư)."
 
 msgid "The current patch is empty."
-msgstr "Miếng vá hiện tại bị trống rỗng."
+msgstr "bản vá hiện tại bị trống."
 
 msgid "  (fix conflicts and then run \"git am --continue\")"
 msgstr "  (sửa các xung đột và sau đó chạy lệnh \"git am --continue\")"
 
 msgid "  (use \"git am --skip\" to skip this patch)"
-msgstr "  (dùng \"git am --skip\" để bỏ qua miếng vá này)"
+msgstr "  (dùng \"git am --skip\" để bỏ qua bản vá này)"
 
 msgid ""
 "  (use \"git am --allow-empty\" to record this patch as an empty commit)"
 msgstr ""
-"  (dùng \"git am --allow-empty\" ghi miếng vá này như một lần chuyển giao "
+"  (dùng \"git am --allow-empty\" để ghi bản vá này thành một lần chuyển giao "
 "rỗng)"
 
 msgid "  (use \"git am --abort\" to restore the original branch)"
-msgstr "  (dùng \"git am --abort\" để phục hồi lại nhánh nguyên thủy)"
+msgstr "  (dùng \"git am --abort\" để phục hồi lại nhánh gốc)"
 
 msgid "git-rebase-todo is missing."
 msgstr "thiếu git-rebase-todo."
 
 msgid "No commands done."
-msgstr "Không thực hiện lệnh nào."
+msgstr "Chưa thực hiện lệnh nào."
 
 #, c-format
 msgid "Last command done (%<PRIuMAX> command done):"
 msgid_plural "Last commands done (%<PRIuMAX> commands done):"
-msgstr[0] "Lệnh thực hiện cuối (%<PRIuMAX> lệnh được thực thi):"
+msgstr[0] "Lệnh thực hiện cuối (đã thực thi %<PRIuMAX> lệnh):"
 
 #, c-format
 msgid "  (see more in file %s)"
 msgstr "  (xem thêm trong %s)"
 
 msgid "No commands remaining."
-msgstr "Không có lá»\87nh nào còn lại."
+msgstr "Không còn lá»\87nh nào."
 
 #, c-format
 msgid "Next command to do (%<PRIuMAX> remaining command):"
 msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
-msgstr[0] "Lệnh cần làm kế tiếp (%<PRIuMAX> lệnh còn lại):"
+msgstr[0] "Lệnh cần làm kế tiếp (còn %<PRIuMAX> lệnh):"
 
 msgid "  (use \"git rebase --edit-todo\" to view and edit)"
 msgstr "  (dùng lệnh \"git rebase --edit-todo\" để xem và sửa)"
 
 #, c-format
 msgid "You are currently rebasing branch '%s' on '%s'."
-msgstr "Bạn hiện nay đang thực hiện việc “rebase” nhánh “%s” trên “%s”."
+msgstr "Bạn hiện đang thực hiện rebase (cải tổ) nhánh '%s' lên '%s'."
 
 msgid "You are currently rebasing."
-msgstr "Bạn hiện nay đang thực hiện việc “rebase” (cải tổ)."
+msgstr "Bạn hiện đang thực hiện rebase (cải tổ)."
 
 msgid "  (fix conflicts and then run \"git rebase --continue\")"
-msgstr ""
-"  (sửa các xung đột và sau đó chạy lệnh “cải tổ” \"git rebase --continue\")"
+msgstr "  (sửa các xung đột và sau đó chạy lệnh \"git rebase --continue\")"
 
 msgid "  (use \"git rebase --skip\" to skip this patch)"
-msgstr "  (dùng lệnh “cải tổ” \"git rebase --skip\" để bỏ qua lần vá này)"
+msgstr "  (dùng lệnh \"git rebase --skip\" để bỏ qua bản vá này)"
 
 msgid "  (use \"git rebase --abort\" to check out the original branch)"
-msgstr ""
-"  (dùng lệnh “cải tổ” \"git rebase --abort\" để check-out nhánh nguyên thủy)"
+msgstr "  (dùng lệnh \"git rebase --abort\" để check-out nhánh gốc)"
 
 msgid "  (all conflicts fixed: run \"git rebase --continue\")"
 msgstr ""
-"  (khi tất cả các xung đột đã sửa xong: chạy lệnh “cải tổ” \"git rebase --"
-"continue\")"
+"  (khi tất cả các xung đột đã sửa xong: chạy lệnh \"git rebase --continue\")"
 
 #, c-format
 msgid ""
 "You are currently splitting a commit while rebasing branch '%s' on '%s'."
 msgstr ""
-"Bạn hiện nay đang thực hiện việc chia tách một lần chuyển giao trong khi "
-"đang “rebase” nhánh “%s” trên “%s”."
+"Bạn hiện đang chia nhỏ một lần chuyển giao trong khi đang rebase nhánh '%s' "
+"lên '%s'."
 
 msgid "You are currently splitting a commit during a rebase."
 msgstr ""
-"Bạn hiện tại đang cắt đôi một lần chuyển giao trong khi đang thực hiện việc "
-"rebase."
+"Bạn hiện đang chia nhỏ một lần chuyển giao trong khi đang thực hiện rebase."
 
 msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
 msgstr ""
-"  (Một khi thư mục làm việc của bạn đã gọn gàng, chạy lệnh “cải tổ” \"git "
-"rebase --continue\")"
+"  (Sau khi thư mục làm việc đã ổn, chạy lệnh \"git rebase --continue\")"
 
 #, c-format
 msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
 msgstr ""
-"Bạn hiện nay đang thực hiện việc sửa chữa một lần chuyển giao trong khi đang "
-"rebase nhánh “%s” trên “%s”."
+"Bạn hiện đang thực hiện sửa chữa một lần chuyển giao trong khi đang rebase "
+"nhánh '%s' lên '%s'."
 
 msgid "You are currently editing a commit during a rebase."
-msgstr "Bạn hiện đang sửa một lần chuyển giao trong khi bạn thực hiện rebase."
+msgstr "Bạn hiện đang sửa một lần chuyển giao trong khi đang thực hiện rebase."
 
 msgid "  (use \"git commit --amend\" to amend the current commit)"
-msgstr "  (dùng \"git commit --amend\" để “tu bổ” lần chuyển giao hiện tại)"
+msgstr "  (dùng \"git commit --amend\" để tu bổ lần chuyển giao hiện tại)"
 
 msgid ""
 "  (use \"git rebase --continue\" once you are satisfied with your changes)"
 msgstr ""
-"  (chạy lệnh “cải tổ” \"git rebase --continue\" một khi bạn cảm thấy hài "
-"lòng về những thay đổi của mình)"
+"  (chạy lệnh \"git rebase --continue\" khi bạn cảm thấy hài lòng về những "
+"thay đổi của mình)"
 
 msgid "Cherry-pick currently in progress."
-msgstr "Cherry-pick hiện tại đang được thực hiện."
+msgstr "Cherry-pick hiện đang được thực hiện."
 
 #, c-format
 msgid "You are currently cherry-picking commit %s."
@@ -21021,17 +22300,17 @@ msgstr ""
 "continue\")"
 
 msgid "  (use \"git cherry-pick --skip\" to skip this patch)"
-msgstr "  (dùng \"git cherry-pick --skip\" để bỏ qua miếng vá này)"
+msgstr "  (dùng \"git cherry-pick --skip\" để bỏ qua bản vá này)"
 
 msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
 msgstr "  (dùng \"git cherry-pick --abort\" để hủy bỏ thao tác cherry-pick)"
 
 msgid "Revert currently in progress."
-msgstr "Hoàn nguyên hiện tại đang thực hiện."
+msgstr "Hoàn nguyên hiện đang được thực hiện."
 
 #, c-format
 msgid "You are currently reverting commit %s."
-msgstr "Bạn hiện nay đang thực hiện thao tác hoàn nguyên lần chuyển giao “%s”."
+msgstr "Bạn hiện nay đang thực hiện thao tác hoàn nguyên lần chuyển giao '%s'."
 
 msgid "  (fix conflicts and run \"git revert --continue\")"
 msgstr "  (sửa các xung đột và sau đó chạy lệnh \"git revert --continue\")"
@@ -21053,7 +22332,7 @@ msgstr "  (dùng \"git revert --abort\" để hủy bỏ thao tác hoàn nguyên
 msgid "You are currently bisecting, started from branch '%s'."
 msgstr ""
 "Bạn hiện nay đang thực hiện thao tác di chuyển nửa bước (bisect), bắt đầu từ "
-"nhánh “%s”."
+"nhánh '%s'."
 
 msgid "You are currently bisecting."
 msgstr "Bạn hiện tại đang thực hiện việc bisect (di chuyển nửa bước)."
@@ -21062,19 +22341,18 @@ msgid "  (use \"git bisect reset\" to get back to the original branch)"
 msgstr "  (dùng \"git bisect reset\" để quay trở lại nhánh nguyên thủy)"
 
 msgid "You are in a sparse checkout."
-msgstr "Bạn đang trong lần lấy ra sparse."
+msgstr "Bạn đang ở trong lần checkout thưa."
 
 #, c-format
 msgid "You are in a sparse checkout with %d%% of tracked files present."
 msgstr ""
-"Bạn đang ở trong lần lấy ra sparser %d%% của các tập tin được theo dõi hiện "
-"tại."
+"Bạn đang ở trong lần checkout thưa với %d%% tập tin hiện được theo dõi."
 
 msgid "On branch "
 msgstr "Trên nhánh "
 
 msgid "interactive rebase in progress; onto "
-msgstr "rebase ở chế độ tương tác đang được thực hiện; lên trên "
+msgstr "rebase  tương tác đang được thực hiện; lên trên "
 
 msgid "rebase in progress; onto "
 msgstr "rebase đang được thực hiện: lên trên "
@@ -21098,33 +22376,37 @@ msgid "Untracked files"
 msgstr "Những tập tin chưa được theo dõi"
 
 msgid "Ignored files"
-msgstr "Những tập tin bị lờ đi"
+msgstr "Những tập tin bị bỏ qua"
 
 #, c-format
 msgid ""
-"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
-"may speed it up, but you have to be careful not to forget to add\n"
-"new files yourself (see 'git help status')."
+"It took %.2f seconds to enumerate untracked files,\n"
+"but the results were cached, and subsequent runs may be faster."
 msgstr ""
-"Cần %.2f giây để liệt kê tất cả các tập tin chưa được theo dõi. “status -"
-"uno”\n"
-"có lẽ làm nó nhanh hơn, nhưng bạn phải cẩn thận đừng quên mình phải\n"
-"tự thêm các tập tin mới (xem “git help status”.."
+"Cần %.2f để duyệt các tập tin không được theo dõi,\n"
+"nhưng đã ghi nhớ kết quả, và các lần chạy sau sẽ nhanh hơn."
+
+#, c-format
+msgid "It took %.2f seconds to enumerate untracked files."
+msgstr "Cần %.2f để duyệt các tập tin không được theo dõi."
+
+msgid "See 'git help status' for information on how to improve this."
+msgstr "Xem 'git help status' để biết cách cải thiện việc này."
 
 #, c-format
 msgid "Untracked files not listed%s"
-msgstr "Những tập tin chưa được theo dõi không được liệt kê ra %s"
+msgstr "Không liệt kê những tập tin chưa được theo dõi%s"
 
 msgid " (use -u option to show untracked files)"
-msgstr " (dùng tùy chọn -u để hiển thị các tập tin chưa được theo dõi)"
+msgstr " (dùng tùy chọn -u để hiển thị những tập tin chưa được theo dõi)"
 
 msgid "No changes"
-msgstr "Không có thay đổi nào"
+msgstr "Không có thay đổi"
 
 #, c-format
 msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
 msgstr ""
-"không có thay đổi nào được thêm vào để chuyển giao (dùng \"git add\" và/hoặc "
+"không có thay đổi nào được thêm vào để chuyển giao (dùng \"git add\" hoặc "
 "\"git commit -a\")\n"
 
 #, c-format
@@ -21136,14 +22418,14 @@ msgid ""
 "nothing added to commit but untracked files present (use \"git add\" to "
 "track)\n"
 msgstr ""
-"không có gì được thêm vào lần chuyển giao nhưng có những tập tin chưa được "
-"theo dõi hiện diện (dùng \"git add\" để đưa vào theo dõi)\n"
+"không có gì được thêm vào để chuyển giao nhưng hiện có những tập tin chưa "
+"được theo dõi (dùng \"git add\" để đưa vào theo dõi)\n"
 
 #, c-format
 msgid "nothing added to commit but untracked files present\n"
 msgstr ""
-"không có gì được thêm vào lần chuyển giao nhưng có những tập tin chưa được "
-"theo dõi hiện diện\n"
+"không có gì được thêm vào lần chuyển giao nhưng có những tập tin hiện chưa "
+"được theo dõi\n"
 
 #, c-format
 msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
@@ -21158,26 +22440,27 @@ msgstr "không có gì để chuyển giao\n"
 #, c-format
 msgid "nothing to commit (use -u to show untracked files)\n"
 msgstr ""
-"không có gì để chuyển giao (dùng -u xem các tập tin chưa được theo dõi)\n"
+"không có gì để chuyển giao (dùng -u để xem những tập tin chưa được theo "
+"dõi)\n"
 
 #, c-format
 msgid "nothing to commit, working tree clean\n"
 msgstr "không có gì để chuyển giao, thư mục làm việc sạch sẽ\n"
 
 msgid "No commits yet on "
-msgstr "Vẫn không thực hiện lệnh chuyển giao nào "
+msgstr "Chưa thực hiện lệnh chuyển giao nào trên"
 
 msgid "HEAD (no branch)"
 msgstr "HEAD (không nhánh)"
 
 msgid "different"
-msgstr "khác"
+msgstr "khác nhau"
 
 msgid "behind "
-msgstr "Ä\91ằng sau "
+msgstr "Ä\91ứng sau "
 
 msgid "ahead "
-msgstr "phía trước "
+msgstr "đứng trước "
 
 #. TRANSLATORS: the action is e.g. "pull with rebase"
 #, c-format
@@ -21185,26 +22468,29 @@ msgid "cannot %s: You have unstaged changes."
 msgstr "không thể %s: Bạn có các thay đổi chưa được đưa lên bệ phóng."
 
 msgid "additionally, your index contains uncommitted changes."
-msgstr ""
-"thêm vào đó, bảng mục lục của bạn có chứa các thay đổi chưa được chuyển giao."
+msgstr "ngoài ra, chỉ mục của bạn có chứa các thay đổi chưa được chuyển giao."
 
 #, c-format
 msgid "cannot %s: Your index contains uncommitted changes."
 msgstr ""
-"không thể %s: Mục lục của bạn có chứa các thay đổi chưa được chuyển giao."
+"không thể %s: chỉ mục của bạn có chứa các thay đổi chưa được chuyển giao."
+
+#, c-format
+msgid "unknown style '%s' given for '%s'"
+msgstr "không hiểu style '%s' cho '%s'"
 
 msgid ""
 "Error: Your local changes to the following files would be overwritten by "
 "merge"
 msgstr ""
-"Lỗi: Các thay đổi nội bộ của bạn với các tập tin sau đây sẽ bị ghi đè bởi "
-"lệnh hòa trộn"
+"Lỗi: Các thay đổi nội bộ của bạn với các tập tin sau đây sẽ bị ghi đè khi "
+"hòa trộn"
 
 msgid "Automated merge did not work."
-msgstr "Hòa trộn một cách tự động không làm việc."
+msgstr "Hòa trộn tự động không thành công."
 
 msgid "Should not be doing an octopus."
-msgstr "Không thể thực hiện một octopus."
+msgstr "Không thể thực hiện hoà trộn kiểu bạch tuộc."
 
 #, sh-format
 msgid "Unable to find common commit with $pretty_name"
@@ -21223,7 +22509,7 @@ msgid "Trying simple merge with $pretty_name"
 msgstr "Đang thử hòa trộn đơn giản với $pretty_name"
 
 msgid "Simple merge did not work, trying automatic merge."
-msgstr "Hòa trộn đơn giản không làm việc, thử hòa trộn tự động."
+msgstr "Hòa trộn đơn giản không thành công, thử hòa trộn tự động."
 
 #, sh-format
 msgid "usage: $dashless $USAGE"
@@ -21231,14 +22517,12 @@ msgstr "cách dùng: $dashless $USAGE"
 
 #, sh-format
 msgid "Cannot chdir to $cdup, the toplevel of the working tree"
-msgstr ""
-"Không thể chuyển thư mục (chdir) sang $cdup, thư mục ở mức cao nhất của cây "
-"làm việc"
+msgstr "Không thể chuyển thư mục sang $cdup, ở mức cao nhất của cây làm việc"
 
 #, sh-format
 msgid "fatal: $program_name cannot be used without a working tree."
 msgstr ""
-"lỗi nghiêm trọng: $program_name không thể được dùng ngoaoif thư mục làm việc."
+"lỗi nghiêm trọng: $program_name không thể được dùng ngoài thư mục làm việc."
 
 msgid "Cannot rewrite branches: You have unstaged changes."
 msgstr ""
@@ -21251,12 +22535,11 @@ msgstr "Không thể $action: Bạn có các thay đổi chưa được đưa l
 #, sh-format
 msgid "Cannot $action: Your index contains uncommitted changes."
 msgstr ""
-"Không thể $action: Mục lục của bạn có chứa các thay đổi chưa được chuyển "
+"Không thể $action: chỉ mục của bạn có chứa các thay đổi chưa được chuyển "
 "giao."
 
 msgid "Additionally, your index contains uncommitted changes."
-msgstr ""
-"Thêm vào đó, bảng mục lục của bạn có chứa các thay đổi chưa được chuyển giao."
+msgstr "Ngoài ra, chỉ mục của bạn có chứa các thay đổi chưa được chuyển giao."
 
 msgid "You need to run this command from the toplevel of the working tree."
 msgstr "Bạn cần chạy lệnh này từ thư mục ở mức cao nhất của cây làm việc."
@@ -21264,360 +22547,73 @@ msgstr "Bạn cần chạy lệnh này từ thư mục ở mức cao nhất củ
 msgid "Unable to determine absolute path of git directory"
 msgstr "Không thể dò tìm đường dẫn tuyệt đối của thư mục git"
 
-#. TRANSLATORS: you can adjust this to align "git add -i" status menu
-#, perl-format
-msgid "%12s %12s %s"
-msgstr "%12s %12s %s"
-
-#, perl-format
-msgid "touched %d path\n"
-msgid_plural "touched %d paths\n"
-msgstr[0] "%d đường dẫn đã touch (chạm)\n"
-
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"marked for staging."
-msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức\n"
-"được đánh dấu để chuyển lên bệ phóng."
-
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"marked for stashing."
-msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức\n"
-"được đánh dấu để tạm cất."
-
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"marked for unstaging."
-msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức\n"
-"được đánh dấu để bỏ chuyển lên bệ phóng."
-
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"marked for applying."
-msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức\n"
-"được đánh dấu để áp dụng."
-
-msgid ""
-"If the patch applies cleanly, the edited hunk will immediately be\n"
-"marked for discarding."
-msgstr ""
-"Nếu miếng vá được áp dụng sạch sẽ, khúc đã sửa sẽ ngay lập tức\n"
-"được đánh dấu để loại bỏ."
-
-#, perl-format
-msgid "failed to open hunk edit file for writing: %s"
-msgstr "gặp lỗi khi tập tin sửa khúc để ghi: %s"
-
-#, perl-format
-msgid ""
-"---\n"
-"To remove '%s' lines, make them ' ' lines (context).\n"
-"To remove '%s' lines, delete them.\n"
-"Lines starting with %s will be removed.\n"
-msgstr ""
-"---\n"
-"Để gỡ bỏ các dòng “%s”, làm chúng thành những dòng “ “ (nội dung).\n"
-"Để xóa bỏ dòng “%s”, xóa chúng đi.\n"
-"Những dòng bắt đầu bằng %s sẽ bị loại bỏ.\n"
-
-#, perl-format
-msgid "failed to open hunk edit file for reading: %s"
-msgstr "gặp lỗi khi mở tập tin khúc để đọc: %s"
-
-msgid ""
-"y - stage this hunk\n"
-"n - do not stage this hunk\n"
-"q - quit; do not stage this hunk or any of the remaining ones\n"
-"a - stage this hunk and all later hunks in the file\n"
-"d - do not stage this hunk or any of the later hunks in the file"
-msgstr ""
-"y - đưa lên bệ phóng khúc này\n"
-"n - đừng đưa lên bệ phóng khúc này\n"
-"q - thoát; đừng đưa lên bệ phóng khúc này cũng như bất kỳ cái nào còn lại\n"
-"a - đưa lên bệ phóng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng đưa lên bệ phóng khúc này cũng như bất kỳ cái nào còn lại trong tập "
-"tin"
-
-msgid ""
-"y - stash this hunk\n"
-"n - do not stash this hunk\n"
-"q - quit; do not stash this hunk or any of the remaining ones\n"
-"a - stash this hunk and all later hunks in the file\n"
-"d - do not stash this hunk or any of the later hunks in the file"
-msgstr ""
-"y - tạm cất khúc này\n"
-"n - đừng tạm cất khúc này\n"
-"q - thoát; đừng tạm cất khúc này cũng như bất kỳ cái nào còn lại\n"
-"a - tạm cất khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng tạm cất khúc này cũng như bất kỳ cái nào còn lại trong tập tin"
-
-msgid ""
-"y - unstage this hunk\n"
-"n - do not unstage this hunk\n"
-"q - quit; do not unstage this hunk or any of the remaining ones\n"
-"a - unstage this hunk and all later hunks in the file\n"
-"d - do not unstage this hunk or any of the later hunks in the file"
-msgstr ""
-"y - đưa ra khỏi bệ phóng khúc này\n"
-"n - đừng đưa ra khỏi bệ phóng khúc này\n"
-"q - thoát; đừng đưa ra khỏi bệ phóng khúc này cũng như bất kỳ cái nào còn "
-"lại\n"
-"a - đưa ra khỏi bệ phóng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng đưa ra khỏi bệ phóng khúc này cũng như bất kỳ cái nào còn lại trong "
-"tập tin"
-
-msgid ""
-"y - apply this hunk to index\n"
-"n - do not apply this hunk to index\n"
-"q - quit; do not apply this hunk or any of the remaining ones\n"
-"a - apply this hunk and all later hunks in the file\n"
-"d - do not apply this hunk or any of the later hunks in the file"
-msgstr ""
-"y - áp dụng khúc này vào mục lục\n"
-"n - đừng áp dụng khúc này vào mục lục\n"
-"q - thoát; đừng áp dụng khúc này cũng như bất kỳ cái nào còn lại\n"
-"a - áp dụng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng áp dụng khúc này cũng như bất kỳ cái nào sau này trong tập tin"
-
-msgid ""
-"y - discard this hunk from worktree\n"
-"n - do not discard this hunk from worktree\n"
-"q - quit; do not discard this hunk or any of the remaining ones\n"
-"a - discard this hunk and all later hunks in the file\n"
-"d - do not discard this hunk or any of the later hunks in the file"
-msgstr ""
-"y - loại bỏ khúc này khỏi cây làm việc\n"
-"n - đừng loại bỏ khúc khỏi cây làm việc\n"
-"q - thoát; đừng loại bỏ khúc này cũng như bất kỳ cái nào còn lại\n"
-"a - loại bỏ khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng loại bỏ khúc này cũng như bất kỳ cái nào sau này trong tập tin"
-
-msgid ""
-"y - discard this hunk from index and worktree\n"
-"n - do not discard this hunk from index and worktree\n"
-"q - quit; do not discard this hunk or any of the remaining ones\n"
-"a - discard this hunk and all later hunks in the file\n"
-"d - do not discard this hunk or any of the later hunks in the file"
-msgstr ""
-"y - loại bỏ khúc này khỏi mục lục và cây làm việc\n"
-"n - đừng loại bỏ khúc khỏi mục lục và cây làm việc\n"
-"q - thoát; đừng loại bỏ khúc này cũng như bất kỳ cái nào còn lại\n"
-"a - loại bỏ khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng loại bỏ khúc này cũng như bất kỳ cái nào sau này trong tập tin"
-
-msgid ""
-"y - apply this hunk to index and worktree\n"
-"n - do not apply this hunk to index and worktree\n"
-"q - quit; do not apply this hunk or any of the remaining ones\n"
-"a - apply this hunk and all later hunks in the file\n"
-"d - do not apply this hunk or any of the later hunks in the file"
-msgstr ""
-"y - áp dụng khúc này vào mục lục và cây làm việc\n"
-"n - đừng áp dụng khúc vào mục lục và cây làm việc\n"
-"q - thoát; đừng áp dụng khúc này cũng như bất kỳ cái nào còn lại\n"
-"a - áp dụng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng áp dụng khúc này cũng như bất kỳ cái nào sau này trong tập tin"
-
-msgid ""
-"y - apply this hunk to worktree\n"
-"n - do not apply this hunk to worktree\n"
-"q - quit; do not apply this hunk or any of the remaining ones\n"
-"a - apply this hunk and all later hunks in the file\n"
-"d - do not apply this hunk or any of the later hunks in the file"
-msgstr ""
-"y - áp dụng khúc này vào cây làm việc\n"
-"n - đừng áp dụng khúc vào cây làm việc\n"
-"q - thoát; đừng áp dụng khúc này cũng như bất kỳ cái nào còn lại\n"
-"a - áp dụng khúc này và tất cả các khúc sau này trong tập tin\n"
-"d - đừng áp dụng khúc này cũng như bất kỳ cái nào sau này trong tập tin"
-
-msgid ""
-"g - select a hunk to go to\n"
-"/ - search for a hunk matching the given regex\n"
-"j - leave this hunk undecided, see next undecided hunk\n"
-"J - leave this hunk undecided, see next hunk\n"
-"k - leave this hunk undecided, see previous undecided hunk\n"
-"K - leave this hunk undecided, see previous hunk\n"
-"s - split the current hunk into smaller hunks\n"
-"e - manually edit the current hunk\n"
-"? - print help\n"
-msgstr ""
-"g - chọn một khúc muốn tới\n"
-"/ - tìm một khúc khớp với biểu thức chính quy đưa ra\n"
-"j - để lại khúc này là chưa quyết định, xem khúc chưa quyết định kế\n"
-"J - để lại khúc này là chưa quyết định, xem khúc kế\n"
-"k - để lại khúc này là chưa quyết định, xem khúc chưa quyết định kế trước\n"
-"K - để lại khúc này là chưa quyết định, xem khúc kế trước\n"
-"s - chia khúc hiện tại thành các khúc nhỏ hơn\n"
-"e - sửa bằng tay khúc hiện hành\n"
-"? - in trợ giúp\n"
-
-msgid "The selected hunks do not apply to the index!\n"
-msgstr "Các khúc đã chọn không được áp dụng vào bảng mục lục!\n"
-
-#, perl-format
-msgid "ignoring unmerged: %s\n"
-msgstr "bỏ qua những thứ chưa hòa trộn: %s\n"
-
-#, perl-format
-msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng thay đổi chế độ cho cây làm việc [y,n,q,a,d%s,?]? "
-
-#, perl-format
-msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng việc xóa cho cây làm việc [y,n,q,a,d%s,?]? "
-
-#, perl-format
-msgid "Apply addition to worktree [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng việc thêm cho cây làm việc [y,n,q,a,d%s,?]? "
-
-#, perl-format
-msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? "
-msgstr "Áp dụng khúc này vào cây làm việc [y,n,q,a,d%s,?]? "
-
-msgid "No other hunks to goto\n"
-msgstr "Không còn khúc nào để mà nhảy đến\n"
-
-#, perl-format
-msgid "Invalid number: '%s'\n"
-msgstr "Số không hợp lệ: “%s”\n"
-
-#, perl-format
-msgid "Sorry, only %d hunk available.\n"
-msgid_plural "Sorry, only %d hunks available.\n"
-msgstr[0] "Rất tiếc, chỉ có sẵn %d khúc.\n"
-
-msgid "No other hunks to search\n"
-msgstr "Không còn khúc nào để mà tìm kiếm\n"
-
-#, perl-format
-msgid "Malformed search regexp %s: %s\n"
-msgstr "Định dạng tìm kiếm của biểu thức chính quy không đúng %s: %s\n"
-
-msgid "No hunk matches the given pattern\n"
-msgstr "Không thấy khúc nào khớp mẫu đã cho\n"
-
-msgid "No previous hunk\n"
-msgstr "Không có khúc kế trước\n"
-
-msgid "No next hunk\n"
-msgstr "Không có khúc kế tiếp\n"
-
-msgid "Sorry, cannot split this hunk\n"
-msgstr "Rất tiếc, không thể chia nhỏ khúc này\n"
-
-#, perl-format
-msgid "Split into %d hunk.\n"
-msgid_plural "Split into %d hunks.\n"
-msgstr[0] "Chi nhỏ thành %d khúc.\n"
-
-msgid "Sorry, cannot edit this hunk\n"
-msgstr "Rất tiếc, không thể sửa khúc này\n"
-
-#. TRANSLATORS: please do not translate the command names
-#. 'status', 'update', 'revert', etc.
-msgid ""
-"status        - show paths with changes\n"
-"update        - add working tree state to the staged set of changes\n"
-"revert        - revert staged set of changes back to the HEAD version\n"
-"patch         - pick hunks and update selectively\n"
-"diff          - view diff between HEAD and index\n"
-"add untracked - add contents of untracked files to the staged set of "
-"changes\n"
-msgstr ""
-"status        - hiển thị các đường dẫn với các thay đổi\n"
-"update        - đặt trạng thái cây làm việc thành tập hợp các thay đổi đã "
-"đặt lên bệ phóng\n"
-"revert        - hoàn nguyên tập hợp các thay đổi đã đặt lên bệ phóng trở lại "
-"phiên bản HEAD\n"
-"patch         - cậy các khúc và cập nhật có lựa chọn\n"
-"diff\t      - xem khác biệt giữa HEAD và mục lục\n"
-"add untracked - thêm nội dung các các tập tin chưa theo dõi và tập hợp các "
-"thay đổi đã đặt lên bệ phóng\n"
-
-msgid "missing --"
-msgstr "thiếu --"
-
-#, perl-format
-msgid "unknown --patch mode: %s"
-msgstr "không hiểu chế độ --patch: %s"
-
-#, perl-format
-msgid "invalid argument %s, expecting --"
-msgstr "đối số không hợp lệ %s, cần --"
-
 msgid "local zone differs from GMT by a non-minute interval\n"
-msgstr "múi giờ nội bộ khác biệt với GMT bởi khoảng thời gian không-phút\n"
+msgstr "múi giờ nội bộ lệch với GMT một khoảng thời gian không-tròn-phút\n"
 
 msgid "local time offset greater than or equal to 24 hours\n"
-msgstr "khoảng bù thời gian nội bộ lớn hơn hoặc bằng 24 giờ\n"
+msgstr "độ lệch thời gian nội bộ lớn hơn hoặc bằng 24 giờ\n"
 
 #, perl-format
 msgid "fatal: command '%s' died with exit code %d"
-msgstr "lỗi nghiêm trọng: lệnh “%s” chết với mã thoát %d"
+msgstr "lỗi nghiêm trọng: lệnh '%s' đã thoát với mã %d"
 
 msgid "the editor exited uncleanly, aborting everything"
-msgstr "trình soạn thảo thoát không sạch sẽ, bãi bỏ mọi thứ"
+msgstr "trình soạn thảo thoát không thành công, huỷ bỏ các thay đổi"
 
 #, perl-format
 msgid ""
 "'%s' contains an intermediate version of the email you were composing.\n"
-msgstr "“%s” có chưa một phiên bản trung gian của thư bạn đã soạn.\n"
+msgstr "'%s' có chứa một phiên bản trung gian của email bạn đã soạn.\n"
 
 #, perl-format
 msgid "'%s.final' contains the composed email.\n"
-msgstr "“%s.final” chứa thư điện tử đã soạn thảo.\n"
+msgstr "'%s.final' chứa emal đã soạn thảo.\n"
 
 msgid "--dump-aliases incompatible with other options\n"
-msgstr "--dump-aliases xung khắc với các tùy chọn khác\n"
+msgstr "--dump-aliases không tương thích với các tùy chọn khác\n"
 
 msgid ""
 "fatal: found configuration options for 'sendmail'\n"
 "git-send-email is configured with the sendemail.* options - note the 'e'.\n"
 "Set sendemail.forbidSendmailVariables to false to disable this check.\n"
 msgstr ""
-"lỗi nghiêm trọng: tìm thấy các tùy chọn cấu hình cho “sendmail”\n"
-"git-send-email được cấu hình với các tùy chọn sendemail.* - chú ý “e”.\n"
+"lỗi nghiêm trọng: tìm thấy các tùy chọn cấu hình có tên 'sendmail'\n"
+"git-send-email được cấu hình với các tùy chọn sendemail.* - chú ý chữ 'e'.\n"
 "Đặt sendemail.forbidSendmailVariables thành false để tắt kiểm tra này.\n"
 
 msgid "Cannot run git format-patch from outside a repository\n"
-msgstr "Không thể chạy git format-patch ở ngoài một kho chứa\n"
+msgstr "Không thể chạy git format-patch ở ngoài kho chứa\n"
 
 msgid ""
 "`batch-size` and `relogin` must be specified together (via command-line or "
 "configuration option)\n"
 msgstr ""
-"“batch-size” và “relogin” phải được chỉ định cùng với nhau (thông qua dòng "
-"lệnh hoặc tùy chọn cấu hình)\n"
+"'batch-size' và 'relogin' phải được chỉ định cùng nhau (thông qua dòng lệnh "
+"hoặc tùy chọn cấu hình)\n"
 
 #, perl-format
 msgid "Unknown --suppress-cc field: '%s'\n"
-msgstr "Không hiểu trường --suppress-cc: “%s”\n"
+msgstr "Không hiểu trường --suppress-cc: '%s'\n"
 
 #, perl-format
 msgid "Unknown --confirm setting: '%s'\n"
-msgstr "Không hiểu cài đặt --confirm: “%s”\n"
+msgstr "Không hiểu cài đặt --confirm: '%s'\n"
 
 #, perl-format
 msgid "warning: sendmail alias with quotes is not supported: %s\n"
-msgstr "cảnh báo: bí danh sendmail với dấu trích dẫn không được hỗ trợ: %s\n"
+msgstr "cảnh báo: không hỗ trợ bí danh sendmail với dấu trích dẫn: %s\n"
 
 #, perl-format
 msgid "warning: `:include:` not supported: %s\n"
-msgstr "cảnh báo: “:include:“ không được hỗ trợ: %s\n"
+msgstr "cảnh báo: không hỗ trợ ':include:': %s\n"
 
 #, perl-format
 msgid "warning: `/file` or `|pipe` redirection not supported: %s\n"
-msgstr "cảnh báo: chuyển hướng “/file“ hay “|pipe“ không được hỗ trợ: %s\n"
+msgstr "cảnh báo: không hỗ trợ chuyển hướng '/file' hay '|pipe': %s\n"
 
 #, perl-format
 msgid "warning: sendmail line is not recognized: %s\n"
-msgstr "cảnh báo: dòng sendmail không nhận ra được: %s\n"
+msgstr "cảnh báo: không hiểu dòng cấu hình sendmail: %s\n"
 
 #, perl-format
 msgid ""
@@ -21627,15 +22623,15 @@ msgid ""
 "    * Saying \"./%s\" if you mean a file; or\n"
 "    * Giving --format-patch option if you mean a range.\n"
 msgstr ""
-"Tập tin “%s” đã có sẵn nhưng nó có lẽ cũng là chuẩn bị của\n"
-"các miếng vá tạo lần chuyển giao. Vui lòng làm rõ ý bằng…\n"
+"Tập tin '%s' có tồn tại nhưng cũng có thể hiểu là cần tạo bản vá cho\n"
+"một khoảng các lần chuyển giao. Vui lòng làm rõ ý của bạn bằng...\n"
 "\n"
-"    * Nói \"./%s\" nếu ý bạn là một tập tin; hoặc\n"
-"    * Đưa ra tùy chọn --format-patch nếu ý bạn là chuẩn bị.\n"
+"    * Ghi \"./%s\" nếu ý bạn là tập tin; hoặc\n"
+"    * Đưa ra tùy chọn --format-patch nếu ý bạn là tạo bản vá.\n"
 
 #, perl-format
 msgid "Failed to opendir %s: %s"
-msgstr "Gặp lỗi khi mở thư mục “%s”: %s"
+msgstr "Gặp lỗi khi opendir %s: %s"
 
 msgid ""
 "\n"
@@ -21643,7 +22639,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Chưa chỉ định các tập tin miếng vá!\n"
+"Chưa chỉ định các tập tin bản vá!\n"
 "\n"
 
 #, perl-format
@@ -21652,7 +22648,7 @@ msgstr "Không có dòng chủ đề trong %s?"
 
 #, perl-format
 msgid "Failed to open for writing %s: %s"
-msgstr "Gặp lỗi khi mở “%s” để ghi: %s"
+msgstr "Gặp lỗi khi mở %s để ghi: %s"
 
 msgid ""
 "Lines beginning in \"GIT:\" will be removed.\n"
@@ -21662,21 +22658,21 @@ msgid ""
 "Clear the body content if you don't wish to send a summary.\n"
 msgstr ""
 "Các dòng bắt đầu bằng \"GIT:\" sẽ bị xóa bỏ.\n"
-"Cân nhắc bao gồm một thống kê diff toàn thể hay bảng nội dung\n"
-"cho miếng vá mà bạn đang viết.\n"
+"Hãy cân nhắc bao gồm một bản diffstat hay chỉ mục\n"
+"cho bản vá bạn đang viết.\n"
 "\n"
 "Xóa nội dung phần thân nếu bạn không muốn gửi tóm tắt.\n"
 
-#, perl-format
-msgid "Failed to open %s: %s"
-msgstr "Gặp lỗi khi mở “%s”: %s"
-
 #, perl-format
 msgid "Failed to open %s.final: %s"
 msgstr "Gặp lỗi khi mở %s.final: %s"
 
+#, perl-format
+msgid "Failed to open %s: %s"
+msgstr "Gặp lỗi khi mở %s: %s"
+
 msgid "Summary email is empty, skipping it\n"
-msgstr "Thư tổng thể là trống rỗng, nên bỏ qua nó\n"
+msgstr "Thư tóm tắt trống, nên sẽ bỏ qua\n"
 
 #. TRANSLATORS: please keep [y/N] as is.
 #, perl-format
@@ -21687,11 +22683,10 @@ msgid ""
 "The following files are 8bit, but do not declare a Content-Transfer-"
 "Encoding.\n"
 msgstr ""
-"Các trường sau đây là 8bit, nhưng không khai báo một Content-Transfer-"
-"Encoding.\n"
+"Các trường sau đây là 8bit, nhưng không khai báo Content-Transfer-Encoding.\n"
 
 msgid "Which 8bit encoding should I declare [UTF-8]? "
-msgstr "Bảng mã 8bit nào tôi nên khai báo [UTF-8]? "
+msgstr "Nên khai báo bảng mã 8bit nào [UTF-8]? "
 
 #, perl-format
 msgid ""
@@ -21700,24 +22695,24 @@ msgid ""
 "has the template subject '*** SUBJECT HERE ***'. Pass --force if you really "
 "want to send.\n"
 msgstr ""
-"Từ chối gửi bởi vì miếng vá\n"
+"Từ chối gửi vì bản vá\n"
 "\t%s\n"
-"có chủ đề ở dạng mẫu “*** SUBJECT HERE ***”. Dùng --force nếu bạn thực sự "
+"có chủ đề ở dạng mẫu '*** SUBJECT HERE ***'. Dùng --force nếu bạn thực sự "
 "muốn gửi.\n"
 
 msgid "To whom should the emails be sent (if anyone)?"
-msgstr "Tới người mà thư được gửi (nếu có)?"
+msgstr "Gửi email đến ai (nếu có)?"
 
 #, perl-format
 msgid "fatal: alias '%s' expands to itself\n"
-msgstr "nghiêm trọng: bí danh “%s” được khai triển thành chính nó\n"
+msgstr "lỗi nghiêm trọng: khai triển bí danh '%s' lại thành chính nó\n"
 
 msgid "Message-ID to be used as In-Reply-To for the first email (if any)? "
-msgstr "Message-ID được dùng như là In-Reply-To cho thư đầu tiên (nếu có)? "
+msgstr "Dùng Message-ID như In-Reply-To cho email đầu tiên (nếu có)? "
 
 #, perl-format
 msgid "error: unable to extract a valid address from: %s\n"
-msgstr "lỗi: không thể rút trích một địa chỉ hợp lệ từ: %s\n"
+msgstr "lỗi: không thể trích xuất địa chỉ hợp lệ từ: %s\n"
 
 #. TRANSLATORS: Make sure to include [q] [d] [e] in your
 #. translation. The program will only accept English input
@@ -21727,7 +22722,7 @@ msgstr "Làm gì với địa chỉ này? (thoát[q]|xóa[d]|sửa[e]): "
 
 #, perl-format
 msgid "CA path \"%s\" does not exist"
-msgstr "Đường dẫn CA “%s” không tồn tại"
+msgstr "CA path '%s' không tồn tại"
 
 msgid ""
 "    The Cc list above has been expanded by additional\n"
@@ -21741,28 +22736,28 @@ msgid ""
 "    run 'git config --global sendemail.confirm auto'.\n"
 "\n"
 msgstr ""
-"    Danh sách Cc ở trên được diễn giải bằng các địa chỉ phụ\n"
-"    thêm tìm thấy trong lời ghi chú lần chuyển giao của miếng vá.\n"
-"    Theo mặc định send-email sẽ nhắc trước khi gửi bất cứ khi\n"
-"    nào điều này xảy ra. Cách hành xử này được điều khiển bởi cài\n"
+"    Danh sách Cc ở trên đã được thêm các địa chỉ có trong\n"
+"    nội dung lần chuyển giao của bản vá. Theo mặc định\n"
+"    send-email sẽ nhắc bạn trước khi gửi mỗi khi điều này \n"
+"    xảy ra. Bạn có thể điều chỉnh hành vi này qua cài\n"
 "    đặt cấu hình sendemail.confirm.\n"
 "\n"
-"    Để biết thêm chi tiết, hãy chạy lệnh “git send-email --help”.\n"
-"    Để giữ lại cách hành xử hiện nay, làm hết lời nhắn này,\n"
-"    chạy “git config --global sendemail.confirm auto”.\n"
+"    Để biết thêm chi tiết, hãy chạy lệnh 'git send-email --help'.\n"
+"    Để tiếp tục sử dụng hành vi này, nhưng bỏ hiển thị lời nhắc,\n"
+"    chạy 'git config --global sendemail.confirm auto'.\n"
 "\n"
 
 #. TRANSLATORS: Make sure to include [y] [n] [e] [q] [a] in your
 #. translation. The program will only accept English input
 #. at this point.
 msgid "Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): "
-msgstr "Gửi thư này chứ? ([y]có|[n]không|[e]sửa|[q]thoát|[a]tất): "
+msgstr "Gửi email này chứ? ([y]có|[n]không|[e]sửa|[q]thoát|[a]tất): "
 
 msgid "Send this email reply required"
-msgstr "Gửi thư này trả lời yêu cầu"
+msgstr "Hãy trả lời yêu cầu gửi email"
 
 msgid "The required SMTP server is not properly defined."
-msgstr "Máy phục vụ SMTP chưa được định nghĩa một cách thích hợp."
+msgstr "Máy chủ SMTP chưa được định nghĩa đúng cách."
 
 #, perl-format
 msgid "Server does not support STARTTLS! %s"
@@ -21774,8 +22769,7 @@ msgstr "STARTTLS gặp lỗi! %s"
 
 msgid "Unable to initialize SMTP properly. Check config and use --smtp-debug."
 msgstr ""
-"Không thể khởi tạo SMTP một cách đúng đắn. Kiểm tra cấu hình và dùng --smtp-"
-"debug."
+"Không thể khởi tạo SMTP đúng cách. Kiểm tra cấu hình và dùng --smtp-debug."
 
 #, perl-format
 msgid "Failed to send %s\n"
@@ -21790,51 +22784,55 @@ msgid "Sent %s\n"
 msgstr "Gửi %s\n"
 
 msgid "Dry-OK. Log says:\n"
-msgstr "Dry-OK. Nhật ký nói rằng:\n"
+msgstr "Thử gửi OK. Nhật ký ghi lại:\n"
 
 msgid "OK. Log says:\n"
-msgstr "OK. Nhật ký nói rằng:\n"
+msgstr "OK. Nhật ký ghi lại:\n"
 
 msgid "Result: "
 msgstr "Kết quả: "
 
 msgid "Result: OK\n"
-msgstr "Kết quả: Tốt\n"
+msgstr "Kết quả: OK\n"
 
 #, perl-format
 msgid "can't open file %s"
-msgstr "không thể mở tập tin “%s”"
+msgstr "không thể mở tập tin '%s'"
 
 #, perl-format
 msgid "(mbox) Adding cc: %s from line '%s'\n"
-msgstr "(mbox) Thêm cc: %s từ dòng “%s”\n"
+msgstr "(mbox) Thêm cc: %s từ dòng '%s'\n"
 
 #, perl-format
 msgid "(mbox) Adding to: %s from line '%s'\n"
-msgstr "(mbox) Đang thêm to: %s từ dòng “%s”\n"
+msgstr "(mbox) Thêm to: %s từ dòng '%s'\n"
 
 #, perl-format
 msgid "(non-mbox) Adding cc: %s from line '%s'\n"
-msgstr "(non-mbox) Thêm cc: %s từ dòng “%s”\n"
+msgstr "(non-mbox) Thêm cc: %s từ dòng '%s'\n"
 
 #, perl-format
 msgid "(body) Adding cc: %s from line '%s'\n"
-msgstr "(body) Thêm cc: %s từ dòng “%s”\n"
+msgstr "(body) Thêm cc: %s từ dòng '%s'\n"
 
 #, perl-format
 msgid "(%s) Could not execute '%s'"
-msgstr "(%s) Không thể thực thi “%s”"
+msgstr "(%s) Không thể thực thi '%s'"
 
 #, perl-format
-msgid "(%s) Adding %s: %s from: '%s'\n"
-msgstr "(%s) Đang thêm %s: %s từ: “%s”\n"
+msgid "(%s) Malformed output from '%s'"
+msgstr "(%s) Dòng đầu ra sai quy cách từ '%s'"
 
 #, perl-format
 msgid "(%s) failed to close pipe to '%s'"
-msgstr "(%s) gặp lỗi khi đóng đường ống đến “%s”"
+msgstr "(%s) gặp lỗi khi đóng pipe đến '%s'"
+
+#, perl-format
+msgid "(%s) Adding %s: %s from: '%s'\n"
+msgstr "(%s) Thêm %s: %s từ: '%s'\n"
 
 msgid "cannot send message as 7bit"
-msgstr "không thể lấy gửi thư dạng 7 bít"
+msgstr "không thể gửi thư dạng 7bit"
 
 msgid "invalid transfer encoding"
 msgstr "bảng mã truyền không hợp lệ"
@@ -21845,9 +22843,9 @@ msgid ""
 "%s\n"
 "warning: no patches were sent\n"
 msgstr ""
-"nghiêm trọng: %s: bị từ chối bởi móc %s\n"
+"nghiêm trọng: %s: bị từ chối bởi hook %s\n"
 "%s\n"
-"cảnh báo: không có miếng vá nào được gửi đi\n"
+"cảnh báo: không gửi đi bản vá nào\n"
 
 #, perl-format
 msgid "unable to open %s: %s\n"
@@ -21858,307 +22856,14 @@ msgid ""
 "fatal: %s:%d is longer than 998 characters\n"
 "warning: no patches were sent\n"
 msgstr ""
-"nghiêm trọng: %s: %d là dài hơn 998 ký tự\n"
-"cảnh báo: không có miếng vá nào được gửi đi\n"
+"nghiêm trọng: %s: %d dài hơn 998 ký tự\n"
+"cảnh báo: không có bản vá nào được gửi đi\n"
 
 #, perl-format
 msgid "Skipping %s with backup suffix '%s'.\n"
-msgstr "Bỏ qua %s với hậu tố sao lưu dự phòng “%s”.\n"
+msgstr "Bỏ qua %s với hậu tố sao lưu '%s'.\n"
 
 #. TRANSLATORS: please keep "[y|N]" as is.
 #, perl-format
 msgid "Do you really want to send %s? [y|N]: "
 msgstr "Bạn có thực sự muốn gửi %s? [y|N](có/KHÔNG): "
-
-#~ msgid "--preserve-merges was replaced by --rebase-merges"
-#~ msgstr "--preserve-merges đã bị thay thế bằng --rebase-merges"
-
-#, c-format
-#~ msgid ""
-#~ "CRLF will be replaced by LF in %s.\n"
-#~ "The file will have its original line endings in your working directory"
-#~ msgstr ""
-#~ "CRLF sẽ bị thay thế bằng LF trong %s.\n"
-#~ "Tập tin sẽ có kiểu xuống dòng như bản gốc trong thư mục làm việc của bạn"
-
-#, c-format
-#~ msgid ""
-#~ "LF will be replaced by CRLF in %s.\n"
-#~ "The file will have its original line endings in your working directory"
-#~ msgstr ""
-#~ "LF sẽ bị thay thế bằng CRLF trong %s.\n"
-#~ "Tập tin sẽ có kiểu xuống dòng như bản gốc trong thư mục làm việc của bạn"
-
-#, c-format
-#~ msgid "error reading section header '%s'"
-#~ msgstr "gặp lỗi khi đọc phần đầu của đoạn %s"
-
-#~ msgid "load_reverse_index: could not open pack"
-#~ msgstr "load_reverse_index: không thể mở gói"
-
-#, perl-format
-#~ msgid "fatal: %s: rejected by %s hook\n"
-#~ msgstr "lỗi nghiêm trọng: %s: bị từ chối bởi móc %s\n"
-
-#~ msgid "git archive --list"
-#~ msgstr "git archive --list"
-
-#, c-format
-#~ msgid "unknown value for --diff-merges: %s"
-#~ msgstr "không hiểu giá trị cho --diff-merges: %s"
-
-#, c-format
-#~ msgid "invalid value '%s' for lsrefs.unborn"
-#~ msgstr "giá trị “%s” không hợp lệ cho lsrefs.unborn"
-
-#~ msgid "backend for `git stash -p`"
-#~ msgstr "ứng dụng chạy phía sau cho “git stash -p”"
-
-#, c-format
-#~ msgid "Invalid value for --empty: %s"
-#~ msgstr "Giá trị cho --empty không hợp lệ: %s"
-
-#, c-format
-#~ msgid "Invalid value for --patch-format: %s"
-#~ msgstr "Giá trị không hợp lệ cho --patch-format: %s"
-
-#, c-format
-#~ msgid "Invalid value for --show-current-patch: %s"
-#~ msgstr "Giá trị không hợp lệ cho --show-current-patch: %s"
-
-#~ msgid ""
-#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
-#~ "| --term-new]"
-#~ msgstr ""
-#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
-#~ "| --term-new]"
-
-#~ msgid "git bisect--helper --bisect-next"
-#~ msgstr "git bisect--helper --bisect-next"
-
-#~ msgid "git bisect--helper --bisect-visualize"
-#~ msgstr "git bisect--helper --bisect-visualize"
-
-#, c-format
-#~ msgid "invalid color '%s' in color.blame.repeatedLines"
-#~ msgstr "màu không hợp lệ “%s” trong color.blame.repeatedLines"
-
-#~ msgid "invalid value for blame.coloring"
-#~ msgstr "màu không hợp lệ cho blame.coloring"
-
-#~ msgid ""
-#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
-#~ "| -p | <type> | --textconv | --filters) [--path=<path>] <object>"
-#~ msgstr ""
-#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
-#~ "| -p | <kiểu> | --textconv) | --filters) [--path=<đường/dẫn>] <đối_tượng>"
-
-#~ msgid "show object type"
-#~ msgstr "hiển thị kiểu đối tượng"
-
-#~ msgid "exit with zero when there's no error"
-#~ msgstr "thoát với 0 khi không có lỗi"
-
-#~ msgid "show info and content of objects fed from the standard input"
-#~ msgstr ""
-#~ "hiển thị thông tin và nội dung của các đối tượng lấy từ đầu vào tiêu chuẩn"
-
-#~ msgid "show info about objects fed from the standard input"
-#~ msgstr "hiển thị các thông tin về đối tượng fed  từ đầu vào tiêu chuẩn"
-
-#~ msgid "follow in-tree symlinks (used with --batch or --batch-check)"
-#~ msgstr ""
-#~ "theo liên kết mềm trong-cây (được dùng với --batch hay --batch-check)"
-
-#~ msgid "show all objects with --batch or --batch-check"
-#~ msgstr "hiển thị mọi đối tượng với --batch hay --batch-check"
-
-#~ msgid "do not order --batch-all-objects output"
-#~ msgstr "đừng sắp xếp đầu ra --batch-all-objects"
-
-#~ msgid "set up tracking mode (see git-pull(1))"
-#~ msgstr "cài đặt chế độ theo dõi (xem git-pull(1))"
-
-#~ msgid "Using both --reset-author and --author does not make sense"
-#~ msgstr "Sử dụng cả hai tùy chọn --reset-author và --author không hợp lý"
-
-#~ msgid "Options --squash and --fixup cannot be used together"
-#~ msgstr "Các tùy chọn --squash và --fixup không thể sử dụng cùng với nhau"
-
-#~ msgid "Only one of -c/-C/-F/--fixup can be used."
-#~ msgstr "Chỉ được dùng một trong số tùy chọn trong số -c/-C/-F/--fixup."
-
-#~ msgid "Option -m cannot be combined with -c/-C/-F."
-#~ msgstr "Tùy chọn -m không thể được tổ hợp cùng với -c/-C/-F."
-
-#~ msgid ""
-#~ "Only one of --include/--only/--all/--interactive/--patch can be used."
-#~ msgstr ""
-#~ "Chỉ một trong các tùy chọn --include/--only/--all/--interactive/--patch "
-#~ "được sử dụng."
-
-#~ msgid "git count-objects [-v] [-H | --human-readable]"
-#~ msgstr "git count-objects [-v] [-H | --human-readable]"
-
-#, c-format
-#~ msgid "configuration fetch.output contains invalid value %s"
-#~ msgstr "phần cấu hình fetch.output có chứa giá-trị không hợp lệ %s"
-
-#~ msgid "--cached or --untracked cannot be used with --no-index"
-#~ msgstr "--cached hay --untracked không được sử dụng với --no-index"
-
-#~ msgid "--untracked cannot be used with --cached"
-#~ msgstr "--untracked không thể được sử dụng với tùy chọn --cached"
-
-#~ msgid "git hash-object  --stdin-paths"
-#~ msgstr "git hash-object  --stdin-paths"
-
-#~ msgid "git help [-g|--guides]"
-#~ msgstr "git help [-g|--guides]"
-
-#~ msgid "git help [-c|--config]"
-#~ msgstr "git help [-c|--config]"
-
-#~ msgid "git mktag"
-#~ msgstr "git mktag"
-
-#~ msgid "git mktree [-z] [--missing] [--batch]"
-#~ msgstr "git mktree [-z] [--missing] [--batch]"
-
-#~ msgid "read from stdin"
-#~ msgstr "đọc từ đầu vào tiêu chuẩn"
-
-#~ msgid "git notes merge --commit [-v | -q]"
-#~ msgstr "git notes merge --commit [-v | -q]"
-
-#~ msgid "git notes merge --abort [-v | -q]"
-#~ msgstr "git notes merge --abort [-v | -q]"
-
-#~ msgid "git notes get-ref"
-#~ msgstr "git notes get-ref"
-
-#~ msgid "invalid value for --missing"
-#~ msgstr "giá trị cho --missing không hợp lệ"
-
-#~ msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-#~ msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
-#, c-format
-#~ msgid "Invalid value for %s: %s"
-#~ msgstr "Giá trị không hợp lệ %s: %s"
-
-#, c-format
-#~ msgid "Invalid value for pull.ff: %s"
-#~ msgstr "Giá trị không hợp lệ cho pull.ff: %s"
-
-#~ msgid "git rebase --continue | --abort | --skip | --edit-todo"
-#~ msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#, c-format
-#~ msgid "'%s' is not a valid timestamp"
-#~ msgstr "“%s” không phải là dấu thời gian hợp lệ"
-
-#~ msgid "git reflog [ show | expire | delete | exists ]"
-#~ msgstr "git reflog [ show | expire | delete | exists ]"
-
-#~ msgid "git remote [-v | --verbose]"
-#~ msgstr "git remote [-v | --verbose]"
-
-#~ msgid "git replace [-f] --convert-graft-file"
-#~ msgstr "git replace [-f] --convert-graft-file"
-
-#, c-format
-#~ msgid ""
-#~ "\n"
-#~ "It took %.2f seconds to enumerate unstaged changes after reset.  You can\n"
-#~ "use '--quiet' to avoid this.  Set the config setting reset.quiet to true\n"
-#~ "to make this the default.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Cần %.2f giây để kiểm đếm các thay đổi chưa đưa lên bệ phóng sau khi đặt "
-#~ "lại.\n"
-#~ "Bạn có thể sử dụng “--quiet” để tránh việc này. Đặt reset.quiet thành "
-#~ "true trong\n"
-#~ "cài đặt config nếu bạn muốn thực hiện nó như là mặc định.\n"
-
-#~ msgid "git sparse-checkout list"
-#~ msgstr "git sparse-checkout list"
-
-#~ msgid "unable to upgrade repository format to enable worktreeConfig"
-#~ msgstr ""
-#~ "không thể nâng cấp định dạng kho lưu trữ để kích hoạt worktreeConfig"
-
-#~ msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-#~ msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#~ msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-#~ msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-
-#~ msgid "git sparse-checkout disable"
-#~ msgstr "git sparse-checkout disable"
-
-#~ msgid ""
-#~ "the stash.useBuiltin support has been removed!\n"
-#~ "See its entry in 'git help config' for details."
-#~ msgstr ""
-#~ "việc hỗ trợ stash.useBuiltin đã bị xóa!\n"
-#~ "Xem mục tin của nó trong “git help config” để biết chi tiết."
-
-#~ msgid "git stripspace [-s | --strip-comments]"
-#~ msgstr "git stripspace [-s | --strip-comments]"
-
-#~ msgid "git stripspace [-c | --comment-lines]"
-#~ msgstr "git stripspace [-c | --comment-lines]"
-
-#~ msgid "submodule--helper print-default-remote takes no arguments"
-#~ msgstr "submodule--helper print-default-remote takes không nhận tham số"
-
-#~ msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-#~ msgstr ""
-#~ "git submodule--helper update-clone [--prefix=</đường/dẫn>] [</đường/dẫn>…]"
-
-#~ msgid "suppress output for update by rebase or merge"
-#~ msgstr "chặn kết xuất cho cập nhật bởi cải tổ hoặc hòa trộn"
-
-#~ msgid "overrides update mode in case the repository is a fresh clone"
-#~ msgstr "ghi đè chế độ cập nhật trong trường hợp kho lưu trữ là bản sao mới"
-
-#~ msgid "depth for shallow fetch"
-#~ msgstr "chiều sâu lịch sử muốn lấy về"
-
-#~ msgid "sha1"
-#~ msgstr "sha1"
-
-#~ msgid "SHA1 expected by superproject"
-#~ msgstr "SHA1 là cần thiết cho superproject"
-
-#~ msgid "subsha1"
-#~ msgstr "subsha1"
-
-#~ msgid "SHA1 of submodule's HEAD"
-#~ msgstr "SHA1 của HEAD của mô-đun-con"
-
-#~ msgid "git submodule--helper run-update-procedure [<options>] <path>"
-#~ msgstr ""
-#~ "git submodule--helper run-update-procedure [<các tùy chọn>] </đường/dẫn>"
-
-#~ msgid "git submodule--helper config --check-writeable"
-#~ msgstr "git submodule--helper config --check-writeable"
-
-#~ msgid "git update-server-info [--force]"
-#~ msgstr "git update-server-info [--force]"
-
-#~ msgid "Initialize and modify the sparse-checkout"
-#~ msgstr "Khởi tạo và sửa đổi sparse-checkout"
-
-#, sh-format
-#~ msgid ""
-#~ "Unable to find current ${remote_name}/${branch} revision in submodule "
-#~ "path '$sm_path'"
-#~ msgstr ""
-#~ "Không thể tìm thấy điểm xét duyệt hiện hành ${remote_name}/${branch} "
-#~ "trong đường dẫn mô-đun-con “$sm_path”"
-
-#, sh-format
-#~ msgid "Failed to recurse into submodule path '$displaypath'"
-#~ msgstr "Gặp lỗi khi đệ quy vào trong đường dẫn mô-đun-con “$displaypath”"