Χρήση του Git με το Visual Studio

Ως μακροχρόνιος χρήστης του Visual SourceSafe (και πολέμιος) συζητούσα τη μετάβαση στο SVN με έναν συνάδελφο- μου πρότεινε να χρησιμοποιήσω το Git αντί αυτού. Δεδομένου ότι, προφανώς, μπορεί να χρησιμοποιηθεί ως peer-to-peer χωρίς κεντρικό διακομιστή (είμαστε μια ομάδα 3 προγραμματιστών).

Δεν μπόρεσα όμως να βρω τίποτα για εργαλεία που ενσωματώνουν το Git με το Visual Studio - υπάρχει κάτι τέτοιο;

Ποιες είναι οι διαθέσιμες τεχνολογίες για τη χρήση του Git με το Visual Studio; Και τι πρέπει να γνωρίζω για το πώς διαφέρουν πριν ξεκινήσω;

Λύση

Τον Ιανουάριο του 2013, η Microsoft ανακοίνωσε ότι προσθέτει πλήρη υποστήριξη Git σε όλα τα προϊόντα ALM της. Έχουν δημοσιεύσει ένα πρόσθετο για το Visual Studio 2012 που προσθέτει ενσωμάτωση του ελέγχου πηγής Git.

Εναλλακτικά, υπάρχει ένα έργο με την ονομασία Git Extensions που περιλαμβάνει πρόσθετα για το Visual Studio 2005, 2008, 2010 και 2012, καθώς και ενσωμάτωση του Windows Explorer. Ενημερώνεται τακτικά και έχοντας το χρησιμοποιήσει σε μερικά έργα, το βρήκα πολύ χρήσιμο.

Μια άλλη επιλογή είναι το Git Source Control Provider.

Σχόλια (21)

Χρησιμοποιώ το Git με το Visual Studio για τη μεταφορά των Protocol Buffers σε C#. Δεν χρησιμοποιώ το GUI - απλά κρατάω ανοιχτή τη γραμμή εντολών καθώς και το Visual Studio.

Ως επί το πλείστον είναι μια χαρά - το μόνο πρόβλημα είναι όταν θέλετε να μετονομάσετε ένα αρχείο. Τόσο το Git όσο και το Visual Studio θα προτιμούσαν να είναι αυτοί αυτοί που το μετονομάζουν. Νομίζω ότι η μετονομασία στο Visual Studio είναι ο τρόπος που πρέπει να ακολουθήσετε όμως - απλά προσέξτε τι κάνετε στην πλευρά του Git στη συνέχεια. Αν και αυτό ήταν λίγο ενοχλητικό στο παρελθόν, έχω ακούσει ότι στην πραγματικότητα θα πρέπει να είναι αρκετά απρόσκοπτο στην πλευρά του Git, επειδή μπορεί να παρατηρήσει ότι τα περιεχόμενα θα είναι ως επί το πλείστον τα ίδια. (Όχι εντελώς το ίδιο, συνήθως - τείνετε να μετονομάζετε ένα αρχείο όταν μετονομάζετε την κλάση, IME).

Αλλά βασικά - ναι, λειτουργεί μια χαρά. Είμαι αρχάριος στο Git, αλλά μπορώ να το κάνω να κάνει όλα όσα χρειάζομαι. Βεβαιωθείτε ότι έχετε ένα αρχείο git ignore για τα bin και obj, και *.user.

Σχόλια (13)

Βρίσκω ότι το Git, που εργάζεται σε ολόκληρα δέντρα, όπως κάνει, επωφελείται λιγότερο από την ενσωμάτωση του IDE από τα εργαλεία ελέγχου πηγαίου κώδικα που είτε βασίζονται σε αρχεία είτε ακολουθούν ένα μοτίβο checkout-edit-commit. Φυσικά, υπάρχουν περιπτώσεις που μπορεί να είναι ωραίο να κάνετε κλικ σε ένα κουμπί για να κάνετε κάποια εξέταση του ιστορικού, αλλά δεν μου λείπει πολύ αυτό.

Το πραγματικό must-do είναι να γεμίσετε το αρχείο .gitignore με τα πράγματα που δεν θα έπρεπε να βρίσκονται σε ένα κοινόχρηστο αποθετήριο. Το δικό μου περιέχει γενικά (μεταξύ άλλων) τα εξής: - Το αρχείο του Gignorignor περιέχει τα ακόλουθα:

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

αλλά αυτό είναι σε μεγάλο βαθμό προκατειλημμένο σε C++ με ελάχιστη ή καθόλου χρήση οποιασδήποτε λειτουργικότητας τύπου οδηγού κλάσεων.

Το μοτίβο χρήσης μου είναι κάτι σαν το ακόλουθο.

  1. Κώδικας, κώδικας, κώδικας στο Visual Studio.

  2. Όταν είστε ευχαριστημένοι (λογικό ενδιάμεσο σημείο για να δεσμεύσετε τον κώδικα, μεταβείτε στο Git, σταδιοποιήστε τις αλλαγές και επανεξετάστε τις διαφορές. Αν κάτι είναι προφανώς λάθος, γυρίστε πίσω στο Visual Studio και διορθώστε το, αλλιώς κάντε commit.

Οποιαδήποτε συγχώνευση, διακλάδωση, επαναφορά ή άλλα φανταχτερά πράγματα SCM είναι εύκολο να γίνουν στο Git από τη γραμμή εντολών. Το Visual Studio είναι συνήθως αρκετά ικανοποιημένο με τα πράγματα που αλλάζουν κάτω από αυτό, αν και μπορεί μερικές φορές να χρειαστεί να επαναφορτώσει κάποια έργα αν έχετε αλλάξει σημαντικά τα αρχεία του έργου.

Θεωρώ ότι η χρησιμότητα του Git αντισταθμίζει οποιαδήποτε μικρή ενόχληση από τη μη πλήρη ενσωμάτωση του IDE, αλλά είναι, σε κάποιο βαθμό, θέμα γούστου.

Σχόλια (10)