2012-03-19 22 views
8

Lần đầu tiên chơi với git và tôi đã vô tình thêm tất cả các tệp bị ẩn với cam kết của tôi. Bây giờ tôi đã thiết lập của tôi .gitignore, và cam kết thay đổi của tôi, tất cả các tập tin kết thúc bằng "~" vẫn còn đó.Xóa các tệp khỏi bản gốc tại github

Làm cách nào để cam kết các tệp cục bộ của tôi và xóa các tệp đó khỏi tệp chính mà không được cho phép ở đó nữa?

+0

Ý bạn là giống như cách làm git rm bình thường và cam kết? Bạn muốn viết lại lịch sử như cam kết không bao giờ xảy ra? – Kaz

+0

Bạn có thể làm điều đó; chỉ cần thiết lập lại đầu của bạn trước khi cam kết và đẩy nó vào kho, làm cho đầu. Repo phải được cấu hình cho phép push không tiến nhanh. Ngoài ra, bất cứ ai kéo từ đó repo sẽ phải làm một thiết lập lại cứng để làm theo thay đổi đó. Cam kết trở thành rác vì nó không được chấp nhận; nó được thu gom rác thải (trong 45 ngày hoặc một cái gì đó như thế?) – Kaz

Trả lời

16

Sử dụng git rm --cached FILENAME để xóa nó khỏi kho lưu trữ nhưng giữ tệp vật lý và git add FILENAME để thêm tệp vào kho lưu trữ của bạn. Bạn sẽ cần phải thực hiện cả hai thay đổi này với git commit

+2

Tôi không biết về lá cờ '' --cached''. 1 cho điều đó. :) –

+0

Có cách nào để xóa tất cả các tập tin bị bỏ qua/bỏ qua, vì vậy tôi không phải tự làm điều này? Gedit tạo ra một tập tin ẩn cho tất cả mọi thứ nó đã mở ra. – danielsvane

+0

Các tệp có lan truyền trên toàn bộ cấu trúc thư mục của bạn không? Nếu không, hãy sử dụng một số tiện ích GUI như tortoisegit để dễ dàng thực hiện điều đó. – Shocker

0
Here is a DOS batch file that can help: 

SET count=1 
FOR /F "tokens=*" %%G IN ('dir /s /b *.dll') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.pdb') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.txt') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.cache') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.force') DO (call :subroutine "%%G") 
GOTO :eof 

:subroutine 
    git rm --cached %1 
    set /a count+=1 
    GOTO :eof 
Các vấn đề liên quan