From c6c4c4bb0840d0aaed59716c2e6a9d457978ac86 Mon Sep 17 00:00:00 2001 From: Tran Ngoc Quan Date: Thu, 17 Feb 2011 14:50:16 +0700 Subject: [PATCH] Complete edit multiplayer, translate, edit history 90%, edit secret. --- vi/history.txt | 24 ++++++++++++------------ vi/multiplayer.txt | 32 ++++++++++++++++---------------- vi/secrets.txt | 22 +++++++++++----------- vi/translate.txt | 2 +- 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/vi/history.txt b/vi/history.txt index 4b1dce2..16fa988 100644 --- a/vi/history.txt +++ b/vi/history.txt @@ -3,14 +3,14 @@ Một hệ quả tất yếu của đặc tính phân tán của Git là việc lịch sử có thể biên soạn lại một cách dễ dàng. Nhưng nếu bạn xáo trộn quá khứ, hãy cẩn thận: chỉ biên soạn lại quá khứ trong lịch sử chỉ khi bạn sở hữu nó một mình. Just as nations forever argue over who -committed what atrocity, nếu một người khác có một bản sao mà nó lại có lịch sử khác với -cái của bạn, bạn sẽ gặp rắc rối reconciling when your trees interact. +committed what atrocity, nếu một người khác có một bản sao mà lịch sử của nó lại khác với +cái của bạn, bạn sẽ gặp rắc rối ngay. Một số nhà phát triển phần mềm quả quyết rằng lịch sử không thể thay đổi, tất cả mọi thứ. -Others feel trees should be made presentable trước khi chúng được phát hành ra +Một số khác lại cho rằng chỉnh sửa lại cấu trúc trước khi phát hành nó ra đại chúng. Git chấp nhận cả hai quan điểm. Giống như việc nhân bản, tạo nhánh và hòa trộn, -viết lại lịch sử đơn giản chỉ là một quyền lực mà Git trao cho bạn. Nó It is up to you -để sử dụng nó một cách bạo dạn. +viết lại lịch sử đơn giản chỉ là một quyền lực mà Git trao cho bạn. Bạn có thể làm thế +nếu muốn. === Dừng Lại Sửa Chữa === @@ -72,7 +72,7 @@ Xem thêm trong *git help rebase* để thấy được chi tiết các ví dụ === Viết Lại Lịch Sử === -Thỉnh thoảng, bạn muốn việc quản lý mã nguồn giống việc người ta vẽ quivalent of airbrushing people out +Thỉnh thoảng, bạn muốn việc quản lý mã nguồn giống việc người ta sơn vẽ quivalent of airbrushing people out of official photos, việc tẩy xóa chúng từ lịch sử in a Stalinesque fashion. Ví dụ, giả sử chúng ta có ý định phát hành dự án, nhưng lại liên đới đến một tệp tin mà nó phải được giữ bí mật vì lý do nào đó. Chẳng hạn như tôi đã quên khi ghi lại số thẻ tín dụng vào trong một tệp tin @@ -153,7 +153,7 @@ những lệnh này có thể gửi một kho chứa ở dạng văn bản thôn === Vị Trí Nào Phát Sinh Lỗi? === -Bạn vừa mới phát hiện ra một đặc tính không hoạt động trong chương trình mà bạn chắc chắn là nó đã hoạt động vài tháng trước. Tệ quá! Lỗi đến từ đâu nhỉ? If only you had been testing the feature as you developed. +Bạn vừa mới phát hiện ra một đặc tính không hoạt động trong chương trình mà bạn chắc chắn là nó đã hoạt động vài tháng trước. Tệ quá! Lỗi đến từ đâu nhỉ? Nếu như chỉ có mình bạn kiểm tra cũng như phát triển đặc tính này. Lúc này thì đã quá muộn rồi. Tuy nhiên, chỉ cần bạn commit thường xuyên, Git có thể xác định vị trí của trục trặc: @@ -206,9 +206,9 @@ yêu cầu có kết nối mạng chỉ để xem các thay đổi của họ ha Hệ thống tập trung không cho phép làm việc mà không có mạng, và đòi hỏi cơ sở hạ tầng mạng máy tính đắt đỏ tốn kém, đặc biệt là khi số nhà phát triển phần mềm tăng lên. Điều quan trọng, -tất cả mọi tác vụ sẽ chậm hơn ở mức độ nào đó, thường thường to the point -where những người sử dụng sẽ lảng tránh việc sử dụng các lệnh cao cấp trừ phi nó thực sự cần thiết. Trong những trường hợp -đặc biệt cases this is true of even the most lệnh cơ bản. Khi những người dùng phải chạy +tất cả mọi tác vụ sẽ chậm hơn ở mức độ nào đó, thường thường +những người sử dụng sẽ lảng tránh việc sử dụng các lệnh cao cấp trừ phi nó thực sự cần thiết. Trừ những trường hợp +đặc biệt là các lệnh cơ bản. Khi những người dùng phải chạy các lệnh chạy chậm, hiệu suất bị giảm bởi vì nó làm gián đoạn công việc của cả một dây truyền. Tôi trực tiếp đã trải qua những hiện tượng đó. Git là hệ thống quản lý mã nguồn đầu tiên tôi sử dụng. @@ -233,5 +233,5 @@ chính của mình, lệnh đã hoàn tất từ lâu rồi, và tôi phải lã Ở đây còn có một hậu quả rất đáng quan tâm nữa: đoán trước được việc tắc nghẽn của mạng máy tính, nhiều cá nhân riêng lẻ có thể chiếm dụng nhiều lưu lượng mạng hơn cần thiết trên các tác vụ khác nhau để cố gắng giảm thiểu sự chậm trễ có thể xảy ra trong tương lai. Hậu quả cuối cùng là -sự quá tải quá mức, việc ủng hộ việc tiêu dùng cá nhân như thế làm đốt cháy nhiều lưu lượng mạng hơn -và sau đó nó làm cho việc chậm trễ càng trở nên tệ hơn. +sự quá tải quá mức, vô tình việc ủng hộ việc tiêu dùng cá nhân như thế làm đốt cháy nhiều lưu lượng mạng hơn +và sau đó nó làm cho việc tắc nghẽn càng lúc càng trở nên tồi tệ hơn. diff --git a/vi/multiplayer.txt b/vi/multiplayer.txt index 65d4737..d978b25 100644 --- a/vi/multiplayer.txt +++ b/vi/multiplayer.txt @@ -67,15 +67,15 @@ tín hiệu khói, v.v.. Người nhận khôi phục lại các lần commit t Bộ nhận thậm chí có thể làm được việc này từ một kho chứa rỗng. Mặc dù kích thước của nó, +somefile+ chứa các mục kho Git nguyên thủy. -Trong các dự án lớn hơn, việc triệt tiêu lãng phí bằng bundling chỉ thay đổi kho chứa the other -repository lacks. Ví dụ, giả sử lần commit ``1b6d...'' là lần commit gần nhất +Trong các dự án lớn hơn, việc triệt tiêu lãng phí bằng lệnh bundle chỉ thay đổi phần thiếu +kho chứa khác. Ví dụ, giả sử lần commit ``1b6d...'' là lần commit gần nhất đã được chia sẻ giữa cả hai thành viên: $ git bundle create somefile HEAD ^1b6d -Nếu làm thường xuyên, one could easily forget which commit was last sent. Trang +Nếu phải làm việc này thường xuyên, một khó khăn là bạn không thể nhớ được chính xác lần commit tương ứng với lần gửi cuối. Trang trợ giúp sẽ gợi ý cho bạn cách sử dụng các thẻ (tag) để giải quyết vấn đề này. Ấy là, sau khi bạn gửi một bundle, -gõ: +thì hãy gõ: $ git tag -f lastbundle HEAD @@ -88,7 +88,7 @@ và tạo một bản bundles mới với: Miếng vá được trình bày ở dạng văn bản các thay đổi của bạn, nó dễ dàng được đọc hiểu bởi con người cũng như là máy tính. Điều này mang lại cho chúng sức lôi cuốn toàn cầu. Bạn có thể gửi miếng vá qua thư điện tử cho những nhà phát triển phần mềm khác mà chẳng cần lo họ đang sử dụng hệ thống mã nguồn nào. Chừng nào -độc giả của bạn có thể đọc được thư điện tử của họ, họ còn có thể thấy được phần chỉnh sửa của bạn. Tương tự thế, về phía mình, +mà độc giả của bạn có thể đọc được thư điện tử của mình thì họ còn có thể thấy được phần chỉnh sửa của bạn. Tương tự thế, về phía mình, những thứ bạn cần là có một địa chỉ thư điện tử: ở đây chẳng cần cài đặt kho chứa Git nào trên mạng. Sử dụng lại ví dụ từ chương đầu tiên: @@ -102,8 +102,8 @@ gõ: để áp dụng miếng vá. -In more formal settings, when author names and perhaps signatures should be -recorded, generate the corresponding patches past tại một thời điểm chính xác trong quá khứ bằng cách gõ: +Còn một hình thức định dạng khác nữa, tên và có lẽ cả chữ ký của tác giả cũng được +ghi lại, tạo miếng vá tương ứng với một thời điểm chính xác trong quá khứ bằng cách gõ: $ git format-patch 1b6d @@ -117,10 +117,10 @@ Tệp tin lưu kết quả có thể chuyển cho lệnh *git-send-email*, hay c Lệnh này sẽ áp dụng cho miếng vá nhận được, đồng thời tạo ra một lần commit, bao gồm các thông tin như là tác giả. -Với một chương trình đọc thư điện tử, bạn có thể sử dụng con chuột để to see the email in its raw original form trước khi ghi miếng vá thành một tệp tin. +Với một chương trình đọc thư điện tử, bạn có thể sử dụng con chuột để chuyển định dạng thư về dạng văn bản thuần trước khi ghi miếng vá thành một tệp tin. -There are slight differences for mbox-based email clients, nhưng nếu bạn sử dụng một trong -số chúng, you're probably the sort of person who có thể cấu hình chúng một cách dễ dàng +Có một số khác biệt nhỏ giữa các trình đọc email, nhưng nếu bạn sử dụng một trong +số chúng, bạn hầu như chắc chắn là người mà có thể cấu hình chúng một cách dễ dàng mà chẳng cần phải đọc hướng dẫn sử dụng! === Rất tiếc! Tôi đã chuyển đi === @@ -157,8 +157,8 @@ tham số. === Nhánh Trên Mạng === Khi bạn nhân bản một kho chứa, bạn cũng đồng thời nhân bản tất cả các nhánh của nó. Bạn sẽ không nhận -được cảnh báo này bởi vì Git giấu chúng đi: bạn phải hỏi mới có thể biết chính xác. -This prevents branches in the từ kho chứa remote từ phiền phức với +được cảnh báo này bởi vì Git không thông báo cho bạn: bạn phải hỏi mới có thể biết chính xác. +Việc làm này giúp ngăn ngừa phiền phức do nhánh mạng gây ra cho các nhánh của bạn, và cũng làm cho Git dễ dàng hơn với người mới dùng. Ta liệt kê các nhánh bằng lệnh: @@ -201,10 +201,10 @@ Nhưng chúng ta chỉ muốn so sánh sự khác nhau giữ chúng nhưng khôn $ git fetch other # Lấy về từ lập trình viên thứ hai. Lệnh này chỉ mang về phần lịch sử. Mặc dù thư mục làm việc vẫn còn nguyên chưa bị động đến, -we can refer to bất kỳ nhánh nào của bất kỳ kho chứa nào trong một lệnh Git bởi vì chúng ta bây giờ +chúng ta có thể xét bất kỳ nhánh nào của bất kỳ kho chứa nào trong một lệnh Git bởi vì chúng ta bây giờ đang làm việc trên bản sao trên máy của mình. -Recall that behind the scenes, lệnh pull đơn giản là *fetch* sau đó *merge*. +Giờ ta xét đến phần hậu trường, lệnh pull đơn giản là *fetch* sau đó *merge*. Thông thường chúng ta *pull* bởi vì chúng ta muốn trộn với lần commit cuối cùng sau khi fetch; việc làm này là một ngoại lệ đáng chú ý. @@ -219,13 +219,13 @@ chỉ cần sử dụng chuột. Sau khi tôi fetch một cây (tree), tôi chạy lệnh Git để di chuyển và xem xét các thay đổi, với ý tưởng là để tổ chức và mô tả tốt hơn. Tôi trộn với các thay đổi của chính mình, -và có thể sẽ sửa thêm chút it. Sau khi đã hài lòng, tôi push nó lên kho chứa chính. +và có thể sẽ sửa thêm chút ít. Sau khi đã hài lòng, tôi push nó lên kho chứa chính. Mặc dù tôi ít nhận được sự cộng tác, nhưng tôi tin rằng việc này sẽ thay đổi theo chiều hướng tốt lên. Hãy đọc http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[blog của Linus Torvalds]. -Trong thế giới Git world is slightly thuận lợi hơn việc vá các tệp tin, cũng như là nó +Git thuận lợi hơn việc vá các tệp tin, cũng như là nó tiết kiệm công sức cho việc chuyển đổi chúng thành những lần commit dành cho Git. Hơn thế nữa, Git lưu giữ các thông tin rất chi tiết như là ghi lại tên và địa chỉ thư điện tử của tác giả, cũng như là ngày tháng và thời gian, và nó cũng đòi hỏi tác giả phải mô tả về những thay đổi mà họ đã tạo ra. diff --git a/vi/secrets.txt b/vi/secrets.txt index cc75564..9c3da59 100644 --- a/vi/secrets.txt +++ b/vi/secrets.txt @@ -1,6 +1,6 @@ == Các Bí Mật == -We take a peek under the hood and explain how Git performs its miracles. I will skimp over details. Để có được sự mô tả chỉ tiết thì hãy đọc http://www.kernel.org/pub/software/scm/git/docs/user-manual.html[sổ tay]. +Chúng ta mổ xẻ để hiểu được làm thế nào mà Git có thể thi hành kỳ diệu như vậy. Tôi sẽ không thể nói quá chi tiết được. Để có được sự mô tả chỉ tiết thì hãy đọc http://www.kernel.org/pub/software/scm/git/docs/user-manual.html[sổ tay]. === Tính Ẩn === @@ -55,7 +55,7 @@ liên quan đến chúng ta: đối tượng 'blob', đối tượng cây 'tree' === Blobs === -First, a magic trick. Pick a filename, any filename. Trong một thư mục rỗng: +Đầu tiên, hãy tạo một tệp tin bất kỳ. Đặt cho nó một cái tên, tên gì cũng được. Trong một thư mục rỗng: $ echo sweet > YOUR_FILENAME $ git init @@ -100,7 +100,7 @@ lệnh này trình bày đối tượng được cho ở dạng dễ đọc trê === Trees === Nhưng mà tên tệp tin ở đâu? Chúng phải được lưu giữ ở đâu đó chứ. -Git gets around to the filenames during a commit: +Git lấy tên tệp tin trong quá trình commit: $ git commit # Type some message. $ find .git/objects -type f @@ -116,7 +116,7 @@ SHA1 của nội dung của nó: "tree" SP "32" NUL "100644 rose" NUL 0xaa823728ea7d592acc69b36875a482cdf3fd5c8d -Check this file does indeed contain the above bằng cách gõ: +Xác thực tệp tin này chứa thông tin như trên bằng cách gõ: $ echo 05b217bb859794d08bb9e4f7f04cbda4b207fbe9 | git cat-file --batch @@ -141,18 +141,18 @@ xóa chúng ngay bây giờ to make our toy example easier to follow: $ git reflog expire --expire=now --all $ git prune -Với các dự án thật bạn nên tránh việc sử dụng lệnh như trên, as you are -destroying backups. Nếu bạn muốn làm sạch kho chứa, it is usually best to make -a fresh clone. Cũng thế, hãy cẩn thận khi thao tác trực tiếp với thư mục +.git+: điều gì xảy ra nếu lệnh +Với các dự án thật bạn nên tránh việc sử dụng lệnh như trên, làm như thế bạn +đã phá hủy dữ liệu sao lưu dự phòng. Nếu bạn muốn làm sạch kho chứa, cách hay nhất là tạo +một bản sao mới hoàn toàn. Cũng thế, hãy cẩn thận khi thao tác trực tiếp với thư mục +.git+: điều gì xảy ra nếu lệnh Git cũng đang thực thi cùng lúc, hay là mất điện đột ngột? Đại khái, refs should be deleted with *git update-ref -d*, though usually it's safe to remove +refs/original+ bằng tay. === Commits === -Chúng tôi đã giảng giải cho bạn 2 trong số 3 đối tượng của Git. Cái thứ 3 chính là 'commit'. Its -contents depend on the commit message as well as the date and time it was -created. To match what we have here, we'll have to tweak it a little: +Chúng tôi đã giảng giải cho bạn 2 trong số 3 đối tượng của Git. Cái thứ 3 chính là 'commit'. Nội dung +của nó buộc chặt vào phần chú thích của lần commit cũng như thời gian, ngày tháng chúng được +tạo ra. To match what we have here, we'll have to tweak it a little: $ git commit --amend -m Shakespeare # Thay đổi phần chú thích. $ git filter-branch --env-filter 'export @@ -164,7 +164,7 @@ created. To match what we have here, we'll have to tweak it a little: GIT_COMMITTER_EMAIL="bob@example.com"' # Rig timestamps and authors. $ find .git/objects -type f -Bạn có thể thấy You should now see +Bạn có thể thấy +.git/objects/49/993fe130c4b3bf24857a15d7969c396b7bc187+ là giá trị băm SHA1 của nội dung của nó: diff --git a/vi/translate.txt b/vi/translate.txt index e94c180..97d0680 100644 --- a/vi/translate.txt +++ b/vi/translate.txt @@ -1,4 +1,4 @@ -== Phụ lục B: Dịch phần Hướng dẫn này == +== Phụ lục B: Dịch Bản Hướng Dẫn Này == Lấy một bản sao của mã nguồn, sau đó tạo một thư mục tương ứng với ngôn ngữ bạn dịch http://www.iana.org/assignments/language-subtag-registry[language's IETF tag]: xem tại http://www.w3.org/International/articles/language-tags/Overview.en.php[the W3C article on internationalization]. Ví dụ, tiếng Anh là "en", Nhật là "ja", tiếng Trung Quốc Phồn thể là "zh-Hant". Trong thư mục mới đó, và dịch tệp tin +txt+ từ thư mục con "en". -- 2.11.4.GIT