Sử dụng Git với Visual Studio [đã đóng]


1455

Là một người dùng Visual SourceSafe lâu năm (và ghét), tôi đã thảo luận về việc chuyển sang SVN với một đồng nghiệp; thay vào đó , ông đề nghị sử dụng Git . Vì, rõ ràng, nó có thể được sử dụng như một máy ngang hàng mà không cần máy chủ trung tâm (chúng tôi là nhóm 3 nhà phát triển).

Tuy nhiên, tôi chưa thể tìm thấy bất cứ điều gì về các công cụ tích hợp Git với Visual Studio - liệu điều đó có tồn tại không?

Các công nghệ có sẵn để sử dụng Git với Visual Studio là gì? Và tôi cần biết gì về sự khác biệt của chúng trước khi tôi bắt đầu?


4
Tôi vừa thêm Nhà cung cấp kiểm soát nguồn Git cho VS 2010, vì vậy nó vẫn hoạt động.
Wade73

3
Kiểm này hướng dẫn từ đội VS . Bản cập nhật tiếp theo; Bản cập nhật 2 cho VS 2012 đang đến vào bất kỳ ngày nào. Bạn cũng có thể tải xuống bản xem trước công nghệ cộng đồng (CTP) cho VS2012 từ đây . Ngoài ra, nếu bạn tham gia CMMI, Agile, Scrum 1/2, v.v., bạn có thể đăng ký tài khoản miễn phí (cả trường hợp đám mây công khai hoặc riêng tư) và mời các thành viên (đồng đội, khách hàng) tham gia dự án trên TFS.visualstudio
Annie

3
Tôi đã sử dụng Visual Studio và git được hai năm rồi. Tôi muốn nói rằng giải pháp tốt nhất cho vấn đề này là chỉ sử dụng một ứng dụng kiểm soát nguồn riêng biệt như Atlassians SourceTree. Nó miễn phí, dễ cài đặt, có GUI tốt và thân thiện với người dùng, bạn có thể duyệt nhiều kho lưu trữ (còn gọi là các dự án khác nhau) giống như bạn duyệt web trong Chrome và quan trọng nhất là hỗ trợ nhiều hệ thống kiểm soát nguồn. Hãy thử một lần! Bạn sẽ không thất vọng, tôi đảm bảo với bạn!
Fazi

2
Git được hỗ trợ tự nhiên bắt đầu từ Visual Studio 2013
rustyx

17
Tôi thích cách 1342 người đã nêu lên câu hỏi này và một số kẻ ngốc đến và đóng nó bằng mọi cách. Chúc bạn thành công StackOver Scratchow .... Có vấn đề gì nếu không phù hợp với tiêu chí của SO nếu nhiều người thấy nó rất hữu ích. Không phải mục đích của trang web này là hữu ích sao?
thebunnyrules

Câu trả lời:


1070

Vào tháng 1 năm 2013, Microsoft đã thông báo rằng họ đang bổ sung hỗ trợ Git đầy đủ vào tất cả các sản phẩm ALM của họ. Họ đã xuất bản một plugin cho Visual Studio 2012 có thêm tích hợp kiểm soát nguồn Git.

Ngoài ra, có một dự án có tên Git Tiện ích mở rộng bao gồm bổ trợ cho Visual Studio 2005, 2008, 2010 và 2012, cũng như tích hợp Windows Explorer. Nó được cập nhật thường xuyên và đã sử dụng nó trong một vài dự án, tôi thấy nó rất hữu ích.

Một tùy chọn khác là Nhà cung cấp kiểm soát nguồn Git .


9
ted.dennison: Theo trang này ( code.google.com/p/gitextensions ), đây là plugin VS 2005/2008.
Jonas

10
Để tự sửa lỗi - nguồn được lưu trữ trên Github, MSI không.
Chris S

5
Tôi đã cài đặt tiện ích mở rộng git, nó hoạt động "bởi" studio trực quan và không được tích hợp đầy đủ. Có giải pháp nào cho phép đăng ký - trả phòng từ Solution Explorer không?
Dani

4
Dani, một người nào đó đang làm việc trên một nhà cung cấp kiểm soát nguồn Git cho VS dường như cung cấp mức độ tích hợp sâu hơn một chút: gitscc.codeplex.com
Jon Rimmer

3
Có lựa chọn nào cho VS 2012 không?
Động cơ Trái đất

202

Tôi sử dụng Git với Visual Studio cho cổng Bộ đệm giao thức đến C #. Tôi không sử dụng GUI - Tôi chỉ mở một dòng lệnh cũng như Visual Studio.

Đối với hầu hết các phần đều ổn - vấn đề duy nhất là khi bạn muốn đổi tên một tệp. Cả Git và Visual Studio đều muốn thay họ là người đổi tên nó. Tôi nghĩ rằng đổi tên nó trong Visual Studio là cách tốt nhất - hãy cẩn thận với những gì bạn làm ở phía Git sau đó. Mặc dù điều này đã có một chút đau đớn trong quá khứ, tôi đã nghe nói rằng nó thực sự sẽ khá liền mạch ở phía Git, bởi vì nó có thể nhận thấy rằng nội dung sẽ gần như giống nhau. (Không hoàn toàn giống nhau, thông thường - bạn có xu hướng đổi tên một tệp khi bạn đổi tên lớp, IME.)

Nhưng về cơ bản - vâng, nó hoạt động tốt. Tôi là người mới chơi Git, nhưng tôi có thể khiến nó làm mọi thứ tôi cần. Đảm bảo rằng bạn có tệp bỏ qua git cho bin và obj và * .user.


35
git sẽ ổn với việc thực hiện đổi tên. Để theo dõi đổi tên tốt trong nhật ký git, bạn chỉ cần chắc chắn rằng bạn thực hiện phần 'loại bỏ' thay đổi trong cùng một cam kết như phần 'thêm'. git add -A làm cho điều này trở nên dễ dàng nếu .gitignore của bạn được cập nhật.
CB Bailey

40
Tôi cũng là một người mới, và nói cho bạn biết sự thật tôi thích sử dụng nó từ dòng lệnh. Tôi sẽ hơi sợ khi xử lý sức mạnh git cho GUI cố gắng "thông minh" và thực hiện một số "phép thuật" sau lưng tôi.
hasen

1
Cảm ơn vì lời khuyên. Tôi mới chuyển đến git (và github) và sẽ không bao giờ nhìn lại. Khách hàng của tôi sử dụng lực lượng (ugh!). Vì vậy, kế hoạch của tôi là thực hiện một kiểm tra từ lực lượng, thực hiện công việc của tôi với git, sau đó kiểm tra lại.
Mark Beckwith

7
@CallMeLaNN: Bạn đang đưa ra một giả định lớn ở đó, về những người mới làm Git gặp khó khăn khi sử dụng dòng lệnh. Hãy xem bình luận của hasan j từ tháng 4 năm 2009.
Jon Skeet

Tôi thường thêm .user, * .suo, bin, obj,. và _ * vào danh sách bỏ qua của tôi ... nếu có một trong những điều tôi muốn thêm ở trên, tôi vẫn có thể thêm nó bằng tay.
Tracker1

93

Nhà cung cấp kiểm soát nguồn Git là trình cắm mới tích hợp Git với Visual Studio.


Có bất kỳ cơ hội để làm cho nó hoạt động trong năm 2005?
Nghệ thuật

3
Tốt. TBH giao diện đồ họa này chính xác là những gì tôi đang tìm kiếm khi tôi tìm kiếm GUI cho git trong VS 2010. Cảm ơn bạn đã đăng bài này. Các câu trả lời khác không phải là những gì tôi cần. Họ kém so với VisualSVN.
JDPeckham

1
Tôi khuyên bạn nên xem phần đánh giá trong marketplace.visualstudio.com / trước khi quyết định cài đặt nó.
QMaster

53

Tôi đã xem xét điều này một chút tại nơi làm việc (cả với Subversion và Git). Visual Studio thực sự có API tích hợp kiểm soát nguồn để cho phép bạn tích hợp các giải pháp kiểm soát nguồn của bên thứ ba vào Visual Studio. Tuy nhiên, hầu hết mọi người không bận tâm với nó vì một vài lý do.

Đầu tiên là API khá nhiều giả định rằng bạn đang sử dụng quy trình kiểm tra bị khóa. Có rất nhiều móc nối trong đó rất tốn kém để thực hiện, hoặc chỉ đơn giản là không có ý nghĩa khi bạn đang sử dụng quy trình hợp nhất chỉnh sửa hiện đại hơn.

Thứ hai (có liên quan) là khi bạn đang sử dụng quy trình hợp nhất chỉnh sửa mà cả Subversion và Git khuyến khích, bạn không thực sự cần tích hợp Visual Studio. Điều giết người chính về sự tích hợp của SourceSafe với Visual Studio là bạn (và biên tập viên) có thể biết nhanh những tập tin bạn sở hữu, phải được kiểm tra trước khi bạn có thể chỉnh sửa và bạn không thể kiểm tra ngay cả khi bạn muốn. Sau đó, nó có thể giúp bạn làm bất cứ điều gì voodoo kiểm soát sửa đổi mà bạn cần làm khi bạn muốn chỉnh sửa một tập tin. Không ai trong số đó thậm chí là một phần của quy trình Git điển hình.

