Làm cách nào tôi có thể bỏ qua các thư mục hoặc thư mục trong Git bằng msysgit trên Windows?
.gitkeep
) để chỉ ra một thư mục nên được lưu giữ
/
vào cuối những gì làm cho nó biết một thư mục của nó nên bỏ qua?
Làm cách nào tôi có thể bỏ qua các thư mục hoặc thư mục trong Git bằng msysgit trên Windows?
.gitkeep
) để chỉ ra một thư mục nên được lưu giữ
/
vào cuối những gì làm cho nó biết một thư mục của nó nên bỏ qua?
Câu trả lời:
Tạo một tệp có tên .gitignore
trong thư mục dự án của bạn. Bỏ qua các thư mục bằng cách nhập tên thư mục vào tệp (có thêm dấu gạch chéo):
dir_to_ignore/
Thêm thông tin ở đây .
Theo mặc định, Windows Explorer sẽ hiển thị .gitignore
khi trên thực tế tên tệp là .gitignore.txt
.
Git sẽ không sử dụng .gitignore.txt
Và bạn không thể đổi tên tệp thành .gitignore
, vì Windows Explorer cho rằng đó là tệp loại gitignore không có tên.
Giải pháp dòng lệnh không:
Bạn có thể đổi tên một tệp thành ".gitignore." và nó sẽ tạo ra ".gitignore"
".gitignore"
và nó sẽ lưu nó mà không cần tự động thêm tiện ích mở rộng.
".gitignore."
- Đây là một mẹo hay! Tôi cũng luôn gặp rắc rối với .htaccess
...
Dường như để bỏ qua các tập tin và thư mục có hai cách chính:
.gitignore
.gitignore
tệp vào .git
thư mục gốc của kho lưu trữ bên cạnh thư mục (trong Windows, đảm bảo bạn thấy phần mở rộng tệp thực sự và sau đó thực hiện .gitignore.
(với điểm ở cuối để tạo phần mở rộng tệp trống))~/.gitignore_global
và chạy git config --global core.excludesfile ~/.gitignore_global
để thêm cấu hình này vào cấu hình Git của bạnLưu ý: các tệp được theo dõi trước đó có thể được theo dõi bằng cách chạy git rm --cached filename
Kho lưu trữ loại trừ - Đối với các tệp cục bộ không cần chia sẻ, bạn chỉ cần thêm mẫu tệp hoặc thư mục vào tệp .git/info/exclude
. Các quy tắc của luận án không được cam kết, vì vậy chúng không được người dùng khác nhìn thấy . Thêm thông tin ở đây .
Để tạo ngoại lệ trong danh sách các tệp bị bỏ qua, hãy xem câu hỏi này .
git rm --cached <filename>
. Hoàn toàn quan trọng đối với các repos tồn tại TRƯỚC KHI bạn đã tạo.gitignore
Tôi đã có một số vấn đề tạo ra một tập tin trong Windows Explorer với .
lúc đầu.
Một cách giải quyết là đi vào phần lệnh và tạo một tệp mới bằng cách sử dụng "chỉnh sửa".
.
vào cuối để explorer ngừng suy nghĩ .gitignore
là phần mở rộng. Sau đó, trên mục đó dấu chấm không có phần mở rộng chỉ bị ăn và bạn còn lại với .gitignore
TL; DR: hãy thử đặt tên cho nó .gitignore.
=> bạn kết thúc với.gitignore
Để hướng dẫn Git bỏ qua các tệp hoặc thư mục nhất định, bạn phải tạo .gitignore
tệp.
Nhưng trong Windows Explorer, bạn phải cung cấp tên cho tệp. Bạn chỉ không thể tạo tập tin chỉ với một phần mở rộng. Thủ thuật là tạo một tệp văn bản trống và đi đến dấu nhắc lệnh và thay đổi tên của tệp thành .gitignore
:
ren "New Text Document.txt" .gitignore
Bây giờ hãy mở tệp bằng trình soạn thảo văn bản yêu thích của bạn và thêm tên tệp / thư mục mà bạn muốn bạn bỏ qua. Bạn cũng có thể sử dụng các ký tự đại diện như thế này : *.txt
.
type nul > .gitignore
để tạo một tập tin trống
.gitignore.
khi phần mở rộng tệp không bị ẩn trong Windows explorer của bạn
Nếu bạn muốn duy trì một thư mục chứ không phải các tệp bên trong nó, chỉ cần đặt tệp ".gitignore" vào thư mục có "*" làm nội dung. Tập tin này sẽ khiến Git bỏ qua tất cả nội dung từ kho lưu trữ. Nhưng .gitignore
sẽ được bao gồm trong kho lưu trữ của bạn.
$ git add path/to/folder/.gitignore
Nếu bạn thêm một thư mục trống, bạn sẽ nhận được thông báo này (.gitignore là một tệp ẩn)
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
Vì vậy, sử dụng "-f" để buộc thêm:
$ git add path/to/folder/.gitignore -f
Trong Windows có thêm một dấu gạch chéo. Không bao gồm một thư mục trong .gitignore với
dir_to_exclude /
sẽ có thể làm việc, nhưng loại trừ tất cả các thư mục với
/
gây ra sự cố khi bạn có tên tệp có khoảng trắng (như my file.txt
) trong thư mục của mình: Git Bash thoát các khoảng trắng này bằng dấu gạch chéo ngược (như my\ file.txt
) và Git cho Windows không phân biệt giữa /
và \
.
Để loại trừ tất cả các thư mục, sử dụng tốt hơn:
** /
Hai dấu hoa thị liên tiếp biểu thị nội dung thư mục.
Ngoài ra trong \.git\info
thư mục dự án của bạn có một tệp loại trừ có hiệu quả tương tự như .gitignore
(tôi nghĩ). Bạn có thể thêm các tập tin và thư mục để bỏ qua trong đó.
Chỉ trong trường hợp bạn cần loại trừ các thư mục con, bạn có thể sử dụng **
ký tự đại diện để loại trừ mọi cấp độ của thư mục con.
**/build/output/Debug/
Để bỏ qua toàn bộ thư mục trong Git, cách dễ nhất là bao gồm tệp .gitignore trong thư mục đích chỉ chứa "*".
Một ví dụ minh họa,
Hệ thống ví dụ
/root/
.gitignore
/dirA/
someFile1.txt
someFile2.txt
/dirB/
.gitignore
someFile3.txt
someFile4.txt
Mục tiêu
Cấp cao nhất .gitignore (/root/.gitignore)
Thư mục bị bỏ qua .gitignore (/root/dirB.gitignore)
Và nó thật đơn giản :)
Khi mọi thứ khác không thành công, hãy thử chỉnh sửa tệp
/.git/info/exclude
và thêm các thư mục bạn muốn vào cuối tệp, như thế này:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
Tôi đã thêm các thư mục "tài sản" và "biên dịch" vào danh sách các tập tin và thư mục để bỏ qua.
Trên Unix:
touch .gitignore
Trên Windows:
echo > .gitignore
Các lệnh này được thực thi trong một thiết bị đầu cuối sẽ tạo một .gitignore
tệp ở vị trí hiện tại.
Sau đó, chỉ cần thêm thông tin vào .gitignore
tệp này (ví dụ sử dụng Notepad ++) những tệp hoặc thư mục nào sẽ bị bỏ qua. Lưu các thay đổi của bạn. Đó là nó :)
Thêm thông tin: .gitignore
Bạn có thể tạo tệp ".gitignore" với nội dung:
*
!.gitignore
Nó làm việc cho tôi.
Tôi đã gặp một số vấn đề khi nhận Git để lấy .gitignore
tệp trên Windows. Các $GIT_DIR/info/exclude
tập tin dường như luôn luôn làm việc mặc dù.
Tuy nhiên, nhược điểm của phương pháp này là các tệp trong $GIT_DIR
thư mục không được bao gồm trong đăng ký và do đó không được chia sẻ.
ps
$GIT_DIR
thường là thư mục ẩn có tên.git
Tôi giả sử vấn đề là cây làm việc của bạn giống như:
a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore
... với những .gitignore
gì bạn mô tả. Điều này sẽ cung cấp cho bạn git status
đầu ra như:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
... nếu các index.html
tập tin chưa được thêm vào kho lưu trữ. (Git thấy rằng có các tệp chưa được đặt trong các thư mục bộ đệm, nhưng nó chỉ báo cáo các thư mục.) Để khắc phục điều này, hãy đảm bảo rằng bạn đã thêm và cam kết các index.html
tệp:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
... Và ý chí của bạn git status
sẽ như sau:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(Rõ ràng là bạn cũng muốn cam kết .gitignore
. Tôi chỉ lười biếng với trường hợp thử nghiệm này.)
Trên Windows và Mac, nếu bạn muốn bỏ qua thư mục có tên Flower_Data_Folder trong thư mục hiện tại, bạn có thể thực hiện:
echo Flower_Data_Folder >> .gitignore
Nếu đó là một tệp có tên data.txt
:
echo data.txt >> .gitignore
Nếu đó là một đường dẫn như "Dữ liệu / mật khẩu.txt"
echo "Data/passwords.txt" >> .gitignore.
Tôi đã có vấn đề tương tự. Tôi làm việc trên chuỗi công cụ Windows với kho lưu trữ được chia sẻ với các nhân viên Linux và họ vui vẻ tạo các tệp có cùng tên (trừ trường hợp) trong một thư mục nhất định.
Hiệu quả là tôi có thể sao chép kho lưu trữ và ngay lập tức có hàng tá tệp 'được sửa đổi', nếu tôi đăng ký, sẽ tạo ra sự tàn phá.
Tôi có Windows được đặt thành phân biệt chữ hoa chữ thường và Git để không bỏ qua trường hợp này, nhưng nó vẫn thất bại (rõ ràng trong các lệnh gọi API Win32).
Nếu tôi gitignore các tệp thì tôi phải nhớ không theo dõi tệp .gitignore.
Nhưng tôi đã tìm thấy một câu trả lời tốt ở đây:
http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html
Chỉ cần tạo .gitignore
tệp trong thư mục dự án của bạn Sau đó thêm tên của thư mục trong đó cho ví dụ:
frontend/node_modules