Khóa học
Bạn đã bao giờ xóa nhầm một tệp hoặc ghi đè mã mà không thể khôi phục? Không có hệ thống quản lý phiên bản, những lỗi như vậy có thể gây hậu quả nghiêm trọng. Đó là lúc git init phát huy tác dụng—nó biến thư mục dự án của bạn thành một kho Git, giúp mọi thay đổi đều có thể theo dõi và khôi phục.
Trong hướng dẫn này, tôi sẽ chỉ bạn cách thiết lập Git, chia sẻ vài mẹo cá nhân từ hành trình của mình và giúp bạn tạo một quy trình làm việc vững vàng ngay từ đầu.
Git Init là gì?
Lệnh git init khởi động hành trình quản lý phiên bản của bạn. Khi chạy lệnh này, Git sẽ tạo một thư mục ẩn .git bên trong thư mục dự án để lưu cấu hình, lịch sử commit và mọi siêu dữ liệu cần thiết để theo dõi thay đổi.
Với mọi chỉnh sửa đều được ghi nhận, bạn có thể tạo nhánh, hợp nhất và cộng tác một cách tự tin—biết rằng toàn bộ lịch sử dự án luôn chỉ cách bạn một lệnh.

Hình ảnh: Tác giả
Cách sử dụng Git Init
Trước khi đi vào các chủ đề nâng cao, điều quan trọng là hiểu cách dùng git init trong thực tế.
Cách dùng cơ bản của git init
Thực hiện các bước sau để tạo một kho Git mới từ đầu:
- Mở terminal: Khởi chạy giao diện dòng lệnh bạn ưa thích.
- Đi đến thư mục dự án của bạn:
cd /path/to/your/project
Lệnh này chuyển thư mục hiện tại sang thư mục bạn muốn theo dõi.
- Khởi tạo kho lưu trữ:
git init
Sau khi chạy, một thư mục ẩn .git sẽ được tạo. Thư mục này lưu toàn bộ thông tin theo dõi của Git.
- Xác minh trạng thái kho:
git status
Lúc này, Git đã được thiết lập nhưng chưa theo dõi tệp nào.
Khởi tạo kho cho dự án hiện có
Với các dự án chưa dùng quản lý phiên bản, bạn có thể khởi tạo Git và bắt đầu theo dõi thay đổi như sau:
- Đi đến thư mục dự án của bạn:
cd /path/to/your/project
- Chuyển dự án thành kho Git:
git init
Như đã đề cập, lệnh trên tạo thư mục ẩn .git để kích hoạt khả năng theo dõi của Git.
- Đưa tệp vào vùng chờ: Vì
git initkhông tự động theo dõi tệp, hãy thêm chúng bằng:
git add .
- Commit tệp của bạn: Lưu ảnh chụp ban đầu bằng cách chạy:
git commit -m "Initial commit"
Quy trình này chuyển một dự án chưa được quản lý thành dự án có lịch sử phiên bản đầy đủ—sẵn sàng cho phát triển mới và cộng tác.
Cấu hình Git (nếu cần)
Nếu bạn gặp lỗi "Author Identity Unknown", nghĩa là Git chưa biết bạn là ai. Để khắc phục, hãy cấu hình danh tính người dùng:
- Thiết lập thông tin người dùng Git:
git config --global user.email "your_email@example.com"
git config --global user.name "Your Name"
Dùng --global để áp dụng các cài đặt này cho mọi kho trên máy của bạn. Bỏ tùy chọn này sẽ chỉ thiết lập danh tính cho kho hiện tại.
- Xác minh cấu hình:
git config --global user.email
git config --global user.name
- Thử commit lại:
git commit -m "First Commit"
Tôi đã gặp lỗi này khi mới dùng Git—thiết lập danh tính đã giải quyết vấn đề.
Commit Git đầu tiên đã chạy thành công trong PowerShell.
Kết nối tới kho lưu trữ remote
Sau khi khởi tạo kho Git cục bộ, có thể bạn sẽ muốn sao lưu hoặc cộng tác với người khác bằng cách kết nối nó với một kho remote (ví dụ: GitHub, GitLab, Bitbucket).
- Thêm một kho remote: Để liên kết kho cục bộ với kho remote, dùng:
git remote add origin <repository-url>
Thay <repository-url> bằng URL của kho remote. origin là bí danh mặc định cho kho remote, nhưng bạn có thể dùng tên khác.
- Bạn có thể xác minh kết nối bằng:
git remote -v
- Đẩy thay đổi lên kho remote:
# Push the first commit and track the remote branch
git push -u origin $(git branch --show-current) # Works for 'main' or 'master'
Lệnh trên đẩy nhánh hiện tại và thiết lập theo dõi nhánh remote tương ứng.
Nếu bạn dùng phiên bản Git cũ không hỗ trợ $(git branch --show-current), hãy dùng:
git push -u origin main # Or 'master' depending on your default branch
Khi tiếp tục làm việc với dự án, bạn sẽ cần hợp nhất thay đổi từ các nhánh khác nhau khi cộng tác nhóm. Tìm hiểu cách xử lý hợp nhất một cách hiệu quả với hướng dẫn Git merge này.
Xác thực và quyền truy cập
Khi đẩy lên GitHub, GitLab hoặc Bitbucket, bạn có thể cần xác thực. Tùy cấu hình, bạn có thể:
- Dùng khóa SSH thay cho xác thực HTTPS (khuyến nghị để tăng bảo mật):
git remote set-url origin git@github.com:your-username/your-repo.git
- Dùng Personal Access Token (PAT) thay cho mật khẩu khi dùng HTTPS. Với GitHub, thay mật khẩu bằng token:
git push https://your-username@github.com/your-repo.git
Kết nối tới kho remote là bước ngoặt với tôi—nó cho thấy công việc cục bộ đã được sao lưu an toàn và sẵn sàng cộng tác. Hơn nữa, nó giúp tôi tự tin vào quản lý phiên bản, biết rằng lịch sử vẫn được lưu giữ ngay cả khi máy cục bộ gặp sự cố.
Tùy chọn nâng cao với Git Init
Với những ai muốn tùy chỉnh thiết lập Git, các tùy chọn nâng cao cung cấp thêm sự linh hoạt.
Khởi tạo kho trần (bare repository)
Nếu bạn thiết lập một máy chủ Git nơi các lập trình viên sẽ đẩy thay đổi nhưng không chỉnh sửa tệp trực tiếp, bạn sẽ cần kho trần. Kho trần không có thư mục làm việc và chỉ chứa dữ liệu quản lý phiên bản. Nó thường được dùng làm kho remote:
git init --bare <repository-name>
Kho trần thường được dùng trong quy trình GitOps, nơi hạ tầng và triển khai ứng dụng được quản lý qua Git. Nếu bạn muốn tìm hiểu cách GitOps tự động hóa và tinh gọn việc phân phối phần mềm, hãy xem hướng dẫn về GitOps này.
Khởi tạo với cấu hình cụ thể
Nếu bạn cần các hook Git tùy chỉnh hoặc tệp cấu hình ngay từ đầu, hãy khởi tạo với mẫu tùy chỉnh:
git init --template=<template-directory>
Tôi từng dùng mẫu tùy chỉnh để tự động nạp các hook cần thiết, giúp quy trình triển khai của nhóm mượt mà hơn.
Thực hành tốt khi dùng Git Init
Khởi đầu đúng cách với Git có thể giúp bạn tiết kiệm thời gian và tránh rắc rối về sau.
Tổ chức cấu trúc dự án
Trước khi chạy git init, hãy sắp xếp tệp theo cấu trúc thư mục hợp lý—tách riêng mã nguồn, tài liệu và tài nguyên.
Trong một dự án tôi tiếp quản, tệp từ nhiều tiểu dự án bị trộn lẫn, dẫn đến xung đột hợp nhất và nhầm lẫn. Bằng cách tổ chức lại vào các thư mục rõ ràng, khởi tạo lại kho và thiết lập .gitignore hợp lý, quy trình làm việc đã cải thiện đáng kể.
Thêm tệp .gitignore từ sớm
Ngay sau khi khởi tạo kho, hãy tạo tệp .gitignore để ngăn theo dõi những tệp không cần thiết:
touch .gitignore
Sau đó, chỉnh sửa để thêm các quy tắc như:
# Ignore dependency folders and log files
node_modules/
*.log
.DS_Store # macOS system file
Thumbs.db # Windows system file
Bước này giúp tôi tránh được lịch sử commit cồng kềnh và các xung đột có thể phát sinh sau này.
Để có hướng dẫn chi tiết về cấu hình tệp .gitignore, hãy xem hướng dẫn gitignore này.
Commit thường xuyên
Thực hiện các commit nhỏ, thường xuyên với thông điệp rõ ràng sẽ giúp xây dựng lịch sử dự án chi tiết và đơn giản hóa việc gỡ lỗi cũng như cộng tác.
Khắc phục sự cố thường gặp với Git Init
Dù đã chuẩn bị kỹ, vấn đề vẫn có thể phát sinh. Dưới đây là một số lỗi thường gặp và cách xử lý.
Lỡ khởi tạo ở sai thư mục
Vấn đề: Bạn đã chạy git init trong thư mục sai và giờ có một kho Git không mong muốn.
Giải pháp:
- Xóa kho Git:
rm -rf .git
> Cảnh báo: Lệnh này sẽ xóa toàn bộ lịch sử phiên bản của kho đó. Hãy chắc chắn bạn đang ở đúng thư mục trước khi chạy!
Sau đó, đi đến thư mục đúng và chạy git init lại.
Tôi đã mắc lỗi này vài lần, nên hãy kiểm tra kỹ thư mục làm việc để tránh lặp lại.
Xử lý tệp chưa được theo dõi
Vấn đề: Sau khi chạy git init, Git không theo dõi tệp của bạn. Khi chạy git status hiển thị:
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
Giải pháp:
- Kiểm tra xem tệp thật sự chưa được theo dõi:
git status
Nếu tệp xuất hiện dưới mục Untracked files, Git nhìn thấy chúng nhưng chưa theo dõi.
- Sau đó, đưa các tệp cần thiết vào vùng chờ bằng:
git add <file-name>
- Commit các tệp:
git commit -m "Initial commit"
Thường xuyên kiểm tra trạng thái sẽ giúp không bỏ sót điều quan trọng.
Nếu git status không hiển thị tệp, hãy kiểm tra xem dự án có tệp .gitignore đang loại trừ các tệp quan trọng hay không.
Kết luận
Thành thạo git init là bước khởi đầu quan trọng để xây dựng một hệ thống quản lý phiên bản đáng tin cậy, hỗ trợ cộng tác và quản lý dự án hiệu quả. Hãy làm theo hướng dẫn này—từ khởi tạo và tổ chức kho cho đến khắc phục sự cố thường gặp—để thiết lập một quy trình trơn tru, hiệu quả.
Bắt đầu nhỏ thôi—khởi tạo một dự án thử nghiệm bằng git init và thực hành đưa vào vùng chờ, commit, rồi đẩy thay đổi. Bạn nắm vững các nền tảng Git càng sớm, quy trình làm việc càng hiệu quả! Và nếu bạn muốn nâng cao kỹ năng Git hơn nữa, hãy xem các khóa học của DataCamp sau:
- Intermediate Git – Nâng cao kỹ năng với các kỹ thuật nhánh nâng cao, hợp nhất và xử lý xung đột.
- GitHub Foundations – Học cách tích hợp liền mạch Git với GitHub cho các dự án cộng tác.
Chúc bạn viết code vui vẻ—và cùng xây dựng những dự án đáng tin cậy, sáng tạo với Git!
Câu hỏi thường gặp
Làm thế nào để hoàn tác git init nếu tôi khởi tạo nhầm thư mục?
Xóa thư mục ẩn .git bằng cách chạy: rm -rf .git (trên hệ thống Unix) hoặc xóa thủ công trên Windows. Sau đó, đi đến thư mục đúng và chạy lại git init.
Sự khác biệt giữa git init và git clone là gì?
git init tạo một kho mới trống (hoặc thêm quản lý phiên bản cho một dự án hiện có), trong khi git clone sao chép một kho remote hiện có cùng toàn bộ lịch sử của nó.
Làm sao kiểm tra một thư mục đã là kho Git hay chưa?
Mở terminal trong thư mục đó và chạy: git rev-parse --is-inside-work-tree
Nếu trả về “true”, thư mục của bạn đang được Git quản lý phiên bản.
Vì sao thư mục .git bị ẩn và làm sao xem nó?
Git ẩn thư mục .git để bảo vệ lịch sử phiên bản của dự án. Để xem, hãy bật hiển thị tệp ẩn trong trình quản lý tệp của bạn hoặc chạy:
ls -a # on Mac/Linux
dir /A:H # on WindowsNhững lỗi thường gặp nào cần tránh ngay sau khi dùng git init?
Những sai sót thường gặp gồm không thêm .gitignore phù hợp, bỏ qua bước đưa vào vùng chờ với git add, và commit không có thông điệp rõ ràng. Luôn xác minh trạng thái kho bằng git status trước khi tiếp tục.
Làm sao khởi tạo Git trong một thư mục con của kho hiện có?
Nếu bạn cần theo dõi một tiểu dự án riêng bên trong một kho Git, hãy dùng Git submodule thay vì chạy git init trong một thư mục con.
git submodule add <repository-url> subdirectory-name
Cách này cho phép thư mục con được quản lý riêng biệt trong khi vẫn liên kết với kho cha.
Tôi là một kỹ sư dữ liệu và người xây dựng cộng đồng, làm việc với pipeline dữ liệu, đám mây và công cụ AI, đồng thời viết các hướng dẫn thực hành, tác động cao cho DataCamp và các nhà phát triển mới nổi.

