Các câu lệnh git cực cần thiết cho developer

Các câu lệnh git cực cần thiết cho developer
5 (100%) 1 vote

Bạn có thể dùng nhiều tool để thao tác với git nhưng theo thói quen thì mình đang dùng command line là chủ yếu, mấy tool như git UI, TortoiseGit mình chỉ dùng để compare code khi conflict hay review code thôi. Bạn có thể dùng bất cứ cái nào mà thấy quen thuộc, và tuyệt vời nhất là biết kết hợp cả hai để mang lai hiệu quả cao nhất cho công việc của bạn.

Các câu lệnh git cơ bản và hay dùng

1. Thêm một file vào để chuẩn bị commit: git add đường_dẫn_đến_file
2. Hoặc thêm tất cả file vào để commit: git add .
3. Commit lên: git commit -m “comment”
4. Đẩy tất cả thay đổi lên repo: git push

Các câu lệnh git thao tác với nhánh

0. Lấy toàn bộ các nhánh trên repo về local:
git fetch –all
1. Xem tất cả branch đang có cả ở local và remote
Lệnh này không chỉ rõ nhánh nào ở local và nhánh nào ở remote: git branch

2. Xem tất cả branch đang có cả ở local và remote

Lệnh này chỉ rõ nhánh nào ở local và nhánh nào ở remote: git branch -a

3. Xem tất cả branch đang có cả ở remote: 
git branch -r
4. Tạo nhánh mới và checkout luôn sang nhánh mới đó: 
git checkout -b temp_improvement
5. Tạo nhánh mới và đứng im ở nhánh hiện tại:
git branch tên_nhánh
6. Đẩy nhánh mới lên repo:
git push origin tên_nhánh
7. Xoá nhánh ở local: 
git branch -d tên_nhánh
8. Xoá nhánh trên repo:
git push origin :<branch_name>

9. Reset nhánh 

Khi muốn reset toàn bộ source của nhánh về trạng thái lúc tạo nhánh (lúc copy source từ master hay nhánh bất kỳ, trường hợp này mình copy từ master)

10. thay đổi tên nhánh

Thay đổi tên nhánh từ feature-2 thành feature/feature-2 (mục đích việc thêm cái feature vào đằng trước nhằm gom các chức năng nhỏ thành 1 thư mục)

11. Khôi phục nhánh đã xoá

Thôi lỡ tay xoá mất nhánh trên remote thì làm thế nào? Yên tâm chưa mất hẳn đâu, có thể lấy lại được bằng cách tìm mã sha của thao tác xoá đó và tạo ra nhánh mới từ cái thao tác ấy.

git reflog chạy câu lệnh này để lấy mã sha cần khôi phục về

git checkout -b <tên_nhánh_sẽđược_tạo_mới_từ_nhánhđã_xoá> <mã_sha>

đây rồi từ đây cuộc đời sẽ nở hoa

Xem danh sách nhánh xem đã có nhánh mới vừa tạo chưa:

git branch a

Sau khi tạo ra nhánh mới nếu cần phải đẩy lên remote thì chạy câu lệnh:

git push -u origin <tên_nhánh>

12. Luôn luôn nghe ngóng và cập nhật source từ nhánh mẹ

Hãy dùng git rebase khi muốn lấy source mới nhất từ nhánh mà mình đã tách ra.

Cái này thì cực kỳ hữu ích rồi. Chú ý xem trên repo nó sửa những file nào rồi backup file của mình lại sau đó mới rebase không thì conflict vỡ mặt (thời gian backup mình cho là nhanh hơn ngồi resolve conflict). Khi rebase thành công xong thì copy ngược lại cái mà mình đã backup nếu cần thiết.

Cú pháp:

git rebase <nhánh_hiện_tại> <nhánh_mẹ>

HOẶC

git rebase <nhánh_mẹ>

Sau khi chạy câu lệnh trên thì cần phải đẩy những cái thay đổi lên trên kho hay gọi là remote với lệnh git push (Không cần add/commit vì mình đã thay đổi nội dung của nhánh mà)

Đây là ví dụ:

Nhìn thấy những msg này là thấy hạnh phúc rồi.

13. Giải quyết khi bị conflict

Khi làm việc nhóm chúng ta hay tạo nhiều nhành để phát triển các chức năng khác nhau và khi merge hay rebase lại với nhau thì thuường xuyên xảy ra conflict. Vậy để giải quyết thì chúng ta cần phải mở cái file mà nó báo là conflict ra và chọn đoạn code mà bạn muốn giữ, sau đó lại đẩy lên repo. Như vậy là xong.

Ví dụ cụ thể:

Ở đây ta pull source về thì xảy ra lỗi conflict như thế này:

file thứ nhất bị conflict:
Auto-merging /Controllers/NavigationController.m
CONFLICT (content): Merge conflict in /Controllers/NavigationController.m

file thứ hai bị conflict:
Auto-merging Controllers/Menu/Version/NewUpdate/NewVersionViewController.h
CONFLICT (add/add): Merge conflict in /Controllers/Menu/Version/NewUpdate/ZRNewVersionViewController.h

Giải quyết xong thì commit lên.
Automatic merge failed; fix conflicts and then commit the result.

B1: Mở 2 files trên ra và tìm đoạn có conflict, thường thì bắt đầu bằng >>>>>

B2: Xoá code hoặc giữ lại cả 2 đoạn code. Xong thì commit lên như bc 3.

B3: git add -> git commit như bình thường.

B4: Done

Cách sử dụng stash – khi lỗi chuyển nhánh

Mình gặp vấn đề khi chuyển qua lại giữa cách nhánh. Vấn đề đó là khi nhánh hiện tại có thay đổi thì chưa commit hay chưa stash thì nó không cho mình chuyển sang nhánh khác. Vậy giải quyết thế nào?

Trường hợp này chúng ta sử dụng stash (nghĩa giấu đi). Khi dùng cấu lệnh này nó sẽ cất tạm thời các đoạn code thay đổi vào 1 chỗ và cho ta chuyển qua lại thoải mái các nhánh khác. Khi trở lại chỉ việc lấy ra và làm tiếp.

Các câu lệnh cần thiết:

git stash  // Cất/giấu đi
git stash pop // khi trở lại nhánh thì pop lấy ra và code tiếp
git stash list  // Xem mình đã giấu gì
git stash clear // Xoá luôn cái đã giấu đi

Các câu lệnh git thao tác với file và commit

Revert 1 file bất kỳ khi chưa commit git checkout file_path

Khi gặp lỗi với SSL

SSL certificate problem: self signed certificate :
*File này còn được cập nhật thường xuyên

Các bài viết không xem thì tiếc:

Chia sẻ là sexy

Đô Trịnh

Một lập trình viên vui vẻ, hòa đồng, luôn sống tích cực và anh ấy quay tay khỏe và khéo trong môn bi lắc :) Xem thêm thông tin tại trang -> Giới thiệu

Bình luận qua khung của website

Bình luận lời hay ý đẹp!

Thảo luận

  Subscribe  
Nhận thông báo: