2013-03-06 13 views
8

Tôi là một newbie với git - và chỉ nhận ra những thay đổi đối với .gitignore không xử lý đối với repo “hồi tố” - thay vào đó ảnh hưởng đến các lệnh ‘git add *’ trong tương lai và tương tự. Một khi các tập tin trong repo - chúng phải được loại bỏ bằng tay.làm thế nào để khởi động lại kho git

Tại thời điểm này - Tôi chỉ muốn xóa hoàn toàn repo này - và bắt đầu lại (lưu cấu hình của tôi, v.v.).

Điều này có dễ dàng hoặc có thể gây ra vấn đề lớn không? Có thể sao lưu - sau đó xóa thư mục .git - và bắt đầu làm mới?

Ngoài ra - đối với những người mới bắt đầu mới bắt đầu, tôi khuyên bạn nên xem video này. Nó mô tả cách không sử dụng git - nhưng làm thế nào git hoạt động trong nội bộ - và tôi thấy nó mở mắt. Nó có tiêu đề git cho độ tuổi từ 4 trở lên. http://blip.tv/open-source-developers-conference/git-for-ages-4-and-up-4460524

Độ phân giải:

Tôi muốn cảm ơn tất cả mọi người cho đầu vào và hướng dẫn của họ.

Tôi đã cố xóa thư mục .git - và khởi động lại. Tôi không chắc chắn làm thế nào - nhưng khi tôi đã cố gắng để bắt đầu nó - Nó bắt đầu với nhận thức đầy đủ về lịch sử của nó - và trong ngắn tái tạo chính nó để bao gồm tất cả các cam kết trước đó và theo dõi.

Tôi để lại một mình - và thiết lập về sắp xếp lại và tái cơ cấu và làm sạch. Thay đổi cấu trúc thư mục - xóa các dự án không cần thiết, thư mục, vv .. - và trong quá trình - nhận ra những gì tôi có thể làm để loại bỏ các tập tin tôi không muốn theo dõi (nhưng vẫn muốn chúng hiện diện trong cây).

Tôi đã di chuyển mọi thư mục một cách hiệu quả, v.v. và khi tôi cam kết điều này - git đã xóa theo dõi trên các tệp đã di chuyển/xóa. Nhưng vì bây giờ tôi đã có .gitignore - nó không nhận hoặc theo dõi các tệp trong các thư mục được di chuyển.

Phần lớn những gì tôi đang làm là chuẩn bị để bắt đầu một repo git hoàn toàn mới. Cuối cùng trong quá trình tôi không hiểu rõ về tôi - hầu hết những gì tôi không muốn theo dõi đã được loại bỏ một cách hiệu quả cho repo. Vì vậy, lấy những gì đã xảy ra - và thực hiện một vài điều chỉnh thêm - và tất cả là tốt bây giờ.

Một lần nữa - cảm ơn bạn. Tôi yêu git!

+1

tại sao bạn không thích ý tưởng chỉ cần loại bỏ các tập tin từ kiểm soát nguồn? – niculare

+0

Có nhiều tệp được lồng trong các thư mục sâu. – JimH

Trả lời

6

Có thể sao lưu - sau đó xóa thư mục .git - và bắt đầu làm mới?

Có. Đây là tất cả để có nó.

Một số thiết lập thực sự kỳ lạ có thể có thư mục .git nằm ngoài thư mục làm việc; nhưng nếu không thư mục .git chứa tất cả thông tin có git. Nếu bạn loại bỏ điều đó, bạn sẽ xóa tất cả lịch sử, git-metadata và như vậy.

Chỉnh sửa: đối với những người có thể chưa đọc toàn bộ câu hỏi: cảnh báo: điều này sẽ xóa toàn bộ lịch sử git của bạn.

+0

Cảm ơn sự giúp đỡ của bạn. Tôi nghĩ bạn chỉ đơn giản là có thể xóa thư mục này - nhưng sau đó tôi thấy một bài đăng khác cho thấy nó sẽ là một vấn đề lớn. – JimH

3

Chiến lược tốt nhất để xử lý việc này là sử dụng lệnh git archive. Thao tác này sẽ xuất phiên bản không phiên bản của cây của bạn trong kho lưu trữ tar.Chọn chi nhánh của bạn mà bạn muốn xuất và chạy các thông tin sau trong kho lưu trữ của bạn:

git archive master | tar -x -C ~/target/directory 

Sau đó, bạn có thể xóa thư mục kho lưu trữ và sau đó giải nén kho lưu trữ để bắt đầu lại. Cuối cùng, bạn có thể tạo một kho lưu trữ mới trong thư mục được trích xuất của mình như sau:

git init 
+0

Cảm ơn bạn rất nhiều. Tôi sẽ nhận được nó! – JimH

9

Tôi làm điều này mọi lúc. đã vào thư mục làm việc và nếu trên Linux hoặc Mac của bạn làm một

rm -rf .git 

sau đó tôi làm một

git init 
git add . 
git commit -m "first time load" 

đó là tất cả bạn cần

+0

Cảm ơn sự giúp đỡ của bạn. Tôi đánh giá cao nó! – JimH

+1

Điều này không hoạt động – randseed1724