2011-01-30 47 views
8
git version 1.7.3.5 

tôi có các chi nhánh sau:cập nhật chi nhánh sử dụng git pull

git branch 
    image 
    master 
* video 

tôi đã làm một số công việc tại văn phòng. Và khi tôi về nhà tôi luôn luôn cập nhật trên sổ tay của nhà tôi.

Tuy nhiên, khi tôi đã làm một git remote show origin tôi nhận được như sau:

Local refs configured for 'git push': 
    image pushes to image (up to date) 
    master pushes to master (fast-forwardable) 
    video pushes to video (local out of date) 

Vì vậy, tôi đã làm một git pull cho tất cả các ngành:

git pull origin image 
git pull origin master 
git pull origin video 

Khi tôi làm một status git trên chi nhánh video và hình ảnh tôi nhận được:

nothing to commit (working directory clean) 

Khi tôi thực hiện trạng thái git trên nhánh chính tôi nhận được:

Your branch is ahead of 'origin/master' by 5 commits. 

Tôi không hiểu những điều sau đây (fast-forwardable)(local out of date)?

Nhưng trong trạng thái git cho video, video đó đã cập nhật trạng thái của nó?

Tôi có cần đẩy tổng thể của mình nếu nó vượt lên trước 5 lần commit không?

Rất cám ơn cho bất cứ đề nghị

+2

chạy 'git log --stat --pretty = format:'% Cred% h% Creset -% s% Cgreen (% cr)% Creset '--abbrev-commit --date = nguồn gốc tương đối/master..master' để có ấn tượng về sự khác biệt. '(fast-forwardable)' có nghĩa là nó an toàn để đẩy: các nhánh có cùng cam kết ngoại trừ một nhánh ('local' trong các trường hợp của bạn) có thêm một số commit ở trên cùng. – jfs

Trả lời

14

git remote show origin so sánh kho địa phương của bạn với điều khiển từ xa:

  • fast-forwardable có nghĩa là bạn có thể đẩy những thay đổi địa phương để các chi nhánh từ xa.
  • local out of date có nghĩa là chi nhánh địa phương của bạn ở phía sau chi nhánh từ xa và bạn nên lấy từ đó.

git status so sánh thư mục làm việc cục bộ của bạn với cam kết hiện tại của chi nhánh hiện tại (aka HEAD). Thêm vào đó nó so sánh chi nhánh địa phương của bạn với (cục bộ) theo dõi bản sao của chi nhánh từ xa (origin/master), vì thế mà Your branch is ahead of 'origin/master' by 5 commits.

Để giải quyết sự phân kỳ giữa git status (mà chỉ hiển thị dữ liệu địa phương) và git remote show origin (trong đó cho thấy "sống" dữ liệu từ xa), bạn nên chạy git remote update origin sẽ cập nhật các chi nhánh theo dõi địa phương của bạn. Nó sẽ cập nhật địa phương của bạn origin/master đến trạng thái của điều khiển từ xa master. Sau đó git status sẽ cung cấp cho bạn một cái gì đó như Your branch is behind 'origin/master' by X commits, and can be fast-forwarded.

+0

Nếu tôi nhận được 'Chi nhánh của bạn ở phía sau 'nguồn gốc/chủ' bởi X cam kết, và có thể được chuyển tiếp nhanh.' thì phải làm gì? Cảm ơn trước. – MikeSchinkel

+1

Sử dụng 'git pull origin master' để nhận địa chỉ' master 'cục bộ của bạn được cập nhật. – Koraktor

+0

Cảm ơn bạn đã trả lời! – MikeSchinkel

Các vấn đề liên quan