Vì vậy, đây là tình hình:'chỉ trạng thái git' của repo chỉ cho biết chi nhánh ở phía trước nguồn gốc/chủ. Tại sao?
tình trạng $ git
# Mở thạc sĩ ngành
# chi nhánh của bạn chạy nhanh của 'nguồn gốc/master' bởi [x] cam kết.
#
Có một số câu hỏi về vấn đề này trên SO đã có, nhưng không ai có vẻ quyết cụ thể các loại kịch bản tôi có. This answer cho một trong những câu hỏi đến gần nhất, nhưng không đi vào chi tiết.
tôi sẽ chỉ trích nó đúng nguyên văn:
Nếu bạn nhận được thông báo này sau khi làm một "git pull chi nhánh từ xa", hãy thử sau nó lên với một "git fetch".
Tìm nạp có vẻ như cập nhật đại diện cục bộ của nhánh từ xa, điều này không nhất thiết xảy ra khi bạn thực hiện "git pull remote branch".
Mẹo đó thực sự hiệu quả. Nhưng "không nhất thiết phải xảy ra?" Tại sao không? Tôi cần hiểu điều này. Kéo không làm gì?
Tôi không muốn tiếp quản câu hỏi đó, vì vậy, đây là kịch bản của tôi cụ thể:
Ba máy tính có liên quan. Máy Mac mà trên đó tôi phát triển, máy chủ gia đình của tôi, nơi có cuộc gọi git repo (tức là nguồn gốc/chủ) và một tài khoản Webfaction lấy từ máy chủ đó.
Tôi thực hiện cam kết và git push origin master
chỉ trên máy Mac. Lệnh duy nhất được chạy trên Webfaction như là một phần của quy trình làm việc bình thường là git pull origin master
(như một phần của tập lệnh triển khai Vải). Tôi không sửa đổi mã ở đó. Tôi là một nhà phát triển duy nhất, vì vậy không ai khác.
Từng giờ tôi đăng nhập vào Webfaction và kiểm tra mọi thứ, bao gồm git status
. Chắc chắn, tôi luôn nhận được thông báo "Chi nhánh của bạn đang ở phía trước ...". Chạy git fetch
làm cho tin nhắn biến mất.
Tôi sắp thêm git fetch
vào tập lệnh Fabric được thực hiện với vấn đề này, nhưng tôi muốn biết lý do tại sao cần phải thực hiện, đặc biệt là trên bản sao chỉ xuất xứ/bản gốc. Tôi không sâu sắc trong Git mặc dù tôi sử dụng các chức năng cơ bản hàng ngày, do đó, một lời giải thích thân thiện với người mới sẽ được đánh giá cao.
Cập nhật theo yêu cầu, các bit có liên quan từ config
:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected][server_address]:[path/to/repo.git]
[branch "master"]
remote = origin
merge = refs/heads/master
Bạn có thể đăng phần "nguồn gốc" của cấu hình git từ máy chủ Webfaction trong câu hỏi không? Tôi có cảm giác nó có thể liên quan đến nó. – Nic
Lưu ý rằng tôi chưa sửa đổi tệp cấu hình đó theo bất kỳ cách nào. Nó được tạo ra với một tiêu chuẩn 'git clone' từ repo gốc. –