2011-10-26 28 views
5

Tôi vừa mới bắt đầu cố gắng học Git và tôi đã có một chút khó khăn. Chúng tôi đang sử dụng Github để giữ dự án "ổn định" của chúng tôi nhưng tôi gặp khó khăn khi làm việc với repo.Đặt Apache htdocs/thư mục con làm thư mục làm việc GIT

Tôi muốn biết nếu có thể sử dụng máy chủ web cục bộ htdocs/[projectname] làm thư mục làm việc - cách này tôi có thể sao chép repo từ github, làm việc trên máy chủ cục bộ (vì vậy nó hoạt động như ứng dụng sẽ cho phép tôi kiểm tra tất cả mọi thứ tôi viết đúng) và sau đó giai đoạn -> cam kết từ đó.

Tôi đang làm việc trên máy Mac bằng môi trường MAMP. Ứng dụng này là một CMS dựa trên PHP. Chúng tôi đang giữ nó trên Github trên một kho lưu trữ riêng. Hiện tại Git dường như đang sử dụng /Users/Ben/Core-CMS làm thư mục làm việc nhưng điều này làm cho nó rất khó để kiểm tra mọi thứ - nó sẽ tốt hơn nhiều nếu thư mục làm việc nằm trong thư mục htdocs apache

Tôi đã mua Pro Git nhưng tôi đang có rất khó khăn trong việc học các khái niệm về git - Tôi cố ý tránh sử dụng GUI vì tôi muốn tìm hiểu các hoạt động bên trong của Git đúng cách trước khi tôi bắt đầu 'gian lận'!

+0

Ông có thể cho biết thêm chi tiết về thiết lập của bạn? (thư mục làm việc của bạn, ngôn ngữ/khuôn khổ bạn đang sử dụng, vv) –

+0

Chắc chắn - Tôi đang làm việc trên máy Mac sử dụng môi trường MAMP. Ứng dụng này là một CMS dựa trên PHP. Chúng tôi đang giữ nó trên Github trên một kho lưu trữ riêng. Hiện tại Git dường như đang sử dụng/Users/Ben/Core-CMS làm thư mục làm việc nhưng điều này làm cho nó rất khó để kiểm tra mọi thứ - nó sẽ tốt hơn nhiều nếu thư mục làm việc nằm trong thư mục htdocs apache. –

Trả lời

5

Nếu bạn có quyền ghi trong htdocs dir, chỉ cần di chuyển /Users/Ben/Core-CMS để htdocs/Core-CMS và truy cập nó tại http://localhost/Core-CMS.

Nếu bạn không thể viết trong thư mục htdocs, tôi muốn tạo /Users/Ben/web, đặt dự án của tôi vào đó và yêu cầu apache phân phát từ đó. Để nói apache để tìm trong /Users/Ben/web để phục vụ dự án của bạn, hãy tìm dòng sau trong conf apache của bạn:

DocumentRoot /path/to/htdocs 

và thay thế bằng:

DodumentRoot /Users/Ben/web 
+0

Nghiêm túc? Tôi không nghĩ rằng nó sẽ được dễ dàng! Cảm ơn bạn rất nhiều :) –

+0

Một repo git chỉ là một thư mục câm với một '.git' bên trong, các cấu trúc dữ liệu cơ bản rất đơn giản. –

+1

Lưu ý rằng bạn nên ngừng máy chủ web của bạn phục vụ thư mục '.git', trong đó có chứa thông tin cấu hình riêng (và tất cả công việc của bạn đang tiến hành). Nếu bạn không muốn phải làm điều đó một cách rõ ràng (và rủi ro quên), bạn có thể xem xét việc thiết lập một kho lưu trữ trần mà triển khai trên đang được đẩy đến, chẳng hạn như được mô tả ở đây: http://toroid.org/ams/git-website -howto –

1

Đây không phải là vấn đề. Tôi làm điều này mọi lúc.

Chuyển vào thư mục công cộng của bạn và chạy:

git clone REPO_URL NAME_OF_DIR_TO_CLONE_TO 

đầu tiên.

Thư mục nơi bạn sao chép kho lưu trữ git không được tồn tại.

Bạn chỉ cần một khóa ssh được ủy quyền để đẩy các thay đổi của bạn từ kho lưu trữ đến github và git được cài đặt trên máy chủ (hoặc trong máy khách của bạn nếu bạn đã gắn mọi thứ vào máy cục bộ).

Sau đó, bạn thực hiện cam kết chỉ là cục bộ và nếu bạn đã hoàn tất, bạn có thể đẩy các thay đổi của mình vào github.

Một cách khác là làm cho máy chủ web sử dụng thư mục làm việc của bạn làm DocumentRoot.

Tôi hy vọng tôi đã không bỏ lỡ vấn đề của bạn ở đây;)

+0

Cảm ơn - câu hỏi nhanh - khi bạn nói "Thư mục bạn sao chép kho lưu trữ git không tồn tại". Chính xác ý của bạn là gì? Đó là một thư mục với tên đó không thể tồn tại trong đường dẫn sao chép? –

+0

Nếu bạn sao chép một dự án git như thế này "git clone URL abc" thì không thể có thư mục có tên abc - thậm chí không có thư mục rỗng - đã có ở đó vì nó sẽ được tạo. Git sẽ gửi một thông báo lỗi nếu bạn thử một cái gì đó như thế này. –

+0

Vì vậy, chỉ để kiểm tra điều này là đúng - nếu tôi sao chép một repo Git vào một thư mục có tên trên máy Mac của tôi, để làm việc với repo đó trong Git một lần nữa (nói, ngày mai) thì tôi chỉ cần điều hướng đến thư mục đó trong terminal và git sẽ biết repo là gì? bởi vì tôi dường như có vấn đề mà git luôn luôn quên những dự án tôi đã mở và tôi không thể tìm thấy một lời khen mở 'hiện có' (im thậm chí không chắc chắn đó là những gì tôi là một trong hai thành thật!) –

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