Skip to content

Commit 1f3736a

Browse files
committed
vi translation add d40-44
1 parent 08dd4c7 commit 1f3736a

11 files changed

Lines changed: 804 additions & 89 deletions

File tree

2022/vi/Days/day35.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ Git không phải là hệ thống quản lý phên bản duy nhất, vì vậy
1818

1919
Lợi ích rõ ràng nhất và lớn nhất của quản lý phiên bản là khả năng theo dõi lịch sử của dự án. Chúng ta có thể xem lại kho lưu trữ (repository) bằng cách sử dụng `git log` và xem lại toàn bộ các commit cũng như comments cũng như những gì đã diễn ra trong toàn bộ dự án. Đừng lo, chúng ta sẽ đi vào cách lệnh ở phần sau. Bây giờ, hãy tưởng tượng đây là một dự án phần mềm thực tế với rất nhiều mã nguồn và có nhiều người đang làm việc chung để phát triển sản phẩn tại các thời điểm khác nhau, tất cả các kỹ sư đã đóng góp code, và tất cả những người review code đều được ghi lại ở đây để cho chúng ta biết điều gì đã xảy ra, khi nào, bởi ai và ai đã review.
2020

21-
![](Images/Day35_Git1.png)
21+
![](../../Days/Images/Day35_Git1.png)
2222

2323
Quản lý phiên bản trước đây sẽ giống như việc tạo một bản sao phiên bản code của bạn theo cách thủ công trước khi bạn thực hiện các thay đổi. CÓ thể bạn cũng không cần sử dụng những phiên bản cũ nữa nhưng nó được tạo ra để bạn có thể yên tâm hơn, nhỡ đâu...
2424

25-
![](Images/Day35_Git2.png)
25+
![](../../Days/Images/Day35_Git2.png)
2626

2727
Tôi đã bắt đầu áp dụng quản lý phiên bản không chỉ đối với mã nguồn mà hầu hết mọi thứ, ví dụ như dự án này (90DaysOfDevOps). Tại sao lại không sử dụng các tính năng như khôi phục, ghi lại mọi thứ đã diễn ra.
2828

@@ -34,11 +34,11 @@ Một lợi ích khác của quản lý phiên bản là khả năng quản lý
3434

3535
Cách chúng ta có thể làm được điều này trong quản lý phiên bản là thông qua phân nhánh (branching)
3636

37-
![](Images/Day35_Git3.png)
37+
![](../../Days/Images/Day35_Git3.png)
3838

3939
Phân nhánh cho phép hai luồng mã cùng tồn tại cho một ứng dụng như chúng ta đã nói ở trên. Nhưng chúng ta vẫn muốn các tính năm mới có trong phiên bản miễn phí có trong phiên bản trả phí, để làm được điều này, chúng ta có một thứ gọi là merge.
4040

41-
![](Images/Day35_Git4.png)
41+
![](../../Days/Images/Day35_Git4.png)
4242

4343
Bây giờ, điều này có vẻ dễ dàng nhưng việc merge có thể phức tạp vì bạn có thể có một nhóm làm việc trên phiên bản miễn phí và một nhóm khác làm việc với phiên bản trả phí và điều gì sẽ xảy ra nếu cả hai cùng thay đổi đến cấu trúc tổng thể của mã. CÓ thể một biến được cập nhật và làm hỏng phần nào đó. Sau đó, bạn có các conflict làm một chức năng không chạy được. Quản lý phiên bản không thể khắc phục được các conflict do bạn tạo ra. Nhưng quản lý phiên bản cho phép điều này được quản lý một cách dễ dàng.
4444

@@ -48,7 +48,7 @@ Nếu không có quản lý phiên bản, làm thể nào các nhóm phát tri
4848

4949
Với quản lý phiên bản, chúng ta có một nguồn sự thật duy nhất (single source of truth). Chúng ta có thể làm việc trên các module khác nhau nhưng nó cho phép chúng ta cộng tác tốt hơn.
5050

51-
![](Images/Day35_Git5.png)
51+
![](../../Days/Images/Day35_Git5.png)
5252

5353
Một việc khác cần đề cập tới là không chỉ các nhà phát triển có thể hưởng lợi từ quản lý phiên bản, tất cả các thành viên và các công cụ có thể nhìn rõ dự án và tận dụng, các công cụ quản lý dự án có thể được liên kết và theo dõi tiến độ công việc. Chúng ta cũng có thể có một máy build, chẳng hạn như là một Jenkins server mà chúng ta sẽ nói trong phần sau. Một công cụ xây dựng mà nguồn và đóng gói hệ thống, tự động hoá quá trình kiểm thử và các metrics liên quan tới mã nguồn.
5454

