Git: không có gì được thêm vào cam kết nhưng có các tệp chưa được kiểm tra


78

Tôi mới sử dụng Git và đang sử dụng lần đầu tiên. Tôi sẽ đánh giá cao nếu ai đó có thể giúp tôi. Tôi đã cố gắng tìm câu trả lời trên các diễn đàn, nhưng có rất nhiều lệnh được đưa ra và không chắc nên sử dụng lệnh nào.

Trên máy chủ sản phẩm, nếu tôi làm như vậy git pull, nó đang gây ra lỗi sau:

Tệp không theo dõi: (sử dụng "git add ..." để đưa vào những gì sẽ được cam kết)

Optimization/language/languageUpdate.php
email_test.php
nothing added to commit but untracked files present (use "git add" to track)
Please move or remove them before you can merge.

Tôi không chắc làm thế nào để làm cho nó hoạt động. Nếu tôi xóa chúng, nó sẽ bị xóa từ đâu. Đánh giá cao câu trả lời của bạn.

Câu trả lời:


71

Bạn có hai lựa chọn ở đây. Bạn có thể thêm các tệp chưa được theo dõi vào kho lưu trữ Git của mình (như thông báo cảnh báo được đề xuất) hoặc bạn có thể thêm tệp vào .gitignoretệp của mình , nếu bạn muốn Git bỏ qua chúng.

Để thêm tệp, hãy sử dụng git add:

git add Optimization/language/languageUpdate.php
git add email_test.php

Để bỏ qua các tệp, hãy thêm các dòng sau vào .gitignore:

/Optimization/language/languageUpdate.php
/email_test.php

Một trong hai tùy chọn sẽ cho phép git pullthành công sau đó.


Ok, nếu tôi thêm chúng, nó sẽ được thêm vào máy chủ hay cục bộ của tôi?
user4943236

Câu hỏi hóc búa. Nếu bạn sử dụng git add, thì các tệp sẽ được theo dõi bởi kho lưu trữ Git của bạn. Điều này có nghĩa là chúng sẽ xuất hiện trong bất kỳ nhánh nào cục bộ hoặc trên điều khiển từ xa. Nếu bạn không muốn điều này xảy ra, hãy sử dụng .gitignoretùy chọn. Nếu bạn thực sự không cần các tệp, bạn có thể xóa chúng.
Tim Biegeleisen

cảm ơn bạn, sau khi thực hiện việc này, nó báo: error: Các thay đổi cục bộ của bạn đối với các tệp sau sẽ bị ghi đè bằng cách hợp nhất: Optimization / language / update.php Vui lòng cam kết các thay đổi của bạn hoặc lưu trữ chúng trước khi bạn có thể hợp nhất.
user4943236

Bạn đã thêm một tệp mới và Git phát hiện đây là một thay đổi. Vì vậy, bạn sẽ phải cam kết điều này bằng cách thực hiện git commit -m 'Added update PHP script'.
Tim Biegeleisen

2
Cá nhân tôi thích trang web này , mặc dù có rất nhiều hướng dẫn trên mạng. Làm chủ Git không quá nhiều về việc chọn hướng dẫn phù hợp mà chỉ là bạn có được kinh nghiệm sử dụng nó. Bạn đã làm điều đó hôm nay :-)
Tim Biegeleisen

62

Ngoài ra, thay vì thêm từng tệp theo cách thủ công, chúng tôi có thể làm điều gì đó như:

git add --all

HOẶC LÀ

git add -A

Thao tác này cũng sẽ xóa bất kỳ tệp nào không có hoặc bị xóa (Các tệp được theo dõi trong thư mục làm việc hiện tại đã vắng mặt).

Nếu bạn chỉ muốn thêm các tệp được theo dõi và đã thay đổi, bạn sẽ muốn làm

git add -u

Sự khác biệt giữa git add .& git add --all?


tôi đã cố gắng điều tương tự nhưng nó cho thấy "cảnh báo: không thể truy cập <path>: cho phép từ chối" ....
vishwaraj

