2010-08-16 64 views
209

Có cách nào để thêm tất cả các tệp không có vấn đề gì bạn làm với họ cho dù nó bị xóa, không được theo dõi, v.v ...? như cho một cam kết. Tôi chỉ không muốn có git add hoặc git rm tất cả các tệp của mình mỗi khi tôi cam kết, đặc biệt là khi tôi đang làm việc trên một sản phẩm lớn.Git thêm tất cả các tệp đã sửa đổi, xóa và không được theo dõi?

+6

Xem: [Sự khác biệt của “git add -A” và “git add.”] (Http://stackoverflow.com/questions/572549/difference-of-git-add-a-and-git-add) – mahalie

Trả lời

9

Tôi không chắc chắn nếu nó sẽ thêm các tệp đã xóa, nhưng git add . từ gốc sẽ thêm tất cả các tệp không được theo dõi.

+0

xem câu trả lời của tôi về cách thêm các tệp đã xóa –

254

Hãy thử:

git add -A 

Cảnh báo: Bắt đầu với git 2.0 (giữa năm 2013), điều này sẽ luôn giai đoạn file trên cây làm việc toàn.
Nếu bạn muốn đến giai đoạn tập tin theo đường dẫn hiện tại của cây làm việc của bạn, bạn cần phải sử dụng:

git add -A . 

Xem thêm: Difference of git add -A and git add .

+0

điều này không làm việc cho tôi ... làm cách nào tôi có thể hiển thị đầu vào đầu ra của mình trong cuộc thảo luận này? sao chép-dán đầu ra thiết bị đầu cuối của tôi như là một câu trả lời cho cuộc thảo luận này? –

+0

đây là vấn đề tôi đang phải đối mặt - http://stackoverflow.com/q/7726131/636762 - vui lòng giúp tôi về điều này xin vui lòng –

+0

Điều này cũng có thể không hoạt động nếu phiên bản git của bạn cũ. Tôi đã chạy một kịch bản trên một máy chủ đang chạy git 1.5.2.5. git add -A không hoạt động. Từ tập lệnh, không có thông báo lỗi nào được báo cáo. Chỉ từ dòng lệnh tôi mới thấy rằng -A không phải là một tùy chọn hợp pháp để thêm vào. – Eponymous

8
git add . 

có một khoảng trống giữa add và'. ' (dấu chấm trong từ). Nó thực hiện công việc. :)

+1

các giai đoạn 'git add .' mới và đã sửa đổi, * mà không bị xóa * - http://stackoverflow.com/questions/572549/difference-of-git-add-a-and-git-add –

58

Hãy thử

git add -u 

Các "u" tùy chọn là viết tắt của bản cập nhật. Điều này sẽ cập nhật repo và thực sự xóa các tập tin từ repo mà bạn đã xóa trong bản sao cục bộ của bạn.

git add -u [filename] 

để chỉ xóa một tệp. Sau khi được đẩy, tệp sẽ không còn trong repo nữa.

Ngoài ra,

git add -A .

tương đương với

git add . 

git add -u . 

Lưu ý thêm '' trên git add -Agit add -u


Cảnh báo: Bắt đầu với git 2.0 (giữa năm 2013), điều này sẽ luôn giai đoạn file trên cây làm việc toàn.
Nếu bạn muốn đến giai đoạn tập tin theo đường dẫn hiện tại của cây làm việc của bạn, bạn cần phải sử dụng:

git add -A . 

Xem thêm: Difference of git add -A and git add .

4

Tôi là tác giả của dự án G2, một môi trường thân thiện cho các dòng lệnh git người yêu.
Hãy lấy dự án từ github - G2 https://github.com/orefalo/g2

Nó có một loạt các lệnh tiện dụng, một trong số họ được chính xác những gì bạn đang tìm kiếm: freeze

đóng băng - Freeze tất cả các file trong kho (bổ sung, xóa, sửa đổi) cho khu vực dàn dựng, do đó dàn dựng nội dung đó để đưa vào cam kết tiếp theo. Cũng chấp nhận một đường dẫn cụ thể như tham số

4

Đây là lựa chọn của tôi (trong bất kỳ bash):

$ git status -s|awk '{ print $2 }'|xargs git add 

Để thiết lập lại

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD 
30

Bạn muốn git add -A:

git add -A giai đoạn Tất cả;

git add . các giai đoạn mới và được sửa đổi mà không bị xóa;

git add -u các giai đoạn được sửa đổi và xóa, không có mới.

1

tôi sử dụng dòng sau để thêm cho dàn dựng tất cả các file sửa đổi và mới được tạo ra, trừ những người được liệt kê trong .gitignore:

git add $(git ls-files -mo --exclude-standard) 

(cú pháp $() là cho vỏ bash). Tôi đoán rằng tùy chọn dòng lệnh -mod nên thêm cũng các tập tin bị xóa ... Hoặc, nếu bạn có tên tập tin bằng các đoạn trống nhúng, sau một lót nên làm các trick:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add 
4

Đối phiên bản mới hơn của Git.

tôi đã cố gắng git add -A và điều này được nhắc,

cảnh báo: Hành vi của 'git add --all (hoặc -A)' không có số đường dẫn từ một thư mục con của cây sẽ thay đổi trong Git 2.0 và không nên sử dụng nữa. Để thêm nội dung cho toàn bộ cây, chạy:

git add --all:/(hoặc git add -A: /)

Để hạn chế các lệnh để thư mục hiện hành, chạy:

git add --all. (hoặc git add -A.)

Với phiên bản Git hiện tại, lệnh này được giới hạn trong thư mục hiện tại.


Sau đó, tôi đã thử dưới đây đã hoạt động.

git add --all :/ 
14

git add --allhaygit add -Ahaygit add -A .Các giai đoạn Tất cả

git add .Các giai đoạn mới & Modified Nhưng Không xóa

git add -uCác giai đoạn thay đổi & Deleted Nhưng Without New

git commit -a Phương tiện git add -ugit commit -m "message"

Sau khi viết lệnh này làm theo các bước sau: -

  1. báo chí i
  2. ghi thông điệp của bạn
  3. báo chí esc
  4. báo chí :wq
  5. báo chí nhập

git add <list of files> thêm tập tin cụ thể

git add *.txt thêm tất cả các file txt trong thư mục hiện

git add docs/*/txt thêm tất cả các file txt trong thư mục docs

git add docs/ thêm tất cả các file trong thư mục docs

git add "*.txt" hoặc git add '*.txt' thêm tất cả các tập tin trong toàn bộ dự án

1

Từ tài liệu Git bắt đầu từ phiên bản 2.0:

Để thêm nội dung cho toàn bộ cây, chạy:

git add --all :/ 

hoặc

git add -A :/ 

Để hạn chế các lệnh để thư mục hiện hành, chạy:

git add --all . 

hoặc

git add -A . 
1

Đây là những gì tôi sử dụng cho dàn dựng tất cả các file đã thay đổi dưới một thư mục:

git add . 

Cảm ơn!

+1

Điều này có vẻ chỉ là một lặp lại của [câu trả lời hiện tại này] (https://stackoverflow.com/a/8680056) và [câu trả lời hiện có này] (https://stackoverflow.com/a/3498057). – Pang

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