As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I really need to understand how to use git on Windows, but all the guides are too complex. For example, I understand we need to use a command line for git. But when I open a command prompt in Windows using "cmd.exe", where do I go? Do I navigate to the folder where git is installed? What is "git bash"?
Why do all the examples on the Internet have this $ sign in front? How do I add an existing folder to git version control? What does "checkout" mean? I keep hearing about a tool called "powershell". What does it do and how is it different from a DOS prompt?
To use the "git" command I'll probably have to add it to my environment variables so the computer can find it and I get "'git' is not recognized as an internal or external command,
operable program or batch file."
I've never used a version control system for my programming before - I've just saved folders with numbers in front of them so far and I need to use git to publish a project folder I have on Amazon AWS Beanstalk.
I basically just want to add a folder to git and save changes regularly so I have a back up of all the stuff I've done before.
Edit: Is git a single program, or are there many "gits". The first result for "git" in google takes me here: http://git-scm.com/ and yet lots of people talk about something called "msysgit". Is this a different git application?
Edit: I'm looking more at a command line for Windows tutorial. It's here that I'm having the most trouble.
If you want to understand some of the concepts of Git (and only then you can use it effectively), you should read the Pro Git book (available online and for download, or even to buy on paper). This is a really good book, teaching you the very basics you need with good examples, and having sections on more advanced stuff if you want to know more.
The book assumes that you use a Unix-/Linux-like shell (like Bash). Msysgit (a.k.a. "Git for Windows") brings Bash with it, pre-configured for easy use of Git. (And no, there are not many gits, Msysgit is just a bundle that brings some other dependencies of Git which are not usually installed on Windows.)
A shell (also named console or terminal) is in this case a command-line interpreter, just like cmd.exe is on Windows; on the *nix-like systems, there are many more alternatives than on Windows (where one alternative is Powershell), but that's just some side info here.
The $ sign in the examples you see is a typical prompt delimiter on *nix-like shells; on Windows (cmd.exe), you usually have ">" as the delimiter. It has no special meaning and just serves as a delimiter.
What "checkout" means and how you add files and folders to version control, is explained very well in the mentioned book. You also do not need to know anything about version control in general, the book is really written for absolute beginners (in fact, to start using Git it might be an advantage not to know other VCSs).
If you need any help with the stuff that's in the book (or in other tutorials mentioned there, here, or on Google), feel free to drop by the #git IRC channel (more info on the git-scm.com community page, where people can help you immediately and with small questions.
There are a bunch of tutorials that worked for me:
http://www.youtube.com/results?search_query=git+windows&oq=git+windows&gs_l=youtube.3...250.879.0.972.7.6.0.0.0.0.0.0..0.0...0.0...1ac.1.
They show you how to install the various components and then how to use Git with Windows.
Github* has GUI application for Windows (as well as for Mac) which is pretty friendly to novices. You won't get a lot of insight, but this might help you to get up and running.
*git-repository hosting, e.g. place where you can store your repos and sync with them from time to time. It's free and awesome.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 5 years ago.
Improve this question
I have recently switched from MacOSX to Windows, and having had much experience using the OSX Terminal, I've been surprised by how many different CLI's there are in Windows. Specifically, it seems that in addition to cmd.exe and powershell, when I have installed some programs that require CLI usage, they create their own CLI's, i.e. git cmd, git bash, etc.
I'm used to working within one single app (terminal) for all of my projects/tasks, and switching between different CLI's for various tasks is proving annoying and confusing.
I'm not sure I'm asking the right question, so please let me know if you need a different one...: For those of you who have experience working at the command line in windows, is it 'normal' to keep switching between CLI's for different needs, or is it reasonable to get to a point with one CLI (i.e. powershell)? And if so, what should I be looking into?
Thanks in advance!
Standard Cmd/Windows Command windows is basically your backwards compatible shell for Windows that will run everything specifically developed for it, including DOS batch files, etc.
Powershell is a supercharged, newer command window that allows scripting that is compatible with modern system administration for server environments in organizations, similar to vbscript or javascript. Admins can run more compatible/modern scripting than the old DOS Batch files. It's really a new/separate scripting language, while still supporting most basic Windows Cmd window commands.
Git installs Git-cmd, which basically acts like a normal windows command terminal, and Git-Bash launches a unix-style Bash shell, because Git originated on Linux (and for Linux development..) and it's core operations expect a lot of core Linux commands, libraries and/or utilities. So the Git-Bash is part of the standard install, giving you essentially a mini Linux install (or perhaps better phrasing would be a POSIX-compliant one?) and allows you to run a lot of tools/aliases/scripts developed for Git directly on Linux, and should be no different from a Linux Bash shell if you just happen to prefer that to Windows Cmd, with all basic command differences.
So I wouldn't say that there are "so many" different terminals. Unix/Linux has many different flavors as well (C-shell, Bash, Ksh, etc.). Powershell is rarely required for a regular user (per the comments, much more by developers), and Git Bash is unnecessary to run Git.
Isn't more options better - use what you like? :)
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
On the Emacs development list there is long thread (you can find it here) about the "Emacs learning curve" (this is the name of the thread). The participants have various opinions about why some people may not want to use Emacs. If you gave an Emacs a try in the past and then chose an other editor/IDE instead then please describe in your answer here the reasons which made you look for an other tool.
Your answers can give some real world input to the developers on how Emacs should be changed, so that new users can discover its powers and don't give up trying. Thanks.
Because VI is installed on the servers by default, emacs isn't.
I once tried emacs, but I was already pretty familiar with vim, so I didn't really have any incentive to get good at emacs. That's the only reason for me, really.
I tried Emacs for a while and then Vim, and decided to stay with Vim. The reason was that in Emacs you constantly had to use Shift/Ctrl/Alt which was uncomfortable, compared to Vim.
As a novice programmer, I just find vim's use of modes more appealing than the keyboard combinations used in Emacs.
The effectiveness of Autocomplete/Intellisense is very dependent on the language. For instance, with C, I find the autocomplete in Visual Studio, which I use whenever I code in Windows, nearly useless. For languages like C, Perl, Python and the like, I use Emacs.
However, Emacs seems very counterproductive for something like C# or Java because it lacks the extremely useful built-in documentation* and autocomplete functionality of Eclipse and Visual Studio. I know that it has a rudimentary autocomplete for some modes, and very many Emacs Lisp packages available, but I haven't found anything that even comes close to Eclipse or Visual Studio.
*(not counting man pages! I mean something like where Visual Studio puts tooltips with documentation over members, etc.)
Ah, the fresh smell of flame bait.
I like my tools to be as invisible as possible. I am most productive when I can spend all of my time thinking about my problem and not my text editor.
I gave emacs an honest try, but ultimately found other tools to be better for me. I just never found it to be intuitive.
can't stand the whole two sets of key combinations for a command thing in any editor I have seen it in. I tried really really hard to like emacs, but I couldn't get over that. now I use vim, and still wish that emacs wasn't so painful (physically and figeratively) to use
I love emacs and use it every day, but for Java development I usually use Eclipse. I've tried to set up the emacs Java Development Environment and it wasn't able to handle parsing the newer syntax features (annotations, generics) that I use regularly.
For emacs macro recording/playback tasks, I'll open the Java code in emacs, edit and then switch back to Eclipse.
Here are some of the features I can't live without now, which are found in Eclipse with keyboard shortcuts but not available to me in emacs:
Context-sensitive auto-complete.
Fuzzy search for a class name and open the source. Searching by initials for CamelCaseClasses is wonderful.
Who overrides this method?
Who calls this method?
Run or debug just this unit test (just this method).
Warn me about unused imports, deprecated methods, etc.
Hover over a declaration to preview the HTML version of the javadoc.
Reorganize imports, e.g. change import java.util.* to a bunch of imports for just the classes I actually use.
Redeploy this webapp in Tomcat (automatic when you save a file via this plugin)
Top reasons I open emacs:
Record editing macros for complex but repetitive editing.
Edit remote files via tramp.
Edit files when I don't have an Eclipse project defined.
This might sound silly, but I didn't like the font rendering and didn't feel like customizing it.
Second reason is that I thought it was the ugliest program period. It'll give MSBOB a run for its money
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I want to implement an "automatic update" system for a windows application.
Right now I'm semi-manually creating an "appcast" which my program checks, and notifies the user that a new version is available. (I'm using
NSIS for my installers).
Is there software that I can use that will handle the "automatic" part of the updates, perhaps similar to Sparkle on the mac? Any issues/pitfalls that I should be aware of?
There's now a Windows port of Sparkle, see http://winsparkle.org.
There is no solution quite as smooth as Sparkle (that I know of).
If you need an easy means of deployment and updating applications, ClickOnce is an option. Unfortunately, it's inflexible (e.g., no per-machine installation instead of per-user), opaque (you have very little influence and clarity and control over how its deployment actually works) and non-standard (the paths it stores the installed app in are unlike anything else on Windows).
Much closer to what you're asking would be ClickThrough, a side project of WiX, but I'm not sure it's still in development (if it is, they should be clearer about that…) — and it would use MSI in any case, not NSIS.
You're likely best off rolling something on your own. I'd love to see a Sparkle-like project for Windows, but nobody seems to have given it a shot thus far.
Google Chrome auto-update is based on Omaha:
http://code.google.com/p/omaha/
Their overview has a great section on why it was needed:
The browser typically prompted the user with a long series of techy, confusing and scary dialogs all trying to convince the user not to install. Then the user was prompted with a wizard filled with choices that they did not need to or know how to decide amongst. These factors combined to form a bad user experience and large drop-off during the app installation process
It's a good idea to use a third-party solution, cause autoupdates can be a pain, especially with Windows Vista/7 (UAC). For what it's worth, the product my company uses is AutoUpdate+ and it seems to work fairly well.
For .NET, a while back Microsoft Patterns + Practices published the Application Updater Block. This was (to my mind) rather overblown and over-engineered, but did the job quite well.
In essence it used a "stub loader" to check a manifest and a Web service to see if a later version of the program than the one installed was available, then used the BITS background downloader technology to download a new version if one was available on the server.
Once the new version was downloaded and installed (with .NET this is as simple as an xcopy to the relevant folder), the application would update the manifest. The next time the program was loaded the new version would be launched.
While the Patterns + Practices code is .NET specific, there's nothing there that couldn't be copied for a non-.NET application, especially if you have the ability to silently run the install process in the background.
If your application is written in .Net, you could try ClickOnce. However, it's difficult to perform administrative or custom actions during install using this approach.
wyUpdate looks really nice. See video here:
http://wyday.com/wybuild/help/automatic-updates/
For .NET applications you might want to have a look at NetSparkle, a Sparkle variant for .NET programs. It is pretty new (from 2011) and developed actively.
Just came here from an answer to my own question on the same subject - I mention one other updating solution in my question. It uses a stub loader, and an xml file to point to the latest executable.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Is there a good, native Mac tool to view Mercurial repositories, similar to gitnub for Git?
Try the newly released MacHg. It uses the native GUI toolkit for Mac and comes with its own bundled version of Mercurial.
There are many more screenshots available.
I know it's pretty old question, however just for sake of completeness, I think it is still worth to mention here the newest kid on the block called Murky.
I just released a new tool, SourceTree which is native Mac OS X and lets you work with both Mercurial and Git repositories in one application.
A few months back, Dustin Sallings wrote a fork of GitNub that uses Mercurial. It's Leopard-only, but lovely.
On Tiger, the "view" exension mentioned in the other comments works okay, as does hgview.
hg: unknown command 'view'
(Maybe I need to install something - but it's not native, nonetheless).
There is one "native" application out there, but it's not especially user-friendly. In fact, I'd go as far as saying that it's harder to use than the command line.
There was some talk a year or so ago about a version of SCPlugin, which puts badges on icons in the Finder that are under SVN control, and gives you a contextual menu (very much like TortoiseSVN on windows), but that seems to have collapsed.
I have been planning to create a mercurial "clone" of Versions (I asked them if they would consider doing a version of it for DVCS, and they said no).
You can use the one "built in", hg view. You'll need TCL installed though.
From the documentation:
The hgk Tcl script is a direct port of the gitk tool used with git. The hgk.py extension allows hgk to interact with mercurial in a git-like manner.
edit # Matthew: yeah, that's why I linked to the documentation that explains it. You need to enable it in your .hgrc (like the fetch command), and TCL --as mentioned.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 8 years ago.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Improve this question
While I grew up using MSWindows, I transitioned to my much-loved Mac years ago. I don't want to start a flame war here on operating systems. I do, however, want a terminal a litle closer to what I'm used to.
I'm not asking for full POSIX support - I don't have the patience to install Cygwin - but I miss tabbed terminals, being able to easily cut and paste, and my good friends ls, mkdir, rm, et al. (For these last ones, I could always put .bat files on my path, but that's going to get old fast.)
Anybody have a terminal application for MSWindows XP ?
I'm using powershell, its awesome to keep you from going crazy, and it has rm and mkdir and ls.
Tabbed terminals is still not in powershell, and copy paste is similar to cmd, but its way better than cmd.exe.
Some more options:
MSYS: a Minimal SYStem providing a POSIX compatible Bourne shell environment, with a small collection of UNIX command line tools. Primarily developed as a means to execute the configure scripts and Makefiles used to build Open Source software, but also useful as a general purpose command line interface to replace Windows cmd.exe.
GNU utilities for Win32: ports of common GNU utilities to native Win32. In this context, native means the executables do only depend on the Microsoft C-runtime (msvcrt.dll) and not an emulation layer like that provided by Cygwin tools.
PowerCmd is great, with a ton of features including tabs, cut/copy/past, etc.
Console is also a great replacement and is a bit more stripped down than PowerCmd (which can sometimes be a little too feature rich.
Also, with both of these, if you have powershell installed, it is possible to run powershell from withing either.
If you are a bit of a Pythonista then iPython is tough to beat. It has some of the more common shell commands coded in (i.e. ls, pwd, cd etc.), can also run any other shell command by prefixing with '!' (i.e. !latex file.tex) but also is a full Python shell with history, tab-complete, multiline editor support, logging etc. etc.
Moreover, you can install iPython back on your UNIX boxes as well as Windows meaning your environment can follow wherever you go.
There is a new-ish open source Console Emulator called cmder. It looks really nice and has some advanced features that make it nicer to use. You can also use powershell with it. Best of all, it's portable!
I've never found anything I like more than Cygwin.
I also went ahead and installed Cygwin/X w/ Openbox so I can get something like this:
It's got multiple workspaces inside the main Openbox window so I can easily have up to 20 non-overlapping xterms that I can easily cycle through.
I know you said you don't want to install anything, but I strongly suggest you give Services For Unix a shot:
http://technet.microsoft.com/en-us/interopmigration/bb380242.aspx
I use Console with unxutils
Console for the tabs and easier to manage select/copy/paste
unxutils for ls, rm, grep, uniq, sort ... and other goodness.
PowerShell is amazing, however for anything other than the most basic commands there is a learning curve when switching from bash etc.
I went back to using cygwin.
PowerShell is worth looking into.