@@ -62,59 +62,59 @@ Bây giờ chúng ta sẽ xem qua một cách tổng quát trước khi cài đ
6262

6363
Hãy sử dụng thư mục mà chúng ta đã tạo trước đó.
6464

65-
![](Images/Day35_Git2.png)
65+
![](../../Days/Images/Day35_Git2.png)
6666

6767
Để sử dụng thư mục này với quản lý phiên bản, trước tiên chúng ta cần khởi tạo thư mục nào bằng lệnh `git init`. Hiện tại, chỉ cần nghĩ rằng lệnh này đặt thư mục của chúng ta làm kho lưu trữ trong cơ sở dữ liệu ở đâu đó trên máy tính của chúng ta.
6868

69-
![](Images/Day35_Git6.png)
69+
![](../../Days/Images/Day35_Git6.png)
7070

7171
Bây giờ chúng ta có thể tạo một số tệp và thư mục cho mã nguồn hoặc cũng có thể đã có sẵn từ trước đó. Sử dụng lệnh `git add .` sẽ đặt tất cả cá tệp và thư mục trong thư mục của chúng ta vào một chiếc hộp nhưng chúng ta chưa commit bất cứ thứ gì vào cơ sở dữ liệu đó. Thao tác này chỉ có nghĩ là tất cả các tệp có `.` đã sẵn sàng để được thêm vào.
7272

73-
![](Images/Day35_Git7.png)
73+
![](../../Days/Images/Day35_Git7.png)
7474

7575
Sau đó, chúng ta có thể muốn tiếp tục và commit các tệp của mình, việc này có thể thực hiện bằng lệnh `git commit -m "My First Commit"`. Chúng ta có thể đưa ra lý do cho commit của mình, điều này được khuyến khích để chúng ta có thể biết điều gì xảy ra trong mỗi commit.
7676

77-
![](Images/Day35_Git8.png)
77+
![](../../Days/Images/Day35_Git8.png)
7878

7979
Bây giờ chúng ta có thể thấy những gì xảy ra trong lịch sử của dự án. Sử dụng lệnh `git log`
8080

81-
![](Images/Day35_Git9.png)
81+
![](../../Days/Images/Day35_Git9.png)
8282

8383
Nếu chugns ta tạo một tệp bổ sung có tên là `samplecode.ps1`, thì trạng thái sẽ bị thay đổi. Chúng ta cũng có thể kiểm tra trạng thái của kho lưu trữ của mình bằng cách sử dụng `git status`, lệnh này cho chúng ta thấy không có gì để commit và chúng ta có thể thêm một tệp mới có thên samplecode.ps1. Sau đó, nếu chạy lại lệnh `git status` một lần nữa bạn sẽ thấy file mà chúng ta có thể commit.
8484

85-
![](Images/Day35_Git10.png)
85+
![](../../Days/Images/Day35_Git10.png)
8686

8787
Thêm tệp mới của chúng ta bằng lệnh `git add samplecode.ps1` và sau đó chạy lại lệnh `git status` một lần nữa và thấy tệp này đã được sẵn sàng để commit.
8888

89-
![](Images/Day35_Git11.png)
89+
![](../../Days/Images/Day35_Git11.png)
9090

9191
Sau đó dùng lệnh `git commit -m "My Second Commit"`.
9292

93-
![](Images/Day35_Git12.png)
93+
![](../../Days/Images/Day35_Git12.png)
9494

9595
`git status` bây giờ cũng thể hiện rằng chúng ta đã dọn dẹp mọi thứ.
9696

97-
![](Images/Day35_Git13.png)
97+
![](../../Days/Images/Day35_Git13.png)
9898

9999
Sau đó, chúng ta có thể sử dụng lệnh `git log` để hiện thị các commit mới nhất và commit đầu tiên.
100100

101-
![](Images/Day35_Git14.png)
101+
![](../../Days/Images/Day35_Git14.png)
102102

103103
Nếu chúng ta muốn xem các thay đổi giữa các lần commit của mình, tức là những tệp nào đã được thêm hoặc sửa đổi, chúng ta có thể sử dụng `git diff b8f8 709a`
104104

105-
![](Images/Day35_Git15.png)
105+
![](../../Days/Images/Day35_Git15.png)
106106

107107
Nó sẽ hiển thị những gì đã thay đổi, trong trường hợp của chúng ta, một tệp mới đã được thêm vào.
108108

109-
![](Images/Day35_Git16.png)
109+
![](../../Days/Images/Day35_Git16.png)
110110

