From b3aa95efcacb98d09cfb528e95c8e4756f8274fe Mon Sep 17 00:00:00 2001 From: Tran Ngoc Quan Date: Wed, 15 Dec 2010 08:55:16 +0700 Subject: [PATCH] minor edit clone.txt --- vi/clone.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/vi/clone.txt b/vi/clone.txt index 55f084c..1819379 100644 --- a/vi/clone.txt +++ b/vi/clone.txt @@ -20,7 +20,7 @@ Khởi tạo kho chứa Git và commit các tệp tin trên một máy tính. Sa sẽ lấy (pull) một state của các tệp tin trên máy tính khác về máy bạn đang làm việc. Nếu bạn vừa tạo ra một sự chỉnh sửa xung đột trong cùng một tệp tin , Git sẽ cho bạn biết và bạn có thể commit lại sau khi sửa chữa chúng. -=== Classic Source Control === +=== Quản lý theo cách Cũ === Khởi tạo kho Git cho các tệp tin của bạn: @@ -28,7 +28,7 @@ Khởi tạo kho Git cho các tệp tin của bạn: $ git add . $ git commit -m "Lần commit khởi tạo" -Trên máy chủ trung tâm, khởi tạo 'bare repository' ở một thư mục nào đó: +Trên máy chủ trung tâm, khởi tạo 'kho bare' ở một thư mục nào đó: $ mkdir proj.git $ cd proj.git @@ -75,11 +75,11 @@ khi trộn, sau đó thử lại. Kho bare (kho trần) được đặt tên như vậy vì nó không chứa thư mục làm việc; nó chỉ chứa các tệp tin thường là ẩn trong thư mục phụ `.git`. Hay nói cách khác, nó chứa lịch sử mã nguồn của một dự án, và không bao giờ giữ snapshot của bất kỳ phiên bản nào. Kho bare có vai trò hoạt động giống như máy chủ trung tâm trong các hệ thống -quản lý mã nguồn tập trung: the home of your project. Các nhà phát triển phần mềm clone +quản lý mã nguồn tập trung: thư mục chủ dự án của bạn. Các nhà phát triển phần mềm clone dữ liệu dự án của bạn ở đây, và push các thay đổi chính thức lên đó. Thông thường nó -đặt tại máy chủ resides on a server that does little else but disseminate data. Development -occurs in the clones, so the home repository can do without a working -directory. +đặt tại máy chủ resides on a server that does little else nhưng phổ biến dữ liệu. Development +occurs in the clones, vì vậy thư mục chủ của kho chứa có thể hoạt động mà không cần +thư mục làm việc. Nhiều lệnh Git gặp lỗi trên kho bare trừ phi biến môi trường `GIT_DIR` được đặt với giá trị là đường dẫn đến kho chứa, hay tùy chọn `--bare` được áp dụng. @@ -87,13 +87,13 @@ Nhiều lệnh Git gặp lỗi trên kho bare trừ phi biến môi trường `G Tại sao chúng tôi lại giới thiệu lệnh push, thay vì trông cậy vào lệnh pull quen thuộc? Trước hết, việc pull gặp lỗi trên kho trần: thay vào đó bạn phải dùng lệnh 'fetch', -lệnh này chúng ta sẽ nói sau. Nhưng dù là we kept a normal repository on the -central server, pulling into it would still be cumbersome. Chúng ta phải +lệnh này chúng ta sẽ nói sau. Nhưng dù là chúng ta giữ kho chứa thông thường trên +máy chủ trung tâm, việc pull lên nó hơi cồng kềnh. Chúng ta phải đăng nhập vào máy chủ trước, và cung cấp cho lệnh pull địa chỉ mạng của máy chúng ta đang pull từ đó. Firewalls có thể gây trở ngại, and what if we have no shell access to the server in the first place? -Tuy nhiên, ngoài trường hợp này ra, we discourage pushing into a repository, bởi vì tình trạng hỗn loạn có thể xảy khi thư mục đích có chứa thư mục làm việc. +Tuy nhiên, ngoài trường hợp này ra, chúng ta còn nản lòng với việc push lên kho chứa, bởi vì tình trạng hỗn loạn có thể xảy khi thư mục đích có chứa thư mục làm việc. Tóm lại, khi học Git, chỉ push khi đích là kho bare; nếu không thì dùng pull. @@ -111,9 +111,9 @@ Từ bây giờ trở đi, bạn có thể trộn các sự thay đổi từ d === Backup Không giới hạn === -Want numerous tamper-proof geographically diverse redundant archives? Nếu dự án của bạn có nhiều người cùng phát triển, bạn không cần phải làm gì cả! Mỗi một bản clone đều đồng thời có tác dụng như một bản sao lưu dự phòng. Not just of the current state, but of your project's entire history. Thanks to cryptographic hashing, nếu bản sao của người nào đó bị hỏng, nó sẽ được spotted ngay sau khi họ liên lạc với những người khác. +Want numerous tamper-proof geographically diverse redundant archives? Nếu dự án của bạn có nhiều người cùng phát triển, bạn không cần phải làm gì cả! Mỗi một bản sao đều đồng thời có tác dụng như một bản sao lưu dự phòng. Not just of the current state, but of mục lịch sử trong dự án của mình. Nhờ có giá trị băm bằng mật mã, nếu bản sao của người nào đó bị hỏng, nó sẽ được phát hiện ngay sau khi họ liên lạc với những người khác. -Nếu dự án của bạn không phổ biến, hãy tìm càng nhiều máy chủ lưu giữ bản sao của bạn càng tốt. +Nếu dự án của bạn không phổ biến, hãy tìm máy chủ lưu giữ bản sao của mình càng nhiều càng tốt. The truly paranoid should luôn luôn ghi ra 20-byte giá trị băm SHA1 cuối của HEAD ở đâu đó an toàn. Nó phải an toàn, không riêng tư. Ví dụ, xuất bản nó lên báo giấy cũng tốt, bởi vì rất khó để thay đổi tất cả các bản sao của nó. @@ -141,7 +141,7 @@ sau đó clone nó: $ git clone . /some/new/directory -Bây giờ hãy chuyển đến thư mục mới đó và làm việc ở đây thay vì chỗ cũ, sử dụng Git to your heart's content. Đôi khi, bạn sẽ muốn đồng bộ hóa với những người khác nữa, trong trường hợp đó hãy chuyển tới thư mục nguyên bản (original), đồng bộ hóa bằng cách sử dụng một hệ thống quản lý mã nguồn khác, và gõ: +Bây giờ hãy chuyển đến thư mục mới đó và làm việc ở đây thay vì chỗ cũ, sử dụng Git để thỏa mãn tình yêu của mình. Đôi khi, bạn sẽ muốn đồng bộ hóa với những người khác nữa, trong trường hợp đó hãy chuyển tới thư mục nguyên bản (original), đồng bộ hóa bằng cách sử dụng một hệ thống quản lý mã nguồn khác, và gõ: $ git add . $ git commit -m "Đồng bộ hóa với những người khác" @@ -151,7 +151,7 @@ Sau đó chuyển tới thư mục mới và chạy: $ git commit -a -m "Mô tả về các thay đổi của tôi" $ git pull -The procedure for giving your changes to everyone else depends on the other version control system. The new directory contains the files with your changes. Chạy các lệnh mà hệ thống quản lý mã nguồn khác cần để tải chúng lên kho chứa trung tâm. +The procedure for giving your changes to everyone else depends on hệ thống quản lý mã nguồn khác. Thư mục mới có chứa các tệp tin mà bạn thay đổi. Chạy các lệnh mà hệ thống quản lý mã nguồn khác cần để tải chúng lên kho chứa trung tâm. Subversion, có lẽ là hệ thống quản lý mã nguồn tập trung tốt nhất, được sử dụng bởi vô số các dự án. Lệnh *git svn* sẽ tự động hóa những việc đã nói ở trên dành cho Subversion, bạn cũng có thể làm như thế để http://google-opensource.blogspot.com/2008/05/export-git-project-to-google-code.html[xuất dự án Git thành Subversion]. @@ -185,16 +185,16 @@ sau khi đặt script vào trong biến môi trường `$PATH`. Chúng tôi đề cập vắn tắt về Bazaar bởi vì nó là hệ thống quản lý mã nguồn phân tán miễn phí và phổ biến nhất chỉ sau Git và Mercurial. -Bazaar có lợi thế vì phát triển sau, as it is relatively young; những người thiết kế ra nó có thể học hỏi được nhiều từ các sai lầm trong quá khứ, và tránh được vết xe đổ. Ngoài ra, các nhà phát triển còn lưu tâm đến khả năng chuyển đổi và tương tác với các hệ thống quản lý mã nguồn khác. +Bazaar có lợi thế vì phát triển sau, có tuổi tương đối trẻ; những người thiết kế ra nó có thể học hỏi được nhiều từ các sai lầm trong quá khứ, và tránh được vết xe đổ. Ngoài ra, các nhà phát triển còn lưu tâm đến khả năng chuyển đổi và tương tác với các hệ thống quản lý mã nguồn khác. Plugin `bzr-git` giúp người dùng Bazaar làm việc với kho Git trong chừng mực nào đó. The `tailor` program chuyển đổi Bazaar thành Git, and can do so incrementally, trong khi `bzr-fast-export` thích hợp nhất cho việc chuyển đổi một lần duy nhất. === Tại sao Tôi sử dụng Git === -Trước tiên, tôi chọn Git bởi tôi nghe nói nó làm được việc phi thường là có thể quản lý mã nguồn cho một thứ khó quản lý như nhân (kernel) của hệ điều hành Linux. Tôi chưa bao giờ nghĩ đến việc chuyển sang cái khác. Git làm được những việc thật đáng ngưỡng mộ, and I've yet to be bitten by its flaws. Do tôi hoạt động chủ yếu trên Linux, phát hành trên các nền tảng khác không phải là điều tôi quan tâm. +Trước tiên, tôi chọn Git bởi tôi nghe nói nó làm được việc phi thường là có thể quản lý mã nguồn cho một thứ khó quản lý như nhân (kernel) của hệ điều hành Linux. Tôi chưa bao giờ nghĩ đến việc chuyển sang cái khác. Git làm được những việc thật đáng ngưỡng mộ, and I've yet to be bitten by its flaws. Do tôi hoạt động chủ yếu trên Linux, phát hành trên các nền tảng khác không phải là điều mà tôi quan tâm. Ngoài ra, tôi thích lập trình bằng ngôn ngữ C và bash scripts to executables như là Python scripts: ở đây có rất ít sự phụ thuộc, và tôi I'm addicted to fast running times. -Tôi đã nghĩ về việc làm thế nào để Git có thể phát triển, xa hơn nữa là tự mình viết một công cụ tương tự như Git, but only as an academic exercise. Had I completed my project, dù sao đi nữa tôi vẫn sẽ dùng Git, as the gains are too slight to justify using an oddball system. +Tôi đã nghĩ về việc làm thế nào để Git có thể phát triển, xa hơn nữa là tự mình viết một công cụ tương tự như Git, nhưng đây không phải là bài tập có tính thực tế. Had I completed my project, dù sao đi nữa tôi vẫn sẽ dùng Git, as the gains are too slight to justify using an oddball system. Theo lẽ tự nhiên, những thứ cần thiết cho bạn và những thứ bạn mong muốn có lẽ khác nhau, và bạn có thể tốt hơn nếu ở một hệ thống khác. Dù sao đi nữa, bạn sẽ không bao giờ phải hối tiếc vì đã chọn Git. -- 2.11.4.GIT