2012-03-13 27 views
19

Tôi có một máy chủ có một số cấu hình mà tôi không biết chính xác nơi tôi chỉ git kéo và nó được những gì trong repo github, sau đó khởi động lại nó để triển khai.Git kéo không kéo tất cả mọi thứ

Vấn đề là, có một cam kết không phải là mới nhất của tôi, điều đó không thực sự trên máy chủ của tôi. Các tệp không có trong .gitignore. Làm thế nào để đảm bảo rằng một kéo, kéo một cam kết?

tôi thực sự không biết làm thế nào để sửa chữa nó, tôi đang suy nghĩ về khởi động lại tất cả mọi thứ :(

14:41][[email protected]] someserver_dir (master)$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: Gemfile 
# modified: Gemfile.lock 
# modified: config/assets.yml 
# modified: config/database.yml 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# randomfiles 
+0

thông tin thêm sẽ làm cho nó dễ dàng hơn để trả lời. câu hỏi của bạn là gì. bạn? Bạn đang ở trên nhánh phải không? Ví dụ, nếu bạn đang nhìn vào nhánh 'master' trên máy chủ, bạn có kiểm tra ra' master' cục bộ không? Làm thế nào về 'git log origin/master..master'? –

+0

Kho lưu trữ git có công khai không? Nếu có, hãy cung cấp một URL. –

+0

không công khai, trạng thái git cho tôi thấy mọi thứ đều thú vị, chỉ có một chi nhánh. – thiagofm

Trả lời

51

Nếu bạn luôn muốn phiên bản máy chủ của bạn để phản ánh một cam kết từ repo của bạn, nó có thể là tốt hơn để sử dụng git reset thay vì git pull - cách mà bạn không bao giờ gọi lệnh merge, nhưng thay vì đặt tất cả các tập tin vào chính xác những gì họ đang có trong cam kết bạn thiết lập lại Ví dụ:

git fetch origin master 
git reset --hard FETCH_HEAD 
+4

Tôi luôn quên lệnh này, vì vậy tôi tiếp tục quay lại chủ đề này. Chỉ muốn thêm rằng thay đổi 'chủ' cho bất kỳ tên chi nhánh nào khác cũng hoạt động, nếu bạn muốn tìm nạp mọi thứ từ một nhánh cụ thể. – mdegges

+0

bạn cũng có thể đặt lại thành một chi nhánh cụ thể, do đó, git reset - nguồn gốc/chủ cũng hoạt động, như bất kỳ chi nhánh nào bạn chỉ định. (khá buồn cười khi thấy mình hỏi câu hỏi này 5 năm trước, tôi nhớ mình đã quản lý một số máy chủ từ xa dùng git để triển khai và kết thúc ở trạng thái xấu .. haha) – thiagofm

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