Tổng hợp các câu lệnh git hữu dụng
Hiện nay, việc sử dụng git để quản lý source code của dự án là điều không thể thiếu.
Dưới đây, là 1 số lệnh về git mà tôi thường dùng nhất.
Git config
git config --global user.name "nghialuutrung"
git config --global user.email "nghialuu@gmail.com"
Set up tên hiển thị trên pull --global
được sử dụng để áp dụng cho tất cả các projects. Nếu bạn ko sử dụng --global
thì settings sẽ chỉ dùng cho riêng project đó.
Git init
Khởi tạo Git repo cho code có sẵn
cd project/
git init
Clone một remote repo
git clone https://github.com/user/repository.git
Update và merge branch hiện tại với một remote repo
git pull origin master
với origin
là remote repo, master
là remote branch.
Nếu bạn không muốn merge những thay đổi của bạn, hãy sử dụng git fetch
Liệt kê các remote urls
git remote -v
Thay đổi origin url
git remote set-url origin https://github.com/repo.git
Kiểm tra status của worktree
git status
Câu lệnh với commit
tạo một vài thay đổi file trong thư mục project,
sau đó add file cần commit
git add /đường dẫn đến file được thay đổi/
git commit -m "Changed file"
Xoá các thay đổi file(không muốn sử dụng) khi chưa commit những thay đổi đó
git stash
Đổi message của commit cuối
git commit --amend -m "New commit mesage"
Check log
Check các commit history
git log --oneline
các commit được hiển thị 1 dòng với tên commit và commit ID
hoặc để xem chi tiết hơn ta dùng
git log
ở đây thông tin sẽ hiển thị đầy đủ hơn với mã băm SHA-1, message của commit, tên tác giả, thời gian.
Di chuyển HEAD đến commit
nếu muốn sử dụng di chuyển HEAD hiện tại của wroktree tới commit nào để sử dụng code:
git checkout 91651ef
với 91651ef
là commit ID lấy ở trong khi check git log --oneline
Undo commit
Undo commit, vẫn giữ thay đổi ở local
git reset --soft HEAD~1
Undo commit, không giữ thay đổi ở local
git reset --hard HEAD~1
Push local commits sang nhánh remote
git push origin master
Gộp 2 hoặc nhiều commit vào commit cũ hơn của branch
git rebase -i HEAD~2
ở đây HEAD~2
là gộp thằng commit gần nhất vào thằng commit cũ hơn nó trong branch
Git Conflict
Khi làm việc nhóm, pull, push, merge code, sẽ có trường hợp hai người cùng chỉnh sửa một file, một dòng code, khi đồng bộ sẽ xảy ra conflict
.
Khi bạn làm việc với nhiều branch
, di chuyển giữa các branch
, commit
, sửa chung một dòng code, cũng sẽ xảy ra conflict
.
Cách giải quyết:
-
cập nhật code mới nhất ở branch chính của repo (ví dụ: master)
git pull origin master
-
Trong file bị conflict thì git gom hết nội dung của hai
branch
lại và chỉ rõ cho ta là bịconflict
ở dòng nào, dòng nào thuộcbranch
nào. Ở trên HEAD tức là cái commit cuối cùng của branch mà mình đang đứng. -
Công việc của mình bây giờ là chỉnh sửa file này lại theo ý mình muốn, mình giữ lại thay đổi của cả branch nào, xoá cái nào đi.
-
cuối cùng là commit và push lên bình thường.