Đẩy các thay đổi git vào ổ đĩa mạng dùng chung


90

Làm cách nào để một nhóm bốn người có thể sử dụng Git (cụ thể là Github dành cho Windows ) để đẩy các thay đổi cục bộ lên ổ đĩa mạng dùng chung?

Ngay bây giờ (không có Git), chúng tôi phải sao chép các tệp từ ổ đĩa mạng vào máy cục bộ của chúng tôi, chỉnh sửa tệp và sau đó tải chúng lên lại ổ đĩa mạng được chia sẻ. Đây là một quá trình tốn nhiều công sức có thể dẫn đến rất nhiều lỗi, nhưng có vẻ như Git có thể giúp chúng ta điều gì đó.

Chúng ta có thể chỉ cần cài đặt Git trên bộ nhớ dùng chung và bắt đầu từ đó không?

Câu trả lời:


123

Không chắc liệu bạn có tìm thấy thứ gì đó phù hợp với mình hay không, nhưng tôi có một bản ghi về cách thực hiện điều đó trên ổ đĩa mạng windows:

http://tony.halcyonlane.com/blog/2011/09/22/Using-git-at-work-on-a-Windows-network-drive/

Từ lời nhắc cmd thay đổi đến ổ đĩa được ánh xạ của bạn.

$ cd g:

Sau đó, cd vào kho lưu trữ sắp được git của bạn.

tập lệnh $ cd

Sau đó, tạo một kho lưu trữ git trống. Nếu bạn không sử dụng tùy chọn --bare, bạn sẽ gặp vấn đề vì vậy đừng bỏ qua điều đó.

$ git init --bare

Bây giờ nếu bạn chưa có kho lưu trữ git cục bộ, thì bạn có thể sao chép kho lưu trữ mới của mình bất cứ nơi nào bạn muốn bằng cách điều hướng trở lại ổ đĩa cục bộ của bạn.

$ c:

$ cd work / scripts

Tệp $ git clone: ​​// g: \ scripts

Khi bạn sao chép, bạn sẽ tự động nhận được một điều khiển từ xa có tên "origin" và bạn có thể đẩy lên máy chủ để lưu giữ an toàn bất kỳ lúc nào bạn thực hiện các thay đổi cục bộ.

$ git push origin master

Nếu bạn đã có một kho lưu trữ git và bạn chỉ muốn đẩy ra bộ nhớ dùng chung thì bạn có thể thực hiện việc này từ bên trong git dir cục bộ của mình.

$ git từ xa thêm tệp gốc: // g: \ scripts

$ git push origin master


1
Cảm ơn bạn - tôi đã làm chính xác điều này cho một dự án cá nhân trên mạng gia đình của tôi.
Martin Snyder

Tôi đã làm theo các bước sau nhưng gặp các lỗi sau khi chạy lỗi chính git push origin: không thể sinh ra sh: Không có tệp hoặc thư mục nào như vậy gây tử vong: không thể phân nhánh
NickSists

Cảm ơn bạn. Mất nhiều thời gian để tìm ra câu trả lời này
Simon Huckett

Đối với bất kỳ ai chưa có bản đồ bộ nhớ dùng chung của họ, có pushd (và popd) để tạo một ổ đĩa tạm thời ảo để điều hướng đến ( xem liên kết )
LoJo

Bạn sẽ gặp vấn đề gì nếu không sử dụng --bare? Tôi đã có một kho lưu trữ không trống trên ổ đĩa mạng và muốn sử dụng nó làm điều khiển từ xa.
Fractaly

24

Nhóm của chúng tôi hiện đang làm chính xác điều này. Mọi nhà phát triển đều có những điều sau đây:

  1. Git được cài đặt trên máy cục bộ của họ
  2. Quyền truy cập vào bộ nhớ dùng chung cá nhân của họ ( L:)
  3. Quyền truy cập vào một ổ nhóm được chia sẻ ( V:)

Chúng tôi có kho lưu trữ "từ xa" (được thiết lập bằng cách sử dụng init -bare) trên V:ổ đĩa và mọi người đều có bản sao trên L:ổ đĩa cá nhân của họ . Tất cả các thay đổi được thực hiện cho L:ổ đĩa và được đẩy lên V:ổ đĩa, sau đó được các nhà phát triển khác kéo xuống sau đó vào kho lưu trữ cá nhân tương ứng trên L:ổ đĩa của họ . Điều này hoạt động mà không có bất kỳ sự cố nào và giảm thiểu nhu cầu về máy chủ Git.


Rất tốt! Trước tiên tôi có cần tạo một kho lưu trữ cục bộ, sau đó thiết lập điều khiển từ xa của kho lưu trữ đó trên bộ nhớ dùng chung không?
user1549303

1
@ user1549303 - Đó là cách chúng tôi thực hiện. Bạn có thể tạo cục bộ (repo L:ổ đĩa của chúng tôi ) bằng cách sử dụng git init, sau đó tạo điều khiển từ xa ( v:ổ đĩa của chúng tôi ) bằng cách sử dụng git clone --bare(hoặc a git init --bare, và sau đó nhấn từ L:).
2012

@eykanal - Nhóm của tôi hiện đang sử dụng một thư viện điều khiển nguồn cổ xưa, khủng khiếp và chúng tôi đang tìm cách chuyển sang git. Một điều mà thư viện hiện tại của chúng tôi cho phép tôi làm là xem ai đã kiểm tra tệp nhưng quên kiểm tra các thay đổi. Với git, tất cả các kho lưu trữ là cục bộ, vì vậy làm thế nào bạn có thể biết nếu ai đó quên đẩy đến "v:"?
Kevin Buchan

3
@KevinBuchan - Tôi khuyên bạn nên đăng nhận xét của mình dưới dạng một câu hỏi mới.
eykanal 25/07/12

1
Git có phản ứng gì khi hai nhà phát triển cố gắng đẩy đến cùng một kho lưu trữ được chia sẻ (giả sử V :) cùng một lúc không? Bạn có gặp vấn đề gì với các hoạt động đẩy đồng thời không?
Jordi

2

Bạn có thể thêm một điều khiển từ xa khác trỏ tới ổ đĩa mạng của mình (git remote)

Sau đó, bạn có thể đẩy kéo tương tự như những gì bạn làm với github

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.