2011-10-07 36 views
68

Tôi đang thử nghiệm Git và Bitbucket.Cách đẩy các thay đổi cục bộ vào kho lưu trữ git từ xa trên bitbucket

Tôi đã tạo một kho lưu trữ trên Bitbucket và đã tạo bản sao cục bộ của repo và đang cam kết tệp vào đó. Tôi không thể có vẻ để đẩy các tập tin từ repo địa phương của tôi để repo từ xa.

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

git clone https://[email protected]/me/test.git 
cd test 
touch dummy 
git add dummy 
git commit dummy -m "my first git commit" 
git push 

dòng đầu ra cuối cùng:

Everything up-to-date 

và khi tôi đăng nhập vào Bitbucket Tôi cann't thấy tập tin dummy tôi.

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

EDIT:

Việc làm này làm việc:

git push origin master:master 

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

+0

Bất kỳ ai mới tìm thấy câu hỏi này, vui lòng xem http://stackoverflow.com/questions/5713563/reasons-for-not-working-on-the-master-branch-in-git – JGallardo

Trả lời

85

Sử dụng git push origin master để thay thế.

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

Để biết thêm thông tin, hãy xem this resource.

+0

Cảm ơn bạn đã giải trình. – Joel

+2

Tôi cũng nên đề cập rằng khi bạn sao chép một cái gì đó, kho lưu trữ 'origin' được định nghĩa tự động. –

+0

OK, cảm ơn. Đang cố gắng thoát ra khỏi tư duy svn. – Joel

14

Đây là biện pháp an toàn để tránh đẩy các chi nhánh chưa sẵn sàng để được xuất bản. Nói một cách lỏng lẻo, 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 sẽ bị đẩy, hoặc các nhánh đã được đẩy bằng cách sử dụng cú pháp localbranch: remotebranch.

Để đẩy tất cả các chi nhánh địa phương để các kho lưu trữ từ xa, sử dụng --all:

git push REMOTENAME --all 
git push --all 

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

git push REMOTENAME master exp-branch-a anotherbranch bugfix 

Bên cạnh đó, nó rất hữu ích để thêm -u đến "git push" lệnh, vì điều này sẽ cho bạn biết nếu chi nhánh địa phương của bạn là phía trước hoặc 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 với Git tải về từ https://git-scm.com/set up ssh theo để câu trả lời để được hướng dẫn https://stackoverflow.com/a/26130250/4058484.

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ư explaned trên http://www.bohyunkim.net/blog/archives/2518 tôi thấy rằng chỉ 'git push' đang làm việc:

git clone https://[email protected]/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 đáp ứng 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://[email protected]/me/test.git 992b294..93835ca master -> master 

Nó thậm chí làm việc cho để đẩy sáp nhập master to gh-pages trong GitHub

git checkout gh-pages 
git merge master 
git push 
Các vấn đề liên quan