2011-02-03 39 views
5

Tôi có một dự án mà tôi đang làm việc và có các thiết lập sau: một máy chủ với repo git của tôi, một máy tính để bàn và máy tính xách tay.đồng bộ hóa các tệp mà không cần cam kết?

Đôi khi tôi làm việc trên dự án của mình trên máy tính để bàn, đôi khi trên máy tính xách tay của tôi.

Làm cách nào để đồng bộ hóa tệp giữa máy tính để bàn và máy tính xách tay mà không cam kết thay đổi máy chủ?

Cảm ơn

+0

Chỉ cần sử dụng một chi nhánh. – ismail

+1

Cụm từ "một máy chủ với repo git của tôi, một máy tính để bàn và một máy tính xách tay" thực sự là lạ. Có lẽ nếu bạn đang làm việc trên máy tính xách tay và máy tính để bàn, sau đó họ cũng có repos. Ngừng nghĩ về các kho lưu trữ trên máy chủ như là khác với kho lưu trữ trên máy tính để bàn hoặc máy tính. Họ đều bình đẳng. –

+0

@william Tôi không đồng ý. Nếu ai đó sao chép bản projet, nó sẽ xuất phát từ "máy chủ", không phải từ máy tính xách tay. – user744629

Trả lời

3

Bạn có thể trực tiếp kéo và đẩy giữa "khách hàng", ví dụ: PC và máy tính xách tay. Giao thông có thể là kết nối trực tiếp như SSH hoặc HTTP. Nhưng bạn cũng có thể sử dụng một kho lưu trữ khác trên phương tiện bên ngoài, đó có thể là một thanh USB, một ổ cứng gắn ngoài hoặc thậm chí một dịch vụ như Dropbox.

Bằng cách đó công việc của bạn có thể trông như thế này:

  1. Thực hiện thay đổi trên máy tính xách tay của bạn
  2. Cam kết thay đổi của bạn trên máy tính xách tay của bạn
  3. Đẩy cam kết vào kho trên một thanh USB
  4. Kéo cam kết từ thanh USB vào kho lưu trữ trên PC của bạn
  5. Thực hiện thêm thay đổi
  6. Cam kết - bạn cũng có thể sửa đổi cam kết nếu bạn muốn thay đổi của bạn được nguyên tử
  7. Đẩy cam kết chính thức của mình vào kho lưu trữ trên máy chủ

Hãy nhận biết rằng bạn sẽ luôn luôn cần phải cam kết thay đổi của bạn tại địa phương trước khi bạn có thể đẩy họ đến kho lưu trữ khác. Có vẻ như bạn đến từ một hệ thống SCM khác như Subversion, nơi cam kết luôn có nghĩa là "thực hiện các thay đổi hiển thị trên máy chủ và cho mọi người". Git hoạt động khác nhau, các cam kết chỉ là cục bộ trước khi bạn đẩy chúng.

+0

Tôi sẽ dùng thử dropbox. Một câu hỏi khác liên quan đến điều này: thay vì tạo một repo mới trong thư mục dropbox thì có ok để có một thư mục làm việc bên trong nó sẽ được đồng bộ hóa thông qua dropbox và chỉ push vào một repo (một trong máy chủ của tôi)? –

+0

Có, điều đó cũng sẽ hoạt động. Nhưng Dropbox sẽ đồng bộ mọi thay đổi bạn thực hiện với bản sao làm việc. Vì vậy, điều này có thể là một chút của một vấn đề. – Koraktor

1

Bạn có thể sử dụng một dịch vụ như Dropbox nếu bạn cần giải pháp "nhanh chóng và bẩn". Tôi có một vài repo trong thư mục Dropbox của tôi :)

1

Chỉ cần sử dụng lệnh rsync. Hãy chắc chắn rằng bạn đang ở trong đường dẫn gốc repo địa phương của bạn và chạy: rsync -a --exclude=.git . [email protected]:[Your Remote Path]

bạn có thể sửa mã của mình tại địa phương và rsync mã đó. Khi mã có thể được triển khai, sau đó cam kết vấn đề triển khai.

bạn có thể định cấu hình bí danh từ xa ssh của mình trong ~/.ssh/config tệp, google để biết cách định cấu hình nó. Sau đó, lệnh của bạn sẽ là: rsync -a --exclude=.git . [remote-alias-name]:[Your Remote Path] Và không cần nhập mật khẩu.

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