Một số người coi đây là một cách làm không tốt bởi vì bạn vừa thêm những tệp nào? Bạn không biết. Lịch sử lệnh Bash của bạn sẽ không bao giờ đóng vai trò là nhật ký hữu ích về các hành động của bạn. Bạn sẽ được dựa một cách mù quáng vào tính hiệu quả của .gitignore của bạn, và có thể bạn sẽ vô tình cam kết xây dựng hiện vật như Makefiles khi họ đang thực sự tự động tạo ra (như trường hợp ở một số dự án)
Scott Prive

@Crossfit_and_Beer Tôi đồng ý với bạn, nhưng nếu gitignore của bạn bị hỏng, chủ yếu bạn muốn khắc phục điều đó hơn là tiếp tục thêm từng tệp riêng lẻ hoặc xóa từng tệp khỏi bộ nhớ cache một cách bất tiện trong khi sử dụng gitignore bị hỏng. Ngoài ra trạng thái git là bạn bè của bạn, chỉ cần kiểm tra kỹ.
Viv

hoặc bạn có thể sử dụng git add .để đảm bảo bạn bao gồm.
Eoin

15

Vui lòng làm theo quy trình này

Trước hết, hãy cài đặt git bash và tạo một kho lưu trữ trên git

1) Chuyển đến thư mục làm việc nơi có tệp mà bạn muốn đẩy trên điều khiển từ xa và tạo thư mục .git bằng cách

$ git init

2) Thêm các tệp vào kho lưu trữ cục bộ mới của bạn.

$ git add .

Lưu ý: khi bạn đang ở trong cùng một thư mục, hãy đảm bảo rằng bạn đã đặt dấu chấm sau lệnh nếu bạn đặt đường dẫn hoặc không đặt dấu chấm sẽ tạo ra sự mơ hồ

3) Cam kết các tệp mà bạn đã sắp xếp trong kho lưu trữ cục bộ của mình.

$ git commit -m "First commit"**

4) sau khi chuyển đến kho lưu trữ git và sao chép URL từ xa

$ git remote add origin *remote repository URL

5)

$ git remote -v

Lưu ý: điều này sẽ yêu cầu user.email và user.name chỉ cần đặt nó theo cấu hình

6)

$ git push origin master

điều này sẽ đẩy toàn bộ mã đã cam kết sang FILE.git trên kho lưu trữ

Và tôi nghĩ rằng chúng tôi đã làm


1
Điều này giải quyết vấn đề của tôi, tôi sử dụng git reset --hard masterđể đặt lại "tiến trình xoắn" của mình và thực hiện giải pháp này, và nó đã hoạt động. Cảm ơn!!
Michael Harley

1

Làm theo tất cả các bước.

Bước 1: Khởi tạo git

$ git init

Bước 2: Kiểm tra tập tin còn tồn tại hay không.

$git ls

Bước 3: Thêm tệp

$git add filename

Bước 4: Thêm nhận xét để hiển thị

$git commit -m "your comment"

Bước 5: Liên kết đến kho lưu trữ của bạn

$git remote add origin  "copy repository link  and paste here"

Bước 6: Đẩy vào Git

$ git push -u origin master

0

Nếu bạn đã thử sử dụng git add .lệnh để thêm tất cả các tệp chưa được theo dõi của mình, hãy đảm bảo rằng bạn không nằm trong một thư mục con của dự án gốc.

git add . sẽ hiển thị tất cả các tệp của bạn trong thư mục con hiện tại.


0

Trong trường hợp ai đó chỉ quan tâm đến lỗi nothing added to commit but untracked files present (use "git add" to track)mà không phải về Please move or remove them before you can merge.. Bạn có thể xem câu trả lời trên Git - Sẽ không thêm tệp?

Ở đó, bạn tìm thấy ít nhất 2 ứng cử viên tốt cho vấn đề đang được đề cập ở đây: bạn đang ở trong một thư mục con hoặc trong thư mục mẹ, nhưng không phải trong thư mục repo thực tế. Nếu bạn đang ở trong thư mục một mức quá cao, điều này chắc chắn sẽ làm tăng thông báo "không có gì thêm để cam kết…", hãy xem câu trả lời của tôi trong liên kết để biết chi tiết. Tôi không biết liệu thông báo tương tự có xảy ra khi bạn đang ở trong một thư mục con hay không, nhưng rất có thể. Điều đó có thể phù hợp với giải thích của bạn.

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.