Cách đẩy các thay đổi cục bộ vào kho lưu trữ git từ xa trên bitbucket


81

Tôi đang thử nghiệm Git và Bitbucket.

Tôi đã tạo một kho lưu trữ trên Bitbucket và đã tạo một bản sao cục bộ của kho và tôi đang gửi các tệp vào đó. Tôi dường như không thể đẩy các tệp từ kho lưu trữ cục bộ của mình sang kho lưu trữ từ xa.

Đây là những gì tôi đang làm:

git clone https://me@bitbucket.org/me/test.git
cd test
touch dummy
git add dummy
git commit dummy -m "my first git commit"
git push

Dòng cuối cùng xuất ra:

Everything up-to-date

Và khi tôi đăng nhập vào Bitbucket, tôi không thể thấy tệp giả của mình.

Tôi đang làm gì sai?

BIÊN TẬP:

Làm điều này đã hiệu quả:

 git push origin master:master

Bất kỳ giải thích nào về sự khác biệt giữa điều này và đơn giản git push?


Bất kỳ ai mới sử dụng git nhìn thấy câu hỏi này, vui lòng xem stackoverflow.com/questions/5713563/…
JGallardo

Câu trả lời:


102

Sử dụng git push origin masterthay thế.

Bạn có một kho lưu trữ cục bộ và ban đầu git pushđang "đẩy" đến nó. Không cần thiết phải làm như vậy (vì nó cục bộ) và nó hiển thị mọi thứ là cập nhật. git push origin masterchỉ định aa kho lưu trữ từ xa ( origin) và chi nhánh nằm ở đó (master ).

Để biết thêm thông tin, hãy xem tài nguyên này .


2
Tôi cũng nên đề cập rằng khi bạn sao chép nội dung nào đó, originkho lưu trữ được xác định tự động.
Chuck Callebs

15

Đây là một biện pháp an toàn để tránh đẩy những nhánh chưa sẵn sàng xuất bản. Nói một cách dễ hiểu, bằng cách thực hiện "git push", chỉ các nhánh cục bộ đã tồn tại trên máy chủ có cùng tên mới được đẩy hoặc các nhánh đã được đẩy bằng cú pháp localbranch: remotebranch.

Để đẩy tất cả các nhánh cục bộ vào kho lưu trữ từ xa, hãy sử dụng --all:

git push REMOTENAME --all
git push --all

hoặc chỉ định tất cả các nhánh bạn muốn đẩy:

git push REMOTENAME master exp-branch-a anotherbranch bugfix

Ngoài ra, rất hữu ích khi thêm -uvào lệnh "git push", vì điều này sẽ cho bạn biết chi nhánh cục bộ của bạn ở phía trước hay phía sau chi nhánh từ xa. Điều này được hiển thị khi bạn chạy "trạng thái git" sau khi tìm nạp git.


8

Tôi đang tải xuống Git từ https://git-scm.com/thiết lập ssh theo dõi câu trả lời để biết hướng dẫn https://stackoverflow.com/a/26130250/4058484 .

Sau khi khóa công khai đã tạo được xác minh trong tài khoản Bitbucket của tôi và bằng cách tham khảo các bước như được giải thích trên http://www.bohyunkim.net/blog/archives/2518, tôi thấy rằng chỉ 'git push' đang hoạt động:

git clone https://me@bitbucket.org/me/test.git
cd test
cp -R ../dummy/* .
git add .
git pull origin master 
git commit . -m "my first git commit" 
git config --global push.default simple
git push

Shell phản hồi như sau:

$ git push
Counting objects: 39, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (39/39), done.
Writing objects: 100% (39/39), 2.23 MiB | 5.00 KiB/s, done.
Total 39 (delta 1), reused 0 (delta 0)
To https://me@bitbucket.org/me/test.git 992b294..93835ca  master -> master

Nó thậm chí còn hoạt động để đẩy hợp nhất trang chính vào các trang gh trong GitHub

git checkout gh-pages
git merge master
git push

0

Có nghĩa là tham số thứ 2 (' master') của git pushlệnh "" -

$ git push origin master

có thể được làm rõ ràng bằng cách khởi tạo pushlệnh "" từ news-itemnhánh ''. Nó khiến masternhánh cục bộ " " được đẩy sang nhánh "" từ xa master. Để biết thêm thông tin tham khảo

https://git-scm.com/docs/git-push

nơi <refspec>

[<repository> [<refspec>…​]

được viết có nghĩa là " specify what destination ref to update with what source object."

Để bạn tham khảo, đây là ảnh chụp màn hình cách tôi xác minh tuyên bố này.

<code> nhập mô tả hình ảnh tại đây </code>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.