- vừa được xem lúc

Hướng dẫn sử dụng Git

0 0 4

Người đăng: Nguyễn Đặng Triều

Theo Viblo Asia

I. Lời mở đầu

Hiện tại bài viết đang viết theo kiểu ghi chú của bản thân. Tôi sẽ chỉnh sửa lại dần dần để tiếp cận với người đọc tốt hơn.

Một số video phải xem:

Bài viết:

II. Git

Một số khái niệm cơ bản:

  • Git là một hệ thống quản lí phiên bản phân tán. Git cung cấp cho mỗi lập trình viên một kho lưu trữ riêng biệt để quản lí lịch sử của dự án.
  • Version Control System là hệ thống kiểm soát các phiên bản phân tán mã nguồn mở. Các VCS sẽ lưu trữ tất cả các file trong toàn bộ dự án và ghi lại toàn bộ lịch sử thay đổi của file. Mỗi sự thay đổi được lưu lại sẽ được và thành một version (phiên bản).

1. Tổng quan

Mở git bash hoặc terminal.

# Đặt tên hiển thị
git config --global user.name "Tên Của Bạn" # Đặt email dùng cho commit
git config --global user.email "email@example.com"

Lệnh global có nghĩa là áp dụng cho toàn bộ repository.

Nếu bạn chỉ muốn config riêng một project (repo) nào đó, thì cd vào thư mục repo rồi chạy không có --global:

git config user.name "Tên Riêng Cho Repo Này"
git config user.email "email-rieng@example.com"

dùng Q để thoái khỏi git config --list

Sau khi config để thiết lập một repo trên máy local, dùng:

git init

Mình sẽ tạo hai file main.hmain.c trong thư mục làm việc (working directory)

Kiểm tra trạng thái các file trong thư mục như thế nào

git status

Sẽ hiện thị ra terminal như sau

Untracked files: (use "git add <file>..." to include in what will be committed) main.c main.h

Untracked files là những file Git chưa biết đến. 🤷‍♀️

Khi bạn tạo một file mới trong thư mục làm việc (working directory) của một Git repository, Git sẽ nhận ra sự tồn tại của file đó nhưng chưa bắt đầu theo dõi nó. Những file này được gọi là "untracked files." Git sẽ không lưu lại lịch sử thay đổi của chúng cho đến khi bạn ra lệnh.

Nếu bạn muốn Git theo dõi và lưu lại lịch sử của chúng, bạn cần thêm chúng vào staging area bằng lệnh git add.

  • Thêm một file cụ thể: git add <tên_file>
  • Thêm tất cả các file mới và đã thay đổi: git add .

Sau khi dùng git add bây giờ để đưa vào git repo thì ta dùng git commit

Ví dụ:

git commit -m "add main.c main.h files"

Để xem lại thông tin của các commit thì dùng git log

Tuy nhiên, nếu sau khi commit các file, bây giờ ta lại sửa đối các file đó thì nó sẽ quay về thư mục làm việc và ở trạng thái là M (viết tắt của modify). Kí tự M này sẽ ở bên cạnh tên file trong thư mục làm việc.

Lúc này để xem những gì đã thay đổi trong file, bạn nhấn vào mục Source Control và chọn file cần xem.

Để lưu trữ những gì đã thay đổi trong các file ta lại dùng git add.

Liên kết repo local với repo server

git remote add origin <link repo>

Xong tới 2 câu lệnh

git branch -M main
git push -u origin main

Khi thực thi 2 câu lệnh này mà bạn thấy xuất hiện lỗi như hình bên dưới nghĩa là bạn chưa thiết lập SSH Key giữa github và laptop (client).

Tiếp theo mk, sẽ nói sơ qua về SSH Key và xử lí vấn đề xảy ra này.

2. Tìm hiểu về SSH Key

a. 🛠 SSH Key là gì?

  • SSH Key (Secure Shell Key) là cặp khóa (gồm Private Key và Public Key) dùng để xác thực giữa hai máy tính thông qua giao thức SSH.
  • Nó hoạt động kiểu như một "chìa khóa – ổ khóa":
    • Public Key (khóa công khai): đưa cho dịch vụ/máy chủ (ví dụ GitHub).
    • Private Key (khóa riêng tư): giữ bí mật trên laptop của bạn.
  • Khi bạn kết nối, máy chủ sẽ kiểm tra xem bạn có “chìa” (Private Key) khớp với ổ khóa (Public Key) mà nó đang giữ không.

b. Ứng dụng

Tăng tính bảo mật và xác thực trước khi truyền dữ liệu trong mạng.

