[Công nghệ Thông tin] -- [Web] -- [Công nghệ phần mềm] -- [PhoThong] -- [Đăng ký các khóa học] -- [Langbiang's Portfolio] -- [Học viên cũ] -- [10.000 giờ]
--------------- <> -----------------
---  KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM --->>>  CÁC KHÓA HỌC...
---  Nhận làm website, web app, chạy quảng cáo, digital marketing --->>>  LIÊN HỆ...

Tìm kiếm trong Blog

Git thực hành (4) - Các khu vực làm việc của Git

Bài trước: Git thực hành (3) - Cấu hình định danh người dùng

-----
4. Các khu vực làm việc của Git

Tới bài học này, bạn đã:

- Tạo được thư mục dự án (TeoShop)

- Nhúng Git vào thư mục dự án (tạo được kho chứa, hay repository), chính là thư mục (ẩn) .git trong TeoShop

- Thiết lập tên và email của bạn để dùng trong quá trình commit (đánh dấu thay đổi)

Phần này chúng ta sẽ tìm hiểu về các khu vực làm việc của Git.

4.1 Ba khu vực làm việc của Git

Khi làm việc với Git, bạn sẽ thao tác với 3 khu vực của Git, gồm:

- [1] Thư mục làm việc (working directory): là nơi bạn chỉnh sửa tập tin trực tiếp trên máy tính. Đây là bản sao hiện tại của dự án, chứa cả các thay đổi chưa được theo dõi bởi Git. Ví dụ: giả sử bạn thêm tập tin index.js vào dự án TeoShop thì tập tin index.js sẽ nằm ở khu vực này.

- [2] Khu vực tổ chức tạm (staging area) gọi tắt là Khu tạm: là vùng trung gian, lưu trữ các thay đổi mà bạn đã chọn để commit, được quản lý bằng tập tin .git\index. Dùng lệnh git add để thêm tập tin vào Khu tạm. Ví dụ: git add index.js, sẽ đưa tập tin index.js vào Khu tạm.

- [3] Kho chứa (repository) lưu trữ tất cả các tập tin và lịch sử thay đổi của một dự án. Thư mục .git trong dự án chính là Kho chứa. Dùng git commit để chuyển tập tin từ Khu tạm sang Kho chứa. Ví dụ: sau lệnh git commit, những thay đổi của tập tin index.js sẽ được lưu vào Kho chứa.

Với việc phân chia thành 3 khu vực, Git sẽ giúp bạn quản lý mã nguồn một cách hiệu quả. Quy trình làm việc cụ thể như sau: chỉnh sửa mã nguồn ở Thư mục làm việc > chuẩn bị nội dung commit ở Khu tạm > lưu trữ mã nguồn, lịch sử ở Kho chứa.

Xem hình minh họa.

Khảo sát 3 khu vực của Git trong dự án

Trong một dự án (ví dụ: TeoShop), 3 khu vực của Git cụ thể như sau:

- Thư mục làm việc: là thư mục TeoShop, không bao gồm thư mục .git

- Khu tạm: là tập tin index trong thư mục .git

- Kho chứa: là thư mục .git

Xem hình minh họa.

4.2 Thư mục làm việc

Như đã đề cập, Thư mục làm việc là thư mục thực tế trên máy tính, nơi bạn làm việc trực tiếp với các tập tin của dự án. Nó đại diện cho trạng thái hiện tại của mã nguồn, bao gồm cả các tập tin đã được Git theo dõi (tracked) và chưa theo dõi (untracked). Đây là bản sao "sống" của Kho chứa tại một thời điểm nhất định.

Thư mục làm việc (working directory) để làm gì?

- Chỉnh sửa mã nguồn: là nơi bạn tạo, sửa, hoặc xóa tập tin trước khi đưa thay đổi vào .git.

- Xem trạng thái dự án: phản ánh các thay đổi so với commit cuối cùng, giúp bạn quyết định những gì cần thêm vào Khu tạm.

- Thử nghiệm: cho phép thử nghiệm các đoạn mã mà không ảnh hưởng ngay đến lịch sử phiên bản trong Kho chứa.

Có 2 cách để có Thư mục làm việc:

[1] Khởi tạo kho chứa mới: dùng lệnh git init

[2] Sao chép một kho chứa có sẵn từ nơi khác (ví dụ từ Github): dùng lệnh git clone 

git clone https://github.com/username/my-project.git

[Để tiện cho việc thực hành với Git, từ phần này sẽ di chuyển thư mục TeoShop từ E:\ vào E:\HocGit]

Lệnh git add

Lệnh git add dùng để đưa các thay đổi từ Thư mục làm việc vào Khu tạm. Lệnh này giúp bạn chọn lọc những tập tin hoặc phần thay đổi cụ thể để chuẩn bị cho lần commit tiếp theo, thay vì commit tất cả mọi thứ trong Thư mục làm việc. Nói cách khác, git add là bước "đánh dấu" những gì bạn muốn lưu vào lịch sử phiên bản.

Cú pháp

- git add <tập_tin>: thêm một tập tin cụ thể.

- git add .: thêm tất cả thay đổi.

- git add -p: thêm từng phần thay đổi (patch) trong tập tin.

Lệnh git status

Lệnh git status được sử dụng để hiển thị trạng thái hiện tại của Kho lưu trữ và Thư mục làm việc

Thực hành với git status git add

Hiện tại, thư mục TeoShop chưa có tập tin nào, ngoại trừ Kho chứa .git. Nghĩa là, Thư mục làm việc đang trống.

Sử dụng git status để  xem trạng thái của dự án TeoShop

E:\HocGit\TeoShop>git status

On branch master

 

No commits yet

 

nothing to commit (create/copy files and use "git add" to track)

Giải thích thông tin hiển thị của lệnh git status ở trên:

- Chúng ta đang làm việc ở nhánh master

- Chưa có commit nào

- Không có gì để commit (trong Khu tạm đang rỗng)

Chúng ta sẽ tạo tập tin index.js, với nội dung như sau:

[index.js]

'use strict'

const express = require('express')

const app = express();

const port = process.env.PORT || 9000

 

// xu ly khi nguoi dung gui request toi web server

app.get("/", (req, res) => {

    res.send('Chao ban den voi ctk!');

});

// khoi dong web server

app.listen(port, () => {

    console.log(`server dang chay tren cong ${port}`);

});

Chạy lại lệnh git status để xem trạng thái của TeoShop

E:\HocGit\TeoShop>git status

On branch master

No commits yet

Untracked files:

  (use "git add <file>..." to include in what will be committed)

        index.js

nothing added to commit but untracked files present (use "git add" to track)

Lệnh git status ở trên cho biết: có tập tin mới xuất hiện (index.js) trong dự án TeoShop mà chưa được Git theo dõi (untracked). Hiện tại trong Khu tạm chưa có gì (nothing added to commit). Nếu muốn theo dõi tập tin và chuẩn bị đưa tập tin vào Kho chứa thì sử dụng lệnh git add <tên_tập_tin>.

Vậy, chúng ta sẽ đưa tập tin index.js vào chế độ “bị Git theo dõi” bằng lệnh git add index.js


E:\HocGit\TeoShop>git add index.js

Kiểm tra trạng thái:

E:\HocGit\TeoShop>git status

On branch master

 

No commits yet

 

Changes to be committed:

  (use "git rm --cached <file>..." to unstage)

        new file:   index.js

Lệnh git status ở trên cho biết: có một tập tin (index.js) đã sẵn sàng để đưa vào Kho chứa (commit).

Bạn có thể mở Khu tạm (staging area) để kiểm tra, sẽ thấy thông tin về tập tin index.js cũng đã nằm ở trong khu vực này.

Xem hình minh họa.

4.3 Bài tập

Bài tập 4.1 Thực hành lại các lệnh, tạo các thư mục, tập tin như trong bài học.

Câu 4.2 Ba khu vực làm việc chính của Git là gì? Phát biểu nào sau đây không đúng?

A. Thư mục làm việc (working directory) là nơi bạn chỉnh sửa tập tin trực tiếp.

B. Khu tạm (staging area) là nơi lưu trữ lịch sử phiên bản của dự án.

C. Kho chứa (repository) là nơi lưu trữ dữ liệu chính thức của dự án.

D. Lệnh git add được sử dụng để chuyển các thay đổi từ Thư mục làm việc sang Khu tạm.

Câu 4.3 Thư mục làm việc (working directory) trong Git là gì? Phát biểu nào sau đây không đúng?

A. Là thư mục thực tế trên máy tính, nơi bạn làm việc trực tiếp với các tập tin của dự án.

B. Là nơi bạn tạo, sửa, hoặc xóa tập tin trước khi đưa thay đổi vào .git.

C. Là nơi lưu trữ lịch sử phiên bản và dữ liệu chính thức của dự án.

D. Phản ánh các thay đổi so với commit cuối cùng, giúp bạn quyết định những gì cần thêm vào Khu tạm (staging area).

-----
Cập nhật: 18/3/2025
-----
Bài sau: Git thực hành (5) - Các khu vực làm việc của Git (tiếp)