Advertisement

GitHub with Visual Studio C++ Revisited

Started by July 09, 2017 07:09 PM
7 comments, last by Avalander 7 years, 5 months ago

I have been studying material for git.  What I like is Team Explorer GitHub extension for Visual Studio 2017 C++.  To me it seems very integrated and there is seemingly enough reading material.

I am trying to learn a version control system so that I will be able to work with others and if nothing else Team Explorer is teaching me some git fundamentals.  I believe there are other version control systems other than git and I am wondering if git is a good choice?  Perhaps if GitHub Extensions is not recommended than there is another extension program that will work well that could or could not be Git.  I explain why I prefer this idea of extensions in the following paragraphs.

I am thinking of trying to learn some of the terminal commands too and have installed git command line tools Git Bash and Git CMD.  I did also download the GUI program GitHub Desktop but as mentioned elsewhere there seems to be a lack in documentation and because the GitHub extensions for Visual Studio work with the actual Visual Studio this seems to be a better, more powerful, intuitive, understandable, and integrated tool.  

I also believe that using Visual Studio with the extensions provides an easier experience that can be viewed on the known and understandable usage of code display (i.e. usual tabbed windows.)   I expect merge will be an easier experience and so will histories, and comparisons of code on the known application Visual Studio.  Also I think it will push and pull in an easy graphical manner that is integrated visually well with Visual Studio and I believe it will also do these push and pulls in a proficient manner (the entire project directory structure.)  All around it seems to be a much easier experience.  I  believe the results are much nicer.

I caught on to a mild inkling that this extension might not be the way to go and am writing this post to propose the question, "Is GitHub Extensions for Visual Studio a (hopefully) usable tool?"  I really do enjoy it's interface.

When I try to understand the benefits of terminal command line git I am having trouble visualizing sufficient viewing of code as it is compared/edited.  

Even the GUI GitHub Desktop application did not seem to allow for editing and building and possibly the code needed to be in some local repo, otherwise Visual Studio would allow for pushes directly from where the code is being built to.  Just build the code and push a few buttons all in one unified application. 

There also is a  .visualstudio.com mentioned by Visual Studio that can be either Git or Team Foundation Version Control that might be nice.  Seeing that they are both Visual Studio and perhaps if there is a problem with Team Foundation git becoming outdated this might be a better solution.  Should I explore this option and if so which of the either Git or Team Foundation Version Control is recommended?

I like using git Team Foundation for GitHub and I hope that it is recommended and that it does not get outdated without an update and if it does perhaps its usage with the terminal will suffice?

 

Thank you so much; I want to work with others,

Josheir

15 minutes ago, Josheir said:

"Is GitHub Extensions for Visual Studio a (hopefully) usable tool?"

Yes.

 

19 minutes ago, Josheir said:

When I try to understand the benefits of terminal command line git I am having trouble visualizing sufficient viewing of code as it is compared/edited.  

Don't understand what you are saying there, but in my opinion, you should use the GUI git tools for basic things like pushing and pulling and git shell/command line for more advanced things.

 

Advertisement
Just now, newtechnology said:
Just now, Josheir said:

 

When I try to understand the benefits of terminal command line git I am having trouble visualizing sufficient viewing of code as it is compared/edited.  

 

 

What I am saying is:

When a terminal command line is used how does it show compared source code files  (what does it look like, does it call a program to display these graphically?)   How would they be edited and rebuilt?  When you reconcile a merge with the command line how do you view the two source code files and make changes?

I'm quite pleased that I can use the extension, what do you think about the myproject.visualstudio.com question?  Seeing that I'm using Visual Studio maybe it's worthwhile?

Thank you so much newtechnology,

Josheir

 

31 minutes ago, Josheir said:

When a terminal command line is used how does it show compared source code files  (what does it look like, does it call a program to display these graphically?) How would they be edited and rebuilt?  When you reconcile a merge with the command line how do you view the two source code files and make changes?

Maybe, I don't know, but a quick google search gave me this result -
https://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git

It looks like you use "git mergetool" which will open a GUI that guides you through each conflict/compares two different commits. It also says that you need to have one of those GUI tools installed mentioned inside the link in first answer.

 

31 minutes ago, Josheir said:

what do you think about the myproject.visualstudio.com question?  Seeing that I'm using Visual Studio maybe it's worthwhile?

I haven't used it, so I don't have any opinion. 

A different matter, why on earth would someone use a GUI tool that isn't an extension?  I doesn't really make sense to me without the IDE being involved and if nothing else the debugger?

 

Thanks again,

Josheir

13 minutes ago, Josheir said:

A different matter, why on earth would someone use a GUI tool that isn't an extension?  I doesn't really make sense to me without the IDE being involved and if nothing else the debugger?

Short story: because they prefer that tool instead of whatever extension is available in their editor of choice. Nothing prevents you from using an IDE to work on the code and a different application to sync it with the repository, so never mind the debugger, or anything else, really. I've met lots of developers that work that way.

It also has the advantage that when you switch IDEs you can use the same tool, instead of having to switch to the extension your new IDE offers, which might not even exist. I, for instance, use IntelliJ for Java and VS Code for mostly anything else nowadays, and I've used many other editors in the past few years. I don't even know what the Git extensions for any of them look like because I prefer the Git command line tools, but if I would use a GUI for Git, I'd rather use something like Source Tree than get used to different extensions, some of which probably don't have half the features that Source Tree provides anyway.

Advertisement

Now when using a GUI program/Source Tree the code is built to a folder and directory tree structure that is handled by a GUI program/Source Tree properties?  After this, the GUI program/Source tree would save the history of files in the repo local and remote?  And the GUI program/Source Tree and the remote repo would keep the entire intact directory tree structure of the project and push and pull to it?

 

Or, does the GUI/Source Tree use the new source files in a regular singular directory for storage and if needed to be used by the IDE, one than replaces them into their proper directories for building?  That is, the source files are copy and pasted as needed?

 

Thanks,

Josheir

 

Source Tree (on any other GUI program) doesn't build the code, doesn't alter the folder structure and doesn't copy/paste files around. The "only" thing these programs do is the same as any IDE Git extension: they provide a graphical interface over the Git command line tools. It doesn't matter whether you use your IDE's Git extension, a standalone application like Source Tree or the command line. None of them alters at all your files. All of them sync your files with the repository. The end result will be the same.

You seem to have a lot of questions about how Git works in general, I suggest that you spend 15 minutes learning the basics of it. When you start using it, it will be much easier to wrap your head around all this stuff.

This topic is closed to new replies.

Advertisement