Thuật ngữ push đề cập đến việc tải nội dung kho lưu trữ cục bộ lên một kho lưu trữ từ xa. push là một hành động chuyển các commit từ kho lưu trữ cục bộ của bạn đến một kho lưu trữ từ xa. Push có khả năng ghi đè các thay đổi; cần thận trọng khi push.
Hơn nữa, chúng ta có thể nói rằng push cập nhật refs từ xa với refs cục bộ. Mỗi khi bạn push vào kho lưu trữ, nó sẽ được cập nhật với một số thay đổi thú vị mà bạn đã thực hiện. Nếu chúng ta không chỉ định vị trí của một kho lưu trữ, thì nó sẽ push đến vị trí mặc định tại gốc(origin).
Lệnh “git push” được sử dụng để push vào kho lưu trữ. Lệnh push có thể được coi là một công cụ để chuyển các commit giữa các kho lưu trữ cục bộ và từ xa. Cú pháp cơ bản được đưa ra dưới đây:
git push <option> [<URL từ xa> <tên chi nhánh> <refspec> ...]
Lệnh push hỗ trợ nhiều tùy chọn bổ sung. Một số tùy chọn như sau dưới thẻ push.
Nội dung chính
1. Thẻ push
<repository>: Kho lưu trữ là đích của một hoạt động push. Nó có thể là một URL hoặc tên của một kho lưu trữ từ xa.
<refspec>: Nó chỉ định ref đích để cập nhật đối tượng nguồn.
–all: Từ “all” là viết tắt của tất cả các nhánh. Nó push tất cả các nhánh.
–prune: Nó loại bỏ các nhánh từ xa không có đối tác cục bộ. Có nghĩa là, nếu bạn có một nhánh từ xa nói bản demo, nếu nhánh này không tồn tại cục bộ, thì nó sẽ bị xóa.
–mirror: Nó được sử dụng để phản chiếu kho lưu trữ tới điều khiển từ xa. Các tham chiếu cục bộ được cập nhật hoặc mới được tạo sẽ được push đến đầu từ xa. Nó có thể được cập nhật trên đầu từ xa. Các ref đã xóa sẽ bị xóa khỏi đầu từ xa.
–dry-run: chạy kiểm tra các lệnh. Nó thực hiện tất cả điều này ngoại trừ cập nhật kho lưu trữ ban đầu.
–tags: Nó push tất cả các thẻ cục bộ.
–delete: Nó xóa nhánh được chỉ định.
-u: Nó tạo ra một kết nối theo dõi ngược dòng. Nó rất hữu ích nếu bạn định push nhánh lần đầu tiên.
2. Git Push Origin Master
Git push origin master là một tiện ích dòng lệnh đặc biệt chỉ định nhánh và thư mục từ xa. Khi bạn có nhiều nhánh và thư mục, thì lệnh này sẽ hỗ trợ bạn xác định nhánh và kho lưu trữ chính của bạn.
Nói chung, thuật ngữ origin là viết tắt của kho lưu trữ từ xa, và master được coi là nhánh chính. Vì vậy, toàn bộ câu lệnh ” git push origin master ” đã push nội dung cục bộ lên nhánh chính của vị trí từ xa.
Cú pháp:
git push origin master
Hãy cùng tìm hiểu câu lệnh này với một ví dụ.
Hãy tạo một commit mới cho kho lưu trữ hiện có của tôi, chẳng hạn như GitExample2 . Tôi đã thêm một hình ảnh vào kho lưu trữ cục bộ của mình có tên là abc.jpg và commit các thay đổi. Hãy xem xét hình ảnh dưới đây:
Trong đầu ra ở trên, tôi đã đính kèm một hình ảnh vào kho lưu trữ cục bộ của mình. Lệnh git status được sử dụng để kiểm tra trạng thái của kho lưu trữ. Lệnh git status sẽ được thực hiện như sau:
git status
Nó hiển thị trạng thái của hình ảnh chưa được theo dõi abc.jpg . Bây giờ, hãy thêm hình ảnh và commit các thay đổi như:
git add abc.jpg
git commit -m "added a new image to project."
Hình ảnh được theo dõi toàn bộ trong kho lưu trữ cục bộ. Bây giờ, chúng ta có thể push nó về gốc như:
git push origin master
Đầu ra:
Tệp abc.jpg đã được push thành công sang file gốc. Chúng tôi có thể theo dõi nó trên vị trí từ xa. Tôi đã push những thay đổi này vào tài khoản GitHub của mình. Tôi có thể theo dõi nó ở đó trong kho lưu trữ của tôi. Hãy xem xét hình ảnh dưới đây:
Trong đầu ra ở trên, tệp được push abc.jpg được tải lên trên kho lưu trữ nhánh chính của tài khoản GitHub của tôi.
3. Git Force Push
git force push cho phép bạn push kho lưu trữ cục bộ đến từ xa mà không cần giải quyết xung đột. Nó được sử dụng như sau:
git push <remote> <branch> -f
Hoặc là
git push <remote> <branch> -force
Phiên bản -f được sử dụng như một từ viết tắt của force. Điều khiển từ xa có thể là bất kỳ vị trí từ xa nào như GitHub, Subversion hoặc bất kỳ dịch vụ git nào khác và chi nhánh là một tên chi nhánh cụ thể. Ví dụ, chúng ta có thể sử dụng git push origin master -f.
Chúng ta cũng có thể bỏ qua nhánh trong lệnh này. Lệnh sẽ được thực hiện như sau:
git push <remote> -f
Chúng ta có thể bỏ qua cả điều khiển từ xa và chi nhánh. Khi điều khiển từ xa và chi nhánh đều bị bỏ qua, hành vi mặc định được xác định bằng thiết lập push.default của git config. Lệnh sẽ được thực hiện như sau:
git push -f
Cách để push An toàn:
Có một số hậu quả của việc ép một kho lưu trữ như nó có thể thay thế công việc bạn muốn giữ. Lực push với một tùy chọn –force-with-lease có khả năng làm cho không push nếu có commit mới kho từ xa mà bạn không mong đợi. Nếu chúng ta nói về git, thì chúng ta có thể nói nó sẽ làm cho nó không thành công nếu kho từ xa chứa commit không được kiểm soát. Nó có thể được thực thi như sau:
git push <remote><branch> --force-with-lease
4. Git push -v / – verbose
-V là viết tắt của chi tiết. Nó chạy lệnh chi tiết. Nó đã push kho lưu trữ và đưa ra lời giải thích chi tiết về các đối tượng. Giả sử chúng ta đã thêm một newfile2.txt vào kho lưu trữ cục bộ của mình và commit nó. Bây giờ, khi chúng ta push nó trên điều khiển từ xa, nó sẽ cung cấp nhiều mô tả hơn so với push git mặc định. Cú pháp push chi tiết được đưa ra dưới đây:
Cú pháp:
git push -v
Hoặc là
git push --verbose
Hãy xem xét đầu ra dưới đây:
Nếu chúng ta so sánh đầu ra ở trên với tùy chọn git mặc định, chúng ta có thể thấy rằng git verbose cung cấp đầu ra mô tả.
5. Xóa nhánh từ xa
Chúng ta có thể xóa một nhánh từ xa bằng git push. Nó cho phép loại bỏ một nhánh từ xa khỏi dòng lệnh. Để xóa một nhánh từ xa, hãy thực hiện lệnh dưới đây:
Cú pháp:
git push origin -delete edited
Đầu ra:
Trong đầu ra ở trên, lệnh git push origin được sử dụng với tùy chọn -delete để xóa một nhánh từ xa. Tôi đã xóa nhánh edited từ xa khỏi kho lưu trữ. Hãy xem xét hình ảnh dưới đây:
Đó là danh sách các nhánh đang hoạt động của kho lưu trữ từ xa của tôi trước lệnh điều hành.
Hình trên hiển thị danh sách các nhánh đang hoạt động sau khi xóa lệnh. Tại đây, bạn có thể thấy rằng nhánh edited đã bị xóa khỏi kho.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Tài liệu từ cafedev:
- Full series tự học Git từ cơ bản tới nâng cao tại đây nha.
- Ebook về Git tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!