Khi bạn đang sử dụng Git (hoặc SVN thường), tất cả các tương tác kiểm soát sửa đổi của bạn đều diễn ra trước phiên phát triển của bạn hoặc sau đó (một khi bạn đã làm mọi thứ và được kiểm tra). Tại thời điểm đó, việc sử dụng một công cụ khác thực sự không quá khó khăn. Bạn không phải liên tục phải chuyển đổi qua lại.


22
Các bạn có bao giờ di chuyển hoặc đổi tên tập tin / thư mục không? Tôi đã bắt đầu sử dụng VisualSVN vài tháng trước và tôi không bao giờ có thể quay lại.
JohnOpincar

10
@TED ​​Đối với tôi điều này có nghĩa là sau một quá trình phát triển dài, bạn phải nhớ lý do cho mỗi lần thay đổi tệp cho đến khi bạn đăng ký. Nếu tôi đang làm việc gì đó và thấy một cái gì đó cần được sửa trong một khu vực không liên quan tôi muốn kiểm tra, sửa chữa và kiểm tra khi biết rằng tôi có thể loại bỏ sự thay đổi đó khỏi bộ nhớ của mình. Tôi muốn làm điều này từ bên trong VS
Peter M

4
Plugin Git Tiện ích mở rộng Visual Studio không cố gắng tự gắn vào API kiểm soát nguồn kiểm tra khóa bị khóa cũ mà Microsoft đã cung cấp. Nó rất phù hợp với quy trình hợp nhất chỉnh sửa và về cơ bản chỉ cần thêm cam kết / đẩy / kéo và lịch sử tệp ngay trong IDE. Có lịch sử tập tin trên menu ngữ cảnh là vô cùng hữu ích!
Jacob Stanley

3
Tôi không đồng ý chủ yếu vì phải ra khỏi phòng thu trực quan để kiểm tra khuyến khích thời gian lâu hơn giữa các lần đăng ký. Quá nhiều người đã thanh toán vào đầu ngày và không đăng ký cho đến khi kết thúc (hoặc những ngày tồi tệ hơn sau đó). Tích hợp với studio trực quan cho phép bạn liên tục giữ quyền kiểm soát nguồn trong quy trình làm việc của mình.
Chris McGrath

8
Tích hợp kiểm soát nguồn Visual Studio kể từ VS2005 (VS2003?) Không đặc biệt nghiêng về mô hình kiểm tra kiểm tra. Nhìn vào AnkhSVN chẳng hạn. Tôi thích tích hợp VS, vì sau đó đổi tên, vv mượt mà hơn.
Roger Lipscombe

38

Tôi thấy rằng Git, hoạt động trên toàn bộ cây như hiện tại, được hưởng lợi ít hơn từ tích hợp IDE so với các công cụ kiểm soát nguồn dựa trên tệp hoặc theo mô hình kiểm tra-chỉnh sửa-cam kết. Tất nhiên có những trường hợp có thể tốt khi nhấp vào nút để thực hiện kiểm tra lịch sử, nhưng tôi không bỏ lỡ điều đó rất nhiều.

Việc cần làm thực sự là làm cho tệp .gitignore của bạn có đầy đủ những thứ không nên có trong kho lưu trữ được chia sẻ. Của tôi thường chứa (trong số những thứ khác) như sau:

*.vcproj.*.user
*.ncb
*.aps
*.suo

nhưng điều này rất thiên về C ++ với rất ít hoặc không sử dụng bất kỳ chức năng kiểu trình hướng dẫn lớp nào.