111111
Chúng ta sẽ đi sâu hơn vào vấn đề này sau nhưng chúng ta có thể nhảy giữa các commit của mình, đại loại là chúng ta có thể du hành thời gian! Bằng cách sử dụng hash của commit, có thể sử dụng lệnh `git checkout 709a` để nhảy ngược thời gian mà không làm mất tệp mới của chúng ta.
112112

113-
![](Images/Day35_Git17.png)
113+
![](../../Days/Images/Day35_Git17.png)
114114

115115
Nhưng sau đó, chúng ta cũng sẽ muốn tiếp tục và có thể thực hiện điều này theo cách tương tự với hash của commit hoặc bạn có thể thấy như ở đây chúng ta sử dụng `git switch -` câu lệnh hoàn tác thao tác trước đó.
116116

117-
![](Images/Day35_Git18.png)
117+
![](../../Days/Images/Day35_Git18.png)
118118

119119
TLDR:
120120

2022/vi/Days/day36.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ Bạn cũng có thể sử dụng `winget` trên máy tính Windows của mình,
2424

2525
Trước khi chúng ta cài đặt bất cứ thứ gì, hãy kiểm tra phiên bản hiện tại trên máy của bạn. Mởi cửa sổ PowerShell và chạy `git --version`
2626

27-
![](Images/Day36_Git1.png)
27+
![](../../Days/Images/Day36_Git1.png)
2828

2929
Chúng ta cũng có thể kiểm tra phiên bản Git trên WSL Ubuntu của mình.
3030

31-
![](Images/Day36_Git2.png)
31+
![](../../Days/Images/Day36_Git2.png)
3232

3333
Tại thời điểm viết bài, bản phát hành mới nhất trên Windows là `2.35.1`, vì vậy tôi sẽ hướng dẫn việc update một vài thứ. Linux cũng có thể tương tự như vậy.
3434

@@ -38,33 +38,33 @@ Có nghĩ là quy trình bên dưới cũng là quy trình mà chúng ta phải
3838

3939
Đây là một cài đặt khá đơn giản. Sau khi tài xuống, click đúp và bắt đầu. Đọc qua thoả thuận về giấy phép GNU. Nhưng hãy nhớ đây là phần mềm mã nguồn mở và miễn phí.
4040

41-
![](Images/Day36_Git3.png)
41+
![](../../Days/Images/Day36_Git3.png)
4242

4343
Bây giờ chúng ta có thể chọn các thành phần bổ sung mà chúng ta muốn cài đặt cũng như liên kết với git. Trên Windows, tôi luôn đảm bảo rằng mình đã cài đặt Git Bash vì điều này cho phép chúng ta chạy các lệnh bash trên Windows.
4444

45-
![](Images/Day36_Git4.png)
45+
![](../../Days/Images/Day36_Git4.png)
4646

4747
Sau đó, chúng ta có thể chọn phần mềm SSH mà chúng ta muốn sử dụng. Tôi chọn OpenSSH như bản có thể thấy trong phần tìm hiểu về Linux.
4848

49-
![](Images/Day36_Git5.png)
49+
![](../../Days/Images/Day36_Git5.png)
5050

5151
Chúng ta cũng có thể bật các tính năng thử nghiệm, đối với tôi, tôi không cần chúng nên đã không bật chúng, bạn luôn có thể quay lại việc cài đặt để bật các tính năng này.
5252

53-
![](Images/Day36_Git6.png)
53+
![](../../Days/Images/Day36_Git6.png)
5454

5555
Cài đặt hoàn tất, bây giờ chúng ta có thể chọn mở Git Bash hoặc đọc bản ghi chú cho bản phát hành mới nhất.
5656

57-
![](Images/Day36_Git7.png)
57+
![](../../Days/Images/Day36_Git7.png)
5858

5959
Bước kiểm tra cuối cùng là mở PowerShell và thử lại câu lệnh kiểm tra phiên bản git.
6060

61-
![](Images/Day36_Git8.png)
61+
![](../../Days/Images/Day36_Git8.png)
6262

6363
Sau các bước siêu đơn giản ở trên, chúng ta sẽ có phiên bản mới nhất của git. Đối với Linux, quá trình có thể sẽ mất thời gian hơn một chúng nhưng tôi cũng muốn nói qua về nó.
6464

6565
Tôi chỉ cần chạy lệnh `sudo apt-get install git`.
6666

67-
![](Images/Day36_Git9.png)
67+
![](../../Days/Images/Day36_Git9.png)
6868

6969
Bạn cũng có thể chạy các câu lệnh dưới dây để add thêm git repository cho các cài đặt phần mềm.
7070

