Tech Lần đầu xài Git với Gitlab và Github

Lần đầu xài Git với Gitlab và Github

-

- Advertisment -
Có.vn – Làm việc với Git trên Gitlab và Github

Tại sao mình lại viết bài viết này, chủ để này tưởng chừng quá dễ dàng rồi đúng không nào. Câu chuyện là như thế này, mình đi làm hơn 4 năm rồi. Nhưng Git và Gitlab, Github mình thật sự chỉ biết sơ sơ, và sử dụng thì chỉ toàn upload trực tiếp trên trình duyệt thôi.

Ở nhà thì do mình lười không chịu nghiên cứu với thực hành nhiều nên riết cũng quên mất. Dạo gần đây code hơi nhiều hơn trước, phải sử dụng git với github, gitlab hơi nhiều hơn. Nên giờ phải viết bài viết này để lưu lại những kiến thức, khi cần có thể moi ra để đọc, khỏi phải lên các trang mạng tìm kiếm chi cho mệt.

Không dài dòng, đầu tiên mình nói về Gitlab. Github mình sẽ update sau.

B1: Tạo tài khoản trên gitlab.
B2: Sau khi đăng nhập trên Gitlab xong rồi, bạn cần phải thêm ssh key thì Gitlab mới cho bạn upload files lên hệ thống. Để làm được điều đó phiền bạn xem bài viết rất cụ thể này. Generating a new SSH key pair

To create a new SSH key pair:
  1. Open a terminal on Linux or macOS, or Git Bash / WSL on Windows.
  2. Generate a new ED25519 SSH key pair:
  3. ssh-keygen -t ed25519 -C [email protected]
  4. or ssh-keygen -t rsa -b 4096 -C "[email protected]"

Adding an SSH key to your GitLab account

Window: cat ~/.ssh/id_ed25519.pub | clip
Done, tiếp theo là upload file lên nào
Thế là xong phần Gitlab rồi nhé.
Mình sẽ update sau…

Làm việc cơ bản với Git

Ba trạng thái trong Git

1. Working directory
2. Staging Area
3. Git Repository

Working Directory

Hiểu là một bản sao phiên bản của dự án, nơi mà bạn đang thao tác các thay đổi với dữ liệu tại local. Tại đây mình sẽ có các file data, nếu có thay đổi gì thì nó sẽ ở trạng thái “Modified”
Trường hợp muốn bỏ đi các thay đổi trong 1 file nào đó, chuyển từ modify -> unmodify chúng ta dùng lệnh checkout:

$ git checkout — <filename/pathfile>
vd: git checkout — output.json

Staging area (Index):

Đây là vùng chứa thông tin về những gì sẽ được commit trong lần commit sắp tới. Để đưa các file “Modified” vào vùng này thì ta phải “staged” bằng lệnh:

#Stage các file xác định
$ git add <filename/path file>
vd: git add README.md

#Stage tất cả các file thay đổi/thêm mới hiện có:
$ git add .

#Stage tất cả các file thay đổi/thêm/xóa hiện có:
$ git add -A

——————–
Các lệnh thao tác

Tạo một git repository:
$git init

Sao chép repository đã tồn tại:
$git clone url

Tạo mới một commit
$git commit -m “Nội dung commit”

Lưu lại thay đổi nhưng đè lên commit trước đó
$git commit –amend -m “Nội dung mới nếu có thay đổi”

Xem lại danh sách commit đã tạo
$git log –oneline
$git log –oneline -n (n là số dòng)

Kiểm tra trạng thái của file
$git add <filename>

Xem thay đổi giữa working với stage
$git diff

Xem thay đổi giữa working với HEAD
$git diff HEAD

Xem thay đổi giữa stage với HEAD
$git dif –staged

3. Branch

Một nhánh trong Git là một con trỏ (index) có khả năng di chuyển được, trỏ đến một trong những commit. Khi git init thì chúng ta sẽ có branch master – nhánh chính của git, thông thường chúng ta sẽ thực hiện gộp các thay đổi trong quá trình phát triển vào branch master, và dùng nó để tổ chức thành các version cho production. 

Một số lệnh thông dụng:

Tạo mới branch:
$ git branch <branch_name>

vd: git branch testing
Để chuyển sang một nhánh đang tồn tại:
$ git checkout <branch_name>

vd: git checkout master
Để tạo một nhánh và chuyển sang nhánh đó đồng thời:
$ git checkout -b <branch_name>

vd: git checkout -b iss53
Xóa một nhánh:
$ git branch -d <branch_name>

vd: git branch -d iss53
Để tạo một nhánh và chuyển sang nhánh đó đồng thời:
$ git checkout -b <branch_name>

vd: git checkout -b iss53
Xóa một nhánh:
$ git branch -d <branch_name>

vd: git branch -d iss53

4. Remote

Mỗi tham chiếu đến server repository được gọi là một remote Mỗi remote sẽ có các thông tin:
  • Tên remote: Không được trùng lặp trong cùng một .Git repository
  • URL: đường link của server repository (cung cấp 2 giao thức http hoặc ssh)  Một số lệnh thông dụng: Thêm một remote:
$ git remote add <remote_name> <url>
vd: git remote add sun-asterisk https://github.com/schacon/grit.git
Xem danh sách remote:
$ git remote -v
Thay đổi url của remote:
$ git remote set-url <remote_name> <remote_url>

