2010-05-25 32 views
10

Nơi làm việc của tôi sử dụng Subversion để kiểm soát nguồn vì vậy tôi đã chơi xung quanh với git-svn vì lợi thế của các chi nhánh của riêng tôi, cam kết thường xuyên như tôi muốn mà không cần chạm vào repo chính, v.v.Git buộc hoàn toàn đồng bộ để làm chủ

Kể từ khi thanh toán git svn của tôi là cục bộ, tôi đã sao chép nó vào một mạng chia sẻ cũng như hoạt động như một bản sao lưu. Suy nghĩ của tôi là nếu máy tính để bàn của tôi có một bãi chứa tôi sẽ ít nhất có repo trên mạng chia sẻ để có được những thay đổi mà tôi đã không có cơ hội để dcommit được nêu ra.

Luồng công việc của tôi là làm việc từ màn hình, thực hiện thay đổi, cam kết, v.v. Vào cuối ngày, tôi muốn cập nhật repo trên mạng chia sẻ với tất cả các thay đổi hiện tại của tôi. Tôi đã thiết lập repo trên mạng chia sẻ bằng cách sử dụng git clone repo_on_my_desktop và sau đó cập nhật repo trên mạng chia sẻ với git pull origin master. Các vấn đề mà tôi đang chạy vào là khi tôi sử dụng làm một git rebase để squish nhiều cam kết trước khi dcommitting vào kho svn chính. Khi tôi làm điều này, tôi nhận được xung đột hợp nhất trên repo trên mạng chia sẻ khi tôi cố gắng sao lưu vào ban đêm.

Có cách nào để đồng bộ hóa hoàn toàn với kho lưu trữ trên máy tính để bàn của tôi mà không phải thực hiện git clone mới mỗi đêm không?

Trả lời

8

Hai nhận xét:

1/Tôi sẽ khuyên bạn nên có một trong hai bare repo hoặc một bundle (một tập tin, dễ dàng hơn để di chuyển xung quanh) cho mạng chia sẻ

2 bạn/Tôi thà thêm network_repo như một điều khiển từ xa để repo máy tính để bàn của bạn và đẩy từ đó (git push --force network_repo master): bạn ở lại repo làm việc của bạn.

25

Bạn không nên thực hiện rebase nếu bạn định kéo từ repo khác.

Nếu bạn không nhớ trọng thay đổi trong mạng chia sẻ, bạn có thể làm điều này:

git fetch origin master 
git reset --hard origin/master 

này sẽ đặt lại tổng thể địa phương để các bậc thầy xuất xứ.

Cảnh báo: đây là cứng đặt lại, nó sẽ mất tất cả thay đổi của bạn (cam kết * hay không).

Nhưng tôi giả sử bạn không thực sự có bất kỳ thay đổi nào ở đó và phần lớn chỉ là bản sao lưu.

* Lưu ý: về mặt kỹ thuật, các thay đổi đã cam kết sẽ không bị mất cho đến khi chúng hết hạn, nhưng đối với tất cả ý định và mục đích, chúng sẽ bị mất hiệu quả.

+0

Không, nó không loại bỏ các tệp không liên quan. – felixh

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