Có 2 loại kho git, trần và không trần. Kho lưu trữ không trống là bất kỳ kho lưu trữ nào có 'bản sao làm việc' tức là một số phần của kho lưu trữ hiện đã được kiểm tra.
Bạn có thể đẩy vào kho không trống, nhưng nó sẽ không cập nhật bản sao làm việc đã kiểm tra ngay cả khi nhánh đã kiểm tra giống với nhánh bạn đã đẩy. Điều này là do bản sao được kiểm tra có thể có các thay đổi không được cam kết và git sẽ không bao giờ hủy các thay đổi mà bạn không yêu cầu một cách rõ ràng (thường các lệnh như vậy có đối số --hard)
Đọc Why won't I see changes in the remote repo after "git push"? và How would I use "git push" to sync out of a firewalled host? cho đầy đủ mô tả vấn đề và giải pháp tiềm năng. Lời cảnh báo, nếu bạn đã đẩy vào một repo từ xa, bất kỳ thay đổi không cam kết trong repo từ xa đó sẽ phải được loại bỏ.
Thông thường, âm thanh giống như cách tiếp cận bạn muốn không thực sự được chấp nhận bởi gitters, bởi vì nó không thực sự phù hợp với tâm lý kho lưu trữ được phân phối. Đó là trách nhiệm của riêng bạn để đảm bảo bản sao của repo được cập nhật.
Gareth, Cảm ơn lời giải thích này. Là giải pháp kinh điển mà bạn cần một kho lưu trữ thứ ba mà không có một cây gắn liền với nó? Không phải là nhận được trở lại khái niệm svn của một kho lưu trữ trung tâm? –
Git được xây dựng nhiều hơn xung quanh kéo hơn đẩy. Nó chắc chắn có thể mô phỏng một hệ thống tập trung với Git, đó là những gì chúng tôi làm trong văn phòng của chúng tôi.Đối với chúng tôi, lợi ích của Git là dễ dàng phân nhánh, không phải là bản chất phi tập trung của kiểm soát nguồn – Gareth