HocTotGit.io

Làm việc nhóm (Collaboration)
  • Thuật ngữ trong collaboration
  • Lý thuyết về remote repository
  • Cấu hình SSH
  • Sử dụng nhiều SSH keys cho nhiều tài khoản
  • Quiz
  • Git clone
  • Git push
  • Git fetch
  • Git pull
  • Quiz
  • Remote branches
  • Feature branch workflow
  • Fork repository và open source
  • Làm việc với nhiều remote repository
  • Quiz
  • Tại sao code review quan trọng?
  • Code review vs PRs vs Merge Request
  • Quiz
Liên kết
Blog
Hỗ trợ

Email: work.lamsun@gmail.com

Yêu thích nền tảng

Hãy chia sẻ ý kiến của bạn

HocTotGit.io

© 2026 HocTotGit.

Git push

1. Tổng quan

Lệnh git push là một trong cặp lệnh giúp chuyển giao nội dung giữa local repository và remote repository: trong khi git push đẩy các commit từ local repository lên remote, thì git fetch làm nhiệm vụ tải các commit về.

Khi bạn đẩy các thay đổi lên, Git sẽ cố gắng merge các commit vừa được đẩy vào lịch sử của remote repository bằng cách sử dụng fast-forward merge. Nếu không thể thực hiện fast-forward, Git sẽ hủy bỏ thao tác push. Trong trường hợp này, bạn cần phải fetch, merge các thay đổi từ remote về và giải quyết conflict trước khi thực hiện push lại lần nữa.


2. Cách sử dụng

2.1. Lệnh Push

git push <tên-remote> <tên-branch>

Ví dụ:

git push origin main

Mặc định: Nếu bạn không chỉ định tên remote repository, Git sẽ tự động hiểu là bạn muốn push lên origin. Nếu bạn không chỉ định tên branch, Git sẽ mặc định chọn branch mà bạn đang đứng.

2.2. Những lưu ý khi Push

Git có các cơ chế an toàn tích hợp sẵn để ngăn chặn việc các thành viên trong nhóm ghi đè lên công việc của nhau. Nếu một thao tác push dẫn đến việc lịch sử trên remote repository bị phân nhánh (tức là không thể fast-forward merge), Git sẽ từ chối lệnh push đó.

Khi điều này xảy ra, Git sẽ hiện thông báo lỗi như sau:

error: failed to push some refs to 'https://github.com/username/repository.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Để giải quyết cảnh báo này, bạn cần fetch và merge các thay đổi từ remote (nguyên nhân gây ra xung đột), sau đó mới push lại.

Force Push: Thỉnh thoảng, chúng ta cần phải ghi đè lên cơ chế an toàn này. Trong tình huống mà bạn thực sự muốn ghi đè lịch sử trên remote repository, hãy sử dụng cờ --force để thực hiện push kể cả khi không thể fast-forward.

git push --force <tên-remote> <tên-branch>

Ví dụ:

git push --force origin main
Cảnh báo:

Hãy cực kỳ cẩn thận với --force vì nó có thể xóa mất công việc của các thành viên khác trong nhóm nếu bạn không chắc chắn mình đang làm gì.


Tiếp theo hãy tìm hiểu cách tải các thay đổi từ remote về.

Tiếp theo: Git fetch