● Local: Phía client máy vi tính của bạn, source code sẽ được clone từ remote repository.. ● git checkout: Lệnh chuyển tới một nhánh branch khác trong "Repository" mỗi repository có thể
Trang 11 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
CT244
Bảo Trì Phần
Mềm
Cán bộ hướng dẫn:
Huỳnh Quang Nghi
Sinh viên thực hiện:
Trần Nguyễn Hữu Lộc B2012111 Nguyễn Hồ Minh Phú B2012128
Trang 21 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
Mục Lục
niệm
Trang 31 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
Git là gì ?
Git là một phần mềm mã nguồn mở:
● Được phát triển bởi Linus Torvalds
vào năm 2005.
● Người sử dụng Git thường là các
lập trình viên, designer, v.v những
người làm việc trên những sản
phẩm phần mềm có nhiều sự thay
đổi hoặc cần phát triển song song
các tính năng của sản phẩm.
● Phần mềm quản lý phiên bản được
sử dụng vô cùng phổ biến trong
hầu hết các công ty IT trên toàn
thế giới.
Trang 41 0 0 1 0 1 0 1 0 1 0 1 1 1 0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
02
Trang 51 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
● Remote: Là phía máy chủ Git, source code của dự án sẽ được lưu trữ tại đây
● Local: Phía client (máy vi tính của bạn), source code sẽ được clone từ remote repository
Trong quá trình làm việc phần lớn là bạn sẽ thao tác tại đây
● git add: Lệnh di chuyển các file từ "Working directory" tới "Staging area".
● git commit: Lệnh di chuyển các file từ "Staging area" tới "Repository".
● git checkout: Lệnh chuyển tới một nhánh (branch) khác trong "Repository" (mỗi
repository có thể tạo ra nhiều nhánh nhỏ bên trong)
● git merge: Lệnh hợp nhất code từ nhánh này qua nhánh khác.
● git push: Lệnh đẩy code từ Local "Repository" tới Remote "Repository".
● git pull: Lệnh lấy code từ Remote "Repository" về Local "Repository".
Trang 61 0 0 1 0 1 0 1 0 1 0 1 1 1 0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
động
03
Trang 71 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
Git hoạt động như thế
nào?
● Git tạo ra một kho lưu trữ từ xa (remote repository), đây là repository chung, các thành viên trong dự án sẽ nhân bản (clone) repository này về máy tính cá nhân để làm việc trên đó
● Để lưu trữ được lịch sử thay đổi của các tập tin và hỗ trợ đồng thời nhiều thành viên cùng làm việc trên cùng một dự án (ví dụ cả một team cùng code trên một source code)
● Repository trên máy tính cá nhân của mỗi thành viên được gọi là kho lưu trữ cục bộ (local repository)
Trang 81 0 0 1 0 1 0 1 0 1 0 1 1 1 0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
git
04
Trang 91 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
● Lệnh cấu hình tên người dùng và địa chỉ email:
$ git config -–global user.name “YOUR_NAME”
$ git config -–global user.email “YOUR_EMAIL”
● Kiểm tra lại tên người dùng và địa chỉ email có được cấu hình đúng như mong muốn
không
$ git config user.name
$ git config user.email
Cấu hình
Git:
Trang 100 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
● Di chuyển tới thư mục dự án
● Tại thư mục dự án chạy lệnh $ git init
Tạo một kho lưu trữ:
Trong ví dụ này mình giả sử bạn có một thư mục dự án tên là BTPM thì chúng ta sẽ làm như
sau:
Trang 111 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
● Trạng thái Git cung cấp thông tin của repository như: có gì mới, có gì được sửa
đổi, mọi thứ có được cập nhật không, v.v
Kiểm tra trạng thái - git
status
● Để thử nghiệm, tại repository của bạn hãy tạo một file mới tên là index.html sau
đó chạy lệnh $ git status kết quả sẽ trả về như sau:
Trang 121 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
● Git có một khái niệm là Staging Area, lệnh $ git add được sử dụng để di chuyển
các file có sự thay đổi tới khu vực này
Staging
Area
● Staging Area là nơi chứa các files chuẩn bị được commit
● Trong hướng dẫn này mình chỉ có một file là index.html, ta sẽ dùng lệnh
$ git add index.html chỉ add 1 file index.html)
$ git add –A hoặc $ git add
● Hoặc nếu muốn thêm tất cả thay đổi trong thư mục ta có thể dùng
lệnh:
Note:
-A là viết tắt của "All" và dấu chấm . là kí tự đại
diện cho "All", sử dụng 2 cách trên là tương đương
nhau.
Trang 131 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
● Sau khi sử dụng $ git add để di chuyển file index.html đến Staging Area.
Staging Area
● Ta có thể chạy lệnh $ git status để kiểm tra lại trạng thái
File index.html của chúng ta đã sẵn sàng để commit
Message trạng thái cũng cho chúng ta biết index.htmllà new file (file mới), nhưng trạng thái này cũng có thể là modified (đã sửa đổi) hoặc deleted (đã xóa)
Trang 140 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
● Cam kết hay thuật ngữ tiếng Anh là "commit", sử dụng lệnh này để di chuyển
files từ Staging Area tới vùng Local Repository trong kho lưu trữ của bạn
Cam kết - git commit
● Dữ liệu nằm tại vùng này sẽ sẵn sàng để tải lên kho lưu trữ từ xa (remote
repository)
● Ví dụ mình sẽ commit việc thêm file index.html vào dự án như sau:
$ git commit –m “Init project”
-m viết tắt của "message", tức là thông điệp của commit này nói lên điều gì
Trong ví dụ này mình để message là Init project
Trang 151 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
Kho lưu trữ từ ra (remote
repository)
● Kho lưu trữ từ xa có thuật ngữ tiếng Anh là
" Remote repository ", đây là repository
được tạo ra trên phía máy chủ
● Hiện hay có rất nhiều nhà cung cấp máy
chủ Git nổi tiếng như: github, gitlab,
gitbucket, backlog, v.v
Để tạo ra một remote repository ta cần đăng nhập một trong các bên cung cấp máy chủ Git như github, gitlab, v.v
Sau khi thêm remote thì repository phía local đã sẵn sàng để đẩy dữ liệu lên
remote repository.
Trang 161 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
● Theo mặc định khi tạo mới repository git
init sẽ có một nhánh (branch) tên là
“master" được tạo ra
● Nhưng do GitHub đã thay đổi chính sách
mặc định từ master sang main cho nhánh
chính của các repository mới tạo
● Nên trước khi push ta sẽ dùng lệnh git
branch -m master main để chuyển nhánh
chính của git từ master sang main
Kho lưu trữ từ ra (remote
repository)
Trang 171 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
Tải lên máy chủ - git push
● Sau khi chuyển nhánh chính của git từ master sang main chúng ta cần thêm remote
repository vào cài đặt phía local bằng lệnh git remote add origin <link>
● Sau khi thêm remote thì repository phía local đã sẵn sàng để đẩy dữ liệu lên remote
repository
Trang 180 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
Tải lên máy chủ - git push
Màn hình hiển thị tương tự như trên là bạn đã push thành công * [new branch] main ->
main được hiển thị thể hiện bạn đã push lên một nhánh mới, cụ thể là nhánh " main" tại local được push lên remote Kết quả là trên remote xuất hiện một nhánh tên là "main“
● Chúng ta dùng lệnh git push –u origin main để push nhánh main tại local lên remote.
Trang 191 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
Nhân bản kho lưu trữ - git clone
● Nhân bản (clone) kho lưu trữ sử dụng khi bạn cần lấy source code từ remote về local Giả
sử người tạo repository không phải là bạn thì bạn cần clone source code từ remote về
máy bạn.Thì bạn dùng lệnh git clone <LINK>
● Lệnh trên sẽ tạo một thư mục trùng tên với phần path của remote
repository
● Sau khi clone xong bạn có thể làm việc ngay với source đã được
lấy về
Trang 200 1 0 0 1 0 1 0 1 0 0 1 0 1 0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
Lấy các thay đổi từ máy chủ - git pull
● Trong trường hợp trên remote có những thay đổi mới bạn có thể tải chúng về và hợp nhất với dữ liệu tại local repository của bạn.
● Thì lệnh git pull origin main để lấy các thay đổi từ nhánh “main" trên remote về
nhánh “main" trên local