Mô hình sử dụng của tôi là một cái gì đó như sau.

  1. Mã, mã, mã trong Visual Studio.

  2. Khi hạnh phúc (điểm trung gian hợp lý để xác nhận mã, hãy chuyển sang Git, thay đổi giai đoạn và xem xét khác. Nếu bất cứ điều gì rõ ràng là sai hãy quay lại Visual Studio và sửa, nếu không thì cam kết.

Bất kỳ hợp nhất, nhánh, rebase hoặc các công cụ SCM ưa thích khác đều dễ dàng thực hiện trong Git từ dấu nhắc lệnh. Visual Studio thường khá hài lòng với những thứ thay đổi theo nó, mặc dù đôi khi nó có thể cần tải lại một số dự án nếu bạn đã thay đổi đáng kể các tệp dự án.

Tôi thấy rằng tính hữu dụng của Git lớn hơn bất kỳ sự bất tiện nhỏ nào khi không tích hợp IDE đầy đủ nhưng ở một chừng mực nào đó, đó là vấn đề của hương vị.


11
Bạn không, bạn chắc chắn nên có tệp dự án của bạn dưới sự kiểm soát phiên bản.
CB Bailey

1
Điều này rất quan trọng - phục hồi từ việc quên bao gồm một cái gì đó trong .gitignore một khi bạn đã bắt đầu cam kết và phân nhánh là đau đớn, để nói rằng ít nhất ...
Stewol

3
@Benjol: Không nên quá đau đớn. Bạn chỉ cần git rm <file>echo <file> >>.gitignore; git add .gitignoretrên các mẹo của các chi nhánh hoạt động của bạn. Khi bạn đã cam kết thay đổi một lần, bạn luôn có thể chọn bản sửa lỗi cho các nhánh khác.
CB Bailey

1
@Charles Bailey, hãy xem những cuộc phiêu lưu của tôi trong câu hỏi này: stackoverflow.com/questions/1887049/
mẹo

9
@Mike Brown: Anh ta đang bỏ qua các tệp * .user, là các cài đặt dành riêng cho người dùng.
Srdjan Jovcic


28

Cũng đừng bỏ lỡ TortoiseGit ... https://tortoisegit.org/


Vâng, đây là một giao diện người dùng tốt, nhưng không, nó không tích hợp với Visual Studio.
Scott Rippey

3
Nhà cung cấp kiểm soát nguồn Git thêm các lệnh TortoiseGit vào menu ngữ cảnh trong Visual Studio.
HotN

26

Có một công cụ Visual Studio cho Git của Microsoft. Nó chỉ hỗ trợ Visual Studio 2012 (cập nhật 2).


cho visual studio 2012, đây là câu trả lời tốt nhất. Có vẻ như họ đã nỗ lực rất nhiều trong việc thực hiện, và theo kinh nghiệm của tôi, nó hoạt động như mong đợi!
RoelF

2
Tôi chưa thể tìm ra cách định cấu hình "Công cụ Visual Studio cho Git" của Microsoft để sử dụng repo Github riêng tư. Bạn đã thấy bất kỳ tài liệu hoặc hướng dẫn về điều đó?
golliher

Tôi khuyên bạn nên xem phần đánh giá trong marketplace.visualstudio.com / trước khi quyết định cài đặt nó.
QMaster


18

Hỗ trợ Git được thực hiện bởi Microsoft trong Visual Studio chỉ đủ tốt cho công việc cơ bản (cam kết / tìm nạp / hợp nhất và đẩy). Lời khuyên của tôi là chỉ cần tránh nó ...

Tôi rất thích GitExtensions (hoặc theo tỷ lệ ít hơn SourceTree ). Bởi vì nhìn thấy DAG đối với tôi thực sự quan trọng để hiểu cách Git hoạt động. Và bạn biết nhiều hơn về những gì những người đóng góp khác cho dự án của bạn đã làm!

Trong Visual Studio, bạn không thể nhanh chóng thấy sự khác biệt giữa các tệp hoặc cam kết, cũng không (thêm vào chỉ mục) và chỉ cam kết một phần sửa đổi. Duyệt lịch sử của bạn cũng không tốt ... Tất cả kết thúc trong một trải nghiệm đau đớn!

Và, ví dụ, GitExtensions được đóng gói với các plugin thú vị: tìm nạp nền, GitFlow, ... và bây giờ, tích hợp liên tục !

Đối với người dùng Visual Studio 2015 , Git đang hình thành nếu bạn cài đặt tiện ích mở rộng GitHub. Nhưng một công cụ bên ngoài vẫn tốt hơn ;-)


GitExtensions có làm việc cho bạn trong năm 2015 không? menu không hoạt động với tôi github.com/gitextensions/gitextensions/issues/2815
raklos

15

TortoiseGit đã trưởng thành và tôi khuyên bạn nên sử dụng nó đặc biệt là nếu bạn đã sử dụng TortoiseSVN.




10

Như được đề cập bởi Jon Rimmer, bạn có thể sử dụng GitExtensions. GitExtensions hoạt động trong Visual Studio 2005 và Visual Studio 2008, nó cũng hoạt động trong Visual Studio 2010 nếu bạn sao chép và định cấu hình tệp .Addin theo cách thủ công.


tốt một. Tôi tự hỏi ai đang thử nghiệm và phê duyệt giao diện người dùng ... tất cả các tin nhắn đều rất khó hiểu ... tôi chỉ đoán là họ đã vội vàng đưa nó ra và xem những gì / tại sao người dùng phàn nàn.
ramnz

10

Hiện tại có 2 tùy chọn cho Kiểm soát nguồn Git trong Visual Studio (2010 và 12):

  1. Nhà cung cấp kiểm soát nguồn Git
  2. Nhà cung cấp Microsoft Git

Tôi đã thử cả hai và đã tìm thấy người đầu tiên trưởng thành hơn, và có nhiều tính năng hơn. Ví dụ, nó chơi độc đáo với cả phần mở rộng git và git rùa, và thậm chí còn phơi bày các tính năng của chúng.

Lưu ý : Bất kỳ tiện ích mở rộng nào bạn sử dụng, hãy đảm bảo rằng bạn kích hoạt nó Tools -> Options -> Source control -> Plugin Selectionđể nó hoạt động.


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.