2010-09-30 4 views
15

Tôi thực sự không thích khu vực dàn dựng git, nó chỉ làm cho cuộc sống của tôi không cần thiết gây nhầm lẫn.Vô hiệu hóa khu vực dàn dựng git

Có thể tắt tính năng này để tất cả các tệp đã chỉnh sửa và mới trong một ngữ cảnh không? Vì vậy, git diff cho thấy sự khác biệt giữa kho lưu trữ và thư mục làm việc của tôi (và tôi không phải gõ git diff --cached) và để git ci kiểm tra toàn bộ bản sao làm việc của tôi (không chỉ là phần được dàn dựng).

Nếu không, lựa chọn thay thế (như thiết lập cofigurations) để có vẻ như tôi không có dàn dựng cũng sẽ tuyệt vời.

Tôi không có tùy chọn thay đổi sang DVCS khác và tôi không muốn học cách thích khu vực dàn dựng. Xin đừng gửi cho thấy những :(

Cảm ơn, -Shawn

PS: Tôi hỏi này về superuser.com, https://superuser.com/questions/192022/disable-git-staging-area, nhưng diễn đàn mà dường như đã nhiều ít được đăng (chỉ 118 tagged git so với 4448 đây)

+0

Tôi chưa bao giờ xóa phân đoạn ngay cả khi có thể, nhưng tôi đã bình chọn cho bạn chỉ để xem liệu điều đó có thể xảy ra hay không. – matpie

+4

Là một nhà phát triển là tất cả về học tập. Tôi thậm chí không thể tưởng tượng tại sao bạn muốn bỏ qua các công cụ của bạn và không học cách sử dụng những điểm mạnh lớn nhất của họ. Bạn cũng phản đối việc học các API mới hoặc các mẫu thiết kế mới? :/ – Daenyth

+7

@Denyeny: Tôi không có vấn đề gì với việc học các công cụ mới. Tôi hiểu làm thế nào điều này * có thể * là một lựa chọn hữu ích cho một số người tại một số lần. Tôi khá chắc chắn rằng trong tình hình của tôi nó không phải là hữu ích. Tôi nghĩ rằng nó là ngớ ngẩn mà git buộc bạn phải sử dụng một số công nghệ (như khu vực dàn dựng) thay vì chỉ đơn giản là * cho phép * bạn sử dụng chúng. Đôi khi bạn cần một tuốc nơ vít và đôi khi là một cái búa, nhưng tôi sẽ tức giận nếu tuốc nơ vít của tôi có một cái búa được xây dựng trong đó tôi phải di chuyển xung quanh chỉ để tôi có thể tháo nắm cửa của tôi. – sligocki

Trả lời

1

Bạn chỉ có thể sử dụng git commit -a cam kết tất cả các thay đổi/tập tin đã xóa. Bạn vẫn sẽ phải thêm các tập tin untracked tự nghĩ.

tôi đến từ Subversion và đã nhầm lẫn bởi khu vực dàn lúc đầu quá. Nhưng bạn sẽ thấy nó rất hữu ích. những thay đổi bạn đã thử nghiệm nhưng thực hiện nhiều thay đổi hơn để phá vỡ bản dựng của bạn, bạn có thể đặt lại về các thay đổi theo giai đoạn của bạn.

+1

Vâng, tôi luôn sử dụng git ci -a những ngày này, nhưng (không may) tôi không thể đặt ci = commit -a trong rc vì sau đó tôi không thể cam kết chỉ một tệp (qua git ci foo) vì nó phàn nàn về xung đột giữa - một danh sách tệp rõ ràng. – sligocki

1

Khu vực dàn dựng là (IMO) là một trong những điểm mạnh lớn nhất của Git và thực sự cho thấy nó khác với bất kỳ DVCS nào khác ngoài kia.

Bạn có thể sử dụng

git commit -a 

để tự động thêm các tập tin đã thay đổi. Đối với các tập tin không được theo dõi, bạn là của riêng bạn mặc dù. Thực hành git add . && git commit.

Nếu bạn không thích nó, hãy sử dụng VCS khác. Buộc phải sử dụng kho git? Xem một số plugin có sẵn tương thích, chẳng hạn như hg-git.


Cá nhân tôi sẽ học cách chơi các ưu điểm của git thay vì đánh nhau. Hãy tưởng tượng bạn đang ở giữa một nhánh lớn lộn xộn, nhưng bạn cần phải cam kết một vài thay đổi có chọn lọc cho sản xuất. Boom, git add [files] và sau đó cam kết và đẩy. Quay trở lại làm việc mà không làm rối tung bất cứ thứ gì khác. Có vô số ví dụ khác, nhưng đó có lẽ là dễ hiểu nhất.

+1

Không phải là một tùy chọn để sử dụng khác. Tôi bị mắc kẹt với công cụ này. – sligocki

+0

@sligocki: Bạn có thể sử dụng một số tùy chọn thay vì git để mô phỏng kho lưu trữ git. Xem [hg-git] (http://hg-git.github.com/). –

+3

không, tôi không thể. Tôi thực sự mệt mỏi với những người nói điều này! Tôi đang sử dụng các công cụ được xây dựng trên đầu trang của git, tôi không có tùy chọn để sử dụng DVCS khác hoặc các công cụ này sẽ không hoạt động và toàn bộ lợi thế của việc sử dụng DVCS ở nơi đầu tiên sẽ biến mất. – sligocki

6

No. Bạn học cách yêu thích nó.

Ghi chú quan trọng hơn, git add -A; git commit có lẽ là bạn của bạn. Bằng cách đó, bạn tránh hầu hết các tương tác với (và lợi ích của) khu vực dàn dựng.

git add -A mạnh hơn bình thường git commit -a. Nó sẽ tìm thấy các tập tin mới cũng như dàn dựng nội dung sửa đổi và loại bỏ các tập tin không còn trong cây làm việc.

+0

Tại sao chúng ta nên học cách yêu thích nó nếu có thể tự động hóa tất cả các thủ tục dàn dựng thủ công? –

+0

@VitaliPom Bởi vì nó thực sự hữu ích, tất nhiên. –

+2

Hoàn toàn là một vấn đề của ý kiến ​​rằng bạn "học cách yêu nó". Khu vực dàn dựng chỉ đơn giản là cản trở các trường hợp sử dụng thông thường của tôi. –

4

Bí danh là bạn của bạn.

Ví dụ, bạn có thể tạo một lệnh diff mà những gì bạn muốn với gõ tối thiểu: trong .gitconfig bạn đặt

[alias] 
     di = diff HEAD 
     co = commit -a 

Sau đó bạn có thể chỉ cần làm git di và bạn nhận diff của riêng bạn, hoặc git co và nhận được lệnh cam kết cá nhân của riêng bạn.

+1

nhưng sau đó git di sẽ không hiển thị cho tôi những gì là trong thư mục làm việc của tôi, tôi muốn git diff để cho tôi thấy sự thay đổi sẽ được cam kết khi tôi cam kết -a. – sligocki

+1

Ngoài ra, tôi không thể thiết lập co = commit -a trong rc của tôi bởi vì sau đó tôi không thể cam kết chỉ có một tập tin (thông qua git ci foo) bởi vì nó phàn nàn về xung đột giữa -a và danh sách tập tin rõ ràng. – sligocki

+0

@sligocki: Tôi đã thay đổi bí danh để 'git di' cung cấp cho bạn những gì bạn đã chỉ ra trong bình luận đầu tiên của mình. Đối với bình luận thứ 2 của bạn: bạn có thể commit một file đơn với 'git commit foo' thông thường. – EOL

0

và tôi không muốn học cách thích khu vực dàn dựng. Xin đừng gửi cho thấy những :(

Giống như tất cả những người khác. Tôi sẽ đề nghị bạn học cách thích khu vực dàn. Nó thực sự rất hữu ích mặc dù 90% thời gian bạn sẽ

Nếu hiện tại bạn không thấy nó hữu ích thì tôi nghĩ bạn đang nghĩ về sai lầm. Bạn vẫn đang suy nghĩ về các tệp đơn lẻ hoặc mọi thứ cùng một lúc. là mỗi tính năng/sửa lỗi và các tính năng/bản sửa lỗi thường được trải rộng trên nhiều tệp. Bạn nên nhóm các thay đổi có liên quan thành một lần commit duy nhất. hữu ích.

Tôi biết đây không phải là những gì bạn muốn nghe nhưng thực sự, thời điểm bạn ngừng chiến đấu với công cụ và tìm hiểu để sống với nó là thời điểm nó dừng lại là "đau đớn" để sử dụng công cụ.

+0

Cảm ơn slebetman, tôi thấy lý do tại sao khu vực dàn dựng có thể hữu ích. Nó không phải là thực sự đau đớn cho tôi ngay bây giờ, chỉ làm cho mọi thứ phức tạp hơn, mỗi một lần và một thời gian tôi sẽ chạy git diff và bị nhầm lẫn lý do tại sao một số các tập tin không có. Trong tình huống của tôi, tôi đang thực sự đẩy git vào một repo thực sự, vì vậy các bản sửa đổi git chỉ dành cho tôi và vì vậy có thể thô sơ hơn nhiều. Vì vậy, tôi không thấy mình muốn tạo lịch sử sửa đổi, chỉ cần sử dụng nó để hoàn nguyên về trạng thái làm việc trước đó hoặc thử các đường phát triển mới. – sligocki

+0

Thay vì làm điều đó, hãy thử thay vì thực hiện các thay đổi của bạn, và sau đó sử dụng git diff chỉ để xem "Ok, tôi chưa thêm gì vào cam kết hiện tại". Nếu bạn thấy rằng sự khác biệt là những gì bạn muốn thêm, sau đó thêm nó. Nếu không, hãy xóa hoặc bỏ qua nó. Tiếp tục làm việc cho đến khi git diff hiển thị không có thay đổi, sau đó bạn sẽ sẵn sàng cam kết thay đổi của mình. – Arafangion