vd: git remote set-url sun-asterisk https://github.com/framgia/git_lecture.git
Thay đổi tên của remote:
$ git remote rename <old_name> <new_name>

vd: git remote rename sun-asterisk framgia
Xóa một remote:
$ git remote remove <remote_name>

vd: git remote remove framgia

Một số tip sử dụng để giải quyết 1 số vấn đề của bạn

1. Gộp nhiều commit thành một commit

$ git rebase -i HEAD~<số lượng commit>

# Ví dụ) git rebase -i HEAD~3

# (trước khi sửa) các commit cũ từ trên xuống dưới
pick aa11bbc commit message 1
pick b2c3c4d commit message 2
pick 4e56fgh commit message 3
・・・

# (sau khi sửa) các commit trước là f sẽ bị xóa bỏ, chỉ giữ lại commit trước đó
pick aa11bbc commit message 1
f b2c3c4d commit message 2
f 4e56fgh commit message 3
・・・

2. Ignore một số file commit thừa

# Đầu tiên là xoá các file đã commit khỏi repository
$ git rm --cached <tên file>

# Sau đó là thêm vào gitignore
$ echo <đường dẫn tên file> >> .gitignore

# Ví dụ:
$ git rm --cached config/database.yml
$ echo config/database.yml >> .gitignore

3. Commit nhầm sang một branch khác

# Đầu tiên là tạo một branch khác chứa trạng thái mà ta đã commit
$ git branch <other branch>

# Đưa HEAD, index của master về 1 commit trước đó
$ git reset --hard HEAD~
#Hoặc đưa index của branch về commit cụ thể dựa vào ID commit (có thể xem log để biết được ID)
$ git reset --hard <ID commit>

# Check out sang branch có commit trước đó
$ git checkout <other branch>

4. Lỡ tay commit và muốn xóa commit

# 1. Chỉ đưa HEAD về như cũ
$ git reset --soft HEAD~

# 2. Đưa HEAD và index về như cũ
$ git reset HEAD~

# 3. Đưa cả index, working tree về 1 commit trước đó
$ git reset --hard HEAD~

# 4. Xóa luôn commit, về lại trước đó
$ git revert <commit>

5. Đang làm dở dang và chuyển branch khác

# Tạm thời lưu lại các phần công việc còn đang làm dở
$ git stash
Hoặc
$ git stash -u

# Chuyển sang một branch khác và làm việc
$ git checkout -b <other branch>
~làm gì đó mà các bạn muốn ở nhánh này~
$ git add <các file cần thiết>
$ git commit -m <Nội dung commit>

# Trở về branch cũ
$ git checkout <branch name>

# Lấy lại các nội dung công việc đang làm dở trước đó
$ git stash pop
#Trường hợp stash nhiều lần thì kiểm tra log stash rồi lấy ra stash mong muốn theo id:
$ git stash list
$ git stash pop <stash ID>

6. Lỡ xóa mất commit quan trọng

# Đầu tiên là xem lại toàn bộ lịch sử commit
$ git reflog
# Từ đó chọn commit muốn phục hồi và khôi phục lại
$ git reset --hard <commit>

7. Lỡ xóa mất branch

# Đầu tiên là xem lại toàn bộ lịch sử commit
$ git reflog

# Từ các commit này, chọn rồi tạo branch mới
$ git branch <tên branch> <commit ID>
# ví dụ)git branch new-branch abc123f

8. Đã merge nhưng muốn trở lại như trước

# tiến hành merge
$ git checkout <tên branch nguồn>
$ git merge <tên branch muốn merge>

# Sau khi merge, nhưng lại muốn trở lại như trước thì làm như sau
$ git reset --hard ORIG_HEAD
Trên đó là những gì mình tổng hợp và chia sẻ, hi vọng hữu ích với các bạn đọc! Bài viết chưa hoàn thiện và còn nhiều thiếu xót, hi vọng các bạn sẽ góp ý để cải thiện bài viết tốt hơn 😀

Nguồn tham khảo

Latest news

Áp dụng Quy tắc 70:20:10 trong học tập

Lúc trước mình biết đến quy tắc này là dùng để áp dụng trong mô hình học tập. Ngoài...

Xã tress sau giờ làm việc như thế nào?

Kienoi.com - Sau đợt dịch Covid-19 đầu tiên, đợt dịch Covid-19 thứ 2 ập đến khiến cuộc sống của...

Câu chuyện 100 – 1 = 0

#Kienoi - Mấy nay thấy mọi người chia sẽ câu chuyện này, bản thân đọc đi đọc lại rất nhiều...

Tại sao phải làm website? Dành cho ai chưa biết

Kienoi.com - Một câu chuyện muôn thuở đó là doanh nghiệp muốn phát triển online, chạy quảng cáo, đầu...
- Advertisement -

4 Bước xây dựng page siêu nhanh – tránh lãng phí trong mùa covid

Facebook cá nhân thì hạn chế bán hàng, hạn chế tương tác cộng với xét duyệt nghiêm ngặt trong...

Thương hiệu là gì?

Theo thống kê từ cổng thông tin quốc gia về Đăng ký doanh nghiệp cho thấy mỗi tháng có...

Must read

- Advertisement -

You might also likeRELATED
Recommended to you