c. Mô tả quá trình hoạt động

d. Tạo SHH Key

Bạn hãy thực hiện tuần tự các bước bên dưới để tạo SSH Key

Bước 1: Tạo khóa
ssh-keygen -t ed25519 -C "địa chỉ email của bạn"

Đầu ra là như sau

Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\ADMIN/.ssh/id_ed25519):

C:\Users\ADMIN/.ssh/id_ed25519 đây là đường dẫn thư mục lưu trữ private key. Tại bước này bạn chỉ cần nhấn Enter để xác nhận.

Enter passphrase (empty for no passphrase): Enter same passphrase again: 

Nhập mật khẩu mà bạn muốn, đây là private key không nên tiết lộ với người khác. Sau khi nhập mật khẩu cơ bản là đã hoàn thành việc tạo khóa.

Bước 2: Lưu trữ khóa public key vào trên tài khoản github
  • Copy toàn bộ public key nằm trong file C:\Users\ADMIN\.ssh\id_ed25519.pub

Lưu ý: Mở file với định dạng note. Nó sẽ bắt đầu bằng ssh-ed25519 AAAAC3N...

  • Thêm SSH key vào GitHub: Vào Settings-> Chọn SSH and GPG Keys -> New SSH Key .
  • Điền các thông tin vào
    • Title: bạn tự đặt tên
    • Key type: Authentication Key
    • Paste nội dung public key vừa copy vào ô Key
  • Nhấn Add SSH key

image.png

3. Đổi remote từ HTTPS sang SSH

Repo của bạn hiện đang dùng HTTPS (https://github.com/...) phải đổi sang SSH

git remote set-url origin "link ssh"

Để lấy link ssh thì bạn bấm vào như hình bên dưới bên trong repo image.png Sau đó, có thể kiểm tra lại

git remote -v

Đảm bảo đầu ra thấy link dạng SSH (git@github.com:...).

Kiểm tra kết nối SSH

ssh -T git@github.com

Lần đầu sẽ hiện cảnh báo fingerprint, gõ yes. Nếu thành công, sẽ thấy:

Hi Nguyen-Dang-Trieu! You've successfully authenticated, but GitHub does not provide shell access.

Bây giờ bạn có thể thử lại, Push code cái bước mà bị lỗi bên trên.

git push -u origin main

Tuy nhiên sẽ yêu cầu private key, chỉ cần bạn nhập chính xác là ok.

Đọc thêm

Bình luận

Bài viết tương tự

- vừa được xem lúc

Github CLI - Đơn giản hóa cuộc sống cho developer

1. Giới thiệu.

0 0 54

- vừa được xem lúc

Tự build cho mình một hệ thống BADGE MARKDOWN siêu xịn xò - #1

Chào mọi người, lại là mình và cái serie "Something thú vị" của mình đây, serie tổng hợp những kiến thức mình cảm thấy thú vị ở trên google, github, bla bla... Qua đó chia sẻ những project nho nhỏ, thích hợp để mọi người làm cho vui hoặc relax hoặc giải trí. https://github.com/weebNeedWeed/custom-ba

0 0 49

- vừa được xem lúc

Profile README - Portfolio cá nhân nhanh, bổ, rẻ ngay trên Github

. Khi đã chọn nghề IT, dấn thân vào con đường dev khó có ngày yên nghỉ (ngơi), chắc các bạn đã không còn xa lạ với Github, nếu không muốn nói là quá quen (nếu chưa biết Github là cái gì thì bạn cần lăn lộn giang hồ nhiều nữa ). Với một hệ thống siêu khủng, nhiều tính năng siêu tiện ích, một đội ngũ

0 0 111

- vừa được xem lúc

Git objects

. Giới thiệu. Hầu hết các developer đều ít nhiều sử dụng git trong công việc hàng ngày. Khi bắt đầu với git, chúng ta đều được học các câu lệnh quên thuộc như git add ., git commit -m '[Feat] Hello world'.

0 0 52

- vừa được xem lúc

Phân biệt GitHub và GitLab. Nên chọn dịch vụ nào?

Làm thế nào để phân biệt GitHub và GitLab? Ngày nay, quản lý kho là một trong những yếu tố quan trọng của phát triển phần mềm hợp tác. Các tính năng phân phối thành công yêu cầu cần sự kết hợp của các

0 0 60

- vừa được xem lúc

Điểm mặt 10 project đang làm mưa làm gió trên Github trong lĩnh vực phát triển web

Nguồn: https://iainfreestone.hashnode.dev/10-trending-projects-on-github-for-web-developers-12th-march-2021. .

0 0 101