@@ -101,11 +101,11 @@ bây giờ, nếu chúng ta muốn kiểm tra tất cả các cầu hình git th
101101

102102
`git config --global -e`
103103

104-
![](Images/Day36_Git10.png)
104+
![](../../Days/Images/Day36_Git10.png)
105105

106106
Trên tất cả các máy, tệp này sẽ được đặt tên là `.gitconfig`. Trên máy Windows của tôi, bạn sẽ tìm thấy tệp này trong thư mục người dùng của mình.
107107

108-
![](Images/Day36_Git11.png)
108+
![](../../Days/Images/Day36_Git11.png)
109109

110110
### Lý thuyết Git
111111

@@ -117,15 +117,15 @@ Trước khi git xuất hiện, Client-Server là phương thức chính để q
117117

118118
Trong mô hình quản lý phiên bản Client-Server này, bước đầu tiên nhà phát triểu cần làm là tải xuống mã nguồn và các tệp từ máy chủ. Điều này không giải quyết các xung đột nhưng nó loại bỏ sự phức tạp của các xung đột và cách giải quyết chúng.
119119

120-
![](Images/Day36_Git12.png)
120+
![](../../Days/Images/Day36_Git12.png)
121121

122122
Bây giờ, giả sử chúng ta có hai nhà phát triển làm việc trên cùng một tệp và một người xong trước, upload file của họ lên server trước với những thay đổi của họ. Khi người thứ hai cập nhật file đó, xung đột sẽ xảy ra.
123123

124-
![](Images/Day36_Git13.png)
124+
![](../../Days/Images/Day36_Git13.png)
125125

126126
Vì vậy, bây giờ người thứ hai cần kéo thay đổi mã của người đầu tiên xuống và giải quyết các xung đột trong mã nguồn rồi sau đó mới commit lên máy chủ.
127127

128-
![](Images/Day36_Git15.png)
128+
![](../../Days/Images/Day36_Git15.png)
129129

130130
### Distributed Version Control
131131

@@ -140,7 +140,7 @@ Một số lợi ích chính của Git là:
140140

141141
Khác với mô hình kiểm soát phiên bản Client-Server, mỗi nhà phát triển tải xuống một repository thì nó sẽ bao gồm tất cả mọi thứ. Lịch sử các commit, tất cả các nhánh,...
142142

143-
![](Images/Day36_Git16.png)
143+
![](../../Days/Images/Day36_Git16.png)
144144

145145
## Tài liệu tham khảo
146146

2022/vi/Days/day37.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ Google hoặc bất kỳ công cụ tìm kiểm nào có thể là điểm đế
2222

2323
Tiếp sau đó có thể là trang chính thức của git và tài liệu. [git-scm.com/docs](http://git-scm.com/docs) Tại đây, bạn sẽ không những chỉ tìm thấy tài liệu tham khảo tốt cho tất cả các câu lệnh, mà còn có rất nhiều các tài nguyên khác.
2424

25-
![](Images/Day37_Git1.png)
25+
![](../../Days/Images/Day37_Git1.png)
2626

2727
Chúng ta cũng có thể truy cập tài liệu tương tự sau, điều này cực kỳ hữu ích nếu bạn không có kết nối nào từ terminal. Ví dụ: nếu chúng ta sử dụng lệnh `git add`, chúng ta có thể chạy `git add --help` và đọc hướng dẫn dưới đây.
2828

29-
![](Images/Day37_Git2.png)
29+
![](../../Days/Images/Day37_Git2.png)
3030

3131
Chúng ta cũng có thể dụng `git add -h` để cung cấp tống hợp các tuỳ chọn có sẵn mà chúng ta có thể sử dụng.
3232

33-
![](Images/Day37_Git3.png)
33+
![](../../Days/Images/Day37_Git3.png)
3434

3535
### Những câu chuyện xung quanh Git
3636

@@ -156,7 +156,7 @@ Tôi đã lấy những câu lệnh từ [atlassian](https://www.atlassian.com/g
156156
| git push <remote> --all | `git push <remote> --all` | Đẩy tất cả các nhánh ở local đến một remote xác định. |
157157
| git push <remote> --tags | `git push <remote> --tags` | Tage không được tự động đẩy lên khi bạn đẩy một nhánh hay sử dụng --all. --tags sẽ gửi tất cả những local tags lên remote repo. |
158158

159-
## Resources
159+
## Tài liệu tham khảo
160160

161161
- [What is Version Control?](https://www.youtube.com/watch?v=Yc8sCSeMhi4)
162162
- [Types of Version Control System](https://www.youtube.com/watch?v=kr62e_n6QuQ)

0 commit comments

Comments
 (0)