Setting up a Msysgit Server with copSSH on Windows

1/10/2009

Tim DavisOK – let me start this post by saying this is absolutely NOT for the faint hearted. This was a serious – and I re-emphasize this – serious pain in the arse to the do. Having almost no experience in Linux before – copSSH emulates the Linux environment through cygwin – let me tell you that this process was not easy. If you are an expert and thought – “pfftt, this process was easy” – I will reserve my language and ask you to kindly move along :) For those of you with no clue at all (ala me) – then this post is for you.

Firstly, full credit goes to the fantastic team at msysgit – these guys rock for porting GIT to Windows – GIT is an unreal DVCS and so I cant thank them enough for making this all possible. Secondly, full credit goes out to the guys at StackOverflow – unreal website and lots of fantastic users that have helped answer questions which have allowed the making of this guide possible. Please feel free to ask me questions, but I strongly recommend StackOverflow as your first port-of-call as I may take longer in getting back to you than they will. Also, this instruction guide is how I have set it up – if you start changing things – may the force be with you!

Finally, if this process worked for you – please leave a comment telling me (and everyone else) that it works and share this article around. It took me quite a bit of time to figure all this out on Windows – not to mention the time to type up this guide – so I would appreciate a link back ;)

Update 1: A free solution is called, GitStack.com, which is good but uses Apache and doesn’t use SSH keys – instead only providing password support (which might be fine for some people).

Update 2: You can still use copSSH 3.0.3 as it’s free.

Pre-setup

  1. Download copSSH [SourceForge Link]
  2. Download msysgit
  3. Download TortiseGIT
  4. Download PuTTY Installer
  5. *Optional Download Git Install Guide (this guide as a Printable PDF)

Step 1 – Installing copSSH

  1. You’ve got copSSH – now go on and install it.
  2. Install copSSH into the c:\SSH directory
  3. Write down the SvcCOPSSH password – you will probably never need it – but just in case.
  4. It will install and create a bunch of directories – (Aside: I have found that you don’t need to create a password on your Windows User account – it’s not necessary if you use the settings I have later)
  5. Goto Start –> Programs –> copSSH –> Activate a User
  6. You can only activate existing users on Windows – so you can choose Your Own Account or Administrator (or indeed another account but I’ve used the primary)
  7. Uncheck the option – Create keys for public key authentication – we will do this ourselves.
  8. Finish the Installation Process.

Step 2 – Setup copSSH

  1. Open Windows Explorer – go into C:\SSH\etc and open BOTH your ssh_config and sshd_config in WordPad (Aside: Note – one has a “d” and one doesn’t – it’s an important difference)
  2. ssh_config – Delete the # (pound) key next to “Port” and change this to something like 4837 (or whatever Port you want to use)
  3. sshd_config – Delete the # (pound) key next to “Port” and change this the same as that in ssh_config – i.e. in this case 4837
  4. sshd_config – Delete the # (pound) key next to MaxAuthTries and make this 2
  5. sshd_config – Delete the # (pound) key next to RSAAuthentication & also next to the PubkeyAuthentication
  6. sshd_config – Delete the # (pound) key next to PasswordAuthentication and make this no.
  7. Save all the changes to ssh_config and sshd_config.
  8. Open your Router IP Address (or however you access your router) and open the Port you are using – i.e. in this case 4837 (Aside: If you don’t know it – c:\cmd –> ipconfig /all – will tell you)
  9. Save these Port changes in your router (& restart your router if needed)
  10. Open Windows Firewall with Advanced Security Settings and create a rule which allows the Port you set in both ssh_config and sshd_config – in this case 4837 (also do this in your Firewall if your firewall requires it – maybe/maybe not)
  11. Restart Your PC.

Step 3 – Installing PuTTY

  1. Welcome back after the Restart – now Open the PuTTY Installer you downloaded.
  2. Install Everything
  3. Navigate to the Putty Installed Directory (usually c:\Program Files\PuTTY)
  4. Open PuttyGen.exe
  5. Enter in Number of bits in a generated key: 4096
  6. Move your mouse around randomly as instructed until finished – don’t close PuttyGen!
  7. Open Windows Explorer and Navigate to c:\SSH\Home\<user>\.ssh\ – i.e in our case c:\SSH\Home\Administrator\.ssh\ (Aside: If .ssh doesn’t exist – you can only create it via a cmd.exe prompt – open cmd.exe and enter cd C:\SSH\Home\<user>\ then enter mkdir .ssh)
  8. Create a new file called authorized_keys (Aside: if it’s not there – Right Click – New Text Document – Delete everything (including the *.txt) – name the file authorized_keys)
  9. Open PuttyGen and Copy/Paste the Public Key for pasting into OpenSSH authorized_keys files code.
  10. Still in PuttyGen – save the Private Key as private_key.ppk in the same c:\SSH\Home\<user>\.ssh\ – i.e. i.e in our case c:\SSH\Home\Administrator\.ssh\private_key.ppk
  11. You should now have 2 files in this directory – authorized_keys and private_key.ppk
  12. To test our connection – load up putty.exe from the same c:\Program Files\PuTTY
  13. Enter your IP Address and Port in the Session window (Aside: If you don’t know your IP – c:\cmd –> ipconfig /all – will tell you)
  14. Click on SSH in the left hand menu and select – Auth – then navigate to your private key c:\SSH\Home\<user>\.ssh\private_key.ppk
  15. Hit Open and a terminal will open asking you to Enter Login Name: – enter your <user> – i.e. in our case Administrator
  16. You may get a message about Accept Public Key – type yes & if you get logged in great!

Step 4 – Installing msysgit

  1. Open the msysgit installer package.
  2. Ensure its C:\Program Files\Git (x32 bit) or C:\Program Files (x86)\Git (x64 bit)
  3. Set Use Git Bash Only (Aside: I wanted to only Use Git Bash console but if you want to Run Git from the Windows Command Prompt then you have to select this option – I would recommend only options 1 & 2 unless you really know what you are doing)
  4. Select Use (Tortoise)Plink available via C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe. If it’s not available in the installer then set the variable in the windows environment to GIT_SSH=/path/to/TortoisePlink.exe. (Aside: I set this as using just PuTTY Plink.exe as opposed to TortoisePlink.exe – would recommend settings this instead to c:\Program Files\PuTTY\plink.exe but it’s up to you)
  5. Let it install and have a laugh in the meantime.
  6. Once it’s installed – you now have 2 windows which I will name 1. Git Bash (Right Click Mouse on a file/folder in Explorer) and 2. Start –> Programs –> copSSH –> Start a Unix Bash Shell – Unix Bash.
  7. Finally, goto your Git-Core folder in the GIT installed directory - C:\Program Files\Git\libexec\git-core (x32 bit) or C:\Program Files (x86)\Git\libexec\git-core (x64 bit) – and copy the files git.exe, git-receive-pack.exe, git-upload-archive.exe and git-upload-pack.exe and paste these into your C:\SSH\Bin.

Step 5 – Modify the User Environment

  1. The problem with copSSH is that it sets its $HOME environment to the c:\users\<name> or c:\Documents and Settings\<user> variable – and GIT looks for authorized_keys in this folder. Of course, we don’t want this – we setup our Server Environment in the C:\SSH\Home\<user>\.ssh and so we want GIT to look for keys in there.
  2. Open Windows Explorer – go into C:\SSH\Home\<user>\ and open the .bashrc file using a text editor (Aside: Be sure not to attempt to format this file as it has Unix Encodings NOT Dos encodings – i.e. just open it in a text editor and don’t use another viewer unless you want encoding errors – you don’t need to read the text in this file if you are following these instructions to a tee.)
  3. Put the Cursor at the beginning of the .bashrc file and use CTRL+F to find the following text - bashrc file.
    # User dependent .bashrc file
    #
  4. After the text .bashrc file# (after the pound with a space) – paste in - export HOME=/c/SSH/home/<user> - i.e. in our case export HOME=/c/SSH/home/Administrator
  5. Ensure there is a “space” before and after this paste in – i.e. .bashrc file#<space>export HOME=/c/SSH/home/Administrator<space>Shell Options#
  6. Save this file and close it.
  7. Copy this file and navigate to your windows assigned home directory (Aside: GIT will still be looking for your path in this directory so we need to set to refer to our C:\SSH\Home\<user>\ directory instead)
  8. Paste this in your c:\users\<name> or c:\Documents and Settings\<user> – so it now has c:\users\<name>\.bashrc for example.
  9. Open both a  Git Bash (Right Click mouse in Explorer) and a Start –> Programs –> copSSH –> Start a Unix Bash Shell – Unix Bash shell
  10. Type echo $HOME – into both – they should both spit out – /c/SSH/Home/<user>
  11. If one does not – you need to set it via - export HOME=/c/SSH/home/<user>

Step 6 – Install TortiseGIT

  1. Install TortiseGIT per the standard installer using plink.exe (Aside: This should be the same as that setting at Step 4.4)
  2. Once the install has completed, open Windows Explorer.
  3. Right Click on anything and goto TortiseGIT –> Settings
  4. Select General and ensure the MSysGit path is seting to C:\Program Files\Git\bin (x32) or C:\Program Files (x86)\Git\bin (x64)
  5. Select Network and ensure that this is set to the same plink.exe path that we set in Step 6.1.
  6. Select Save then OK.

Step 7 – Using GIT and Plink

  1. Navigate to c:\SSH\Home\<user> and create a new directory called <myapp>.git – i.e. c:\SSH\Home\Administrator\myapp.git
  2. Right click on this new directory and select Git Bash
  3. When the window loads enter git –bare init
  4. You’ll now see a (BARE: master) appear and can close the window.
  5. Navigate to c:\Program Files\PuTTY and open pageant.exe - a small icon will appear in your system tray at the bottom right hand corner of your screen (a PC with a Hat on it) – open this and add your key from c:\SSH\Home\Administrator\.ssh\private_key.ppk (Aside: I recommend adding pageant.exe to your Start –> Startup folder so this will load each time you start your PC. To do this, goto Start –> PuTTY and right click on pageant.exe. Then change the target path to c:\<path-to-dir>\pageant.exe dir:\<path_to_private_key>\private_key.ppk. Then drag pageant.exe to your StartUp folder – this will then load both pageant.exe and your private key each time the system loads. Refer here if confused.)
  6. Now it’s time to clone this repository to our local development environment and finally start using GIT
  7. Navigate to where you want to have your local repository – in my case D:\Git\
  8. Right click inside this Directory and hit Git Clone
  9. Enter your URL as ssh://<user>@<ip_address>:<port number>/SSH/Home/<user>/<git directory> – i.e. in our case ssh://administrator@127.0.0.1:4837/SSH/Home/administrator/myapp.git
  10. The Directory should have the correct path – i.e. in my case D:\Git\myapp
  11. There is no need to Load Putty Key as we have already done this using pageant in Step 7.5.
  12. Hit OK and with a bit of luck (a lot of luck) you will get a successful clone.

 

Step 8 – The Real Test

 

  1. Cloning is one thing – the real test is pushing a new commit.
  2. Go to your newly cloned directory -  D:\Git\myapp
  3. Add a New Text Document.txt
  4. Go back to just  D:\Git\ –> Right Click on the Folder –> Git Commit –> “master” …
  5. Enter a new Commit message “Test” & tick the checkbox for Not Versioned commit on the file New Text Document.txt.
  6. Hit OK & then hit Push.
  7. Ensure Local: master to Remote: master (for this test) & Remote: origin
  8. Hit OK and you should get below

Counting objects: 1, done.
Compressing objects: 100% (1/1)
Writing objects: 100% (1/1)
Writing objects: 100% (1/1), 244 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
To ssh://administrator@127.0.0.1:4837/SSH/Home/administrator/myapp.git
0526eba..a1bf4a4  master -> master

If yes (get a beer), if no (see Problem Guide and get ready for tears, profane language and keyboard bashing)

Problem Guide

copSSH

  1. I don’t understand how to install copSSH – can’t you add some pictures? No, but this guy can.
  2. I want to add another directory instead of installing my GIT repo in the home account ? OK, see here which must be done via Unix Bash.
  3. When I check services.msc – I can see that the service has stopped :( – what can I do ? You can setup a dependent copSSH service if you are brave. (tip: if you don’t know what you are doing, don’t stop the service ever – when you make changes to c:\SSH\etc\ directory restart your PC instead)

PuTTY

  1. Can I create keys with less encryption than 4096 from Step 3.5? You can never have enough encryption so no (well at least it’s my opinion!)
  2. I cant connect via PuTTY? You may have to regenerate your keys via puttygen.exe and put them back into your /.ssh/authorized_keys file per the Step 3 Instructions above.

GIT

  1. I keep getting “fatal: the remote end hung up unexpectedly”? Open a Git Bash window and type echo $HOME – ensure it is set to /c/SSH/Home/<user>/. If it is not – enter export HOME=/c/SSH/home/<user>
  2. I get “fatal: connection refused”? Check that you have correctly opened the port you have set on the service per Step 1.
  3. I get “fatal: no authorized methods accepted”? You will have to regenerate your keys with puttygen.exe and follow steps per 3.
  4. I get “git-upload-pack:command not found”? You must ensure that you have completed Step 4.7 and copied the relevant files into your c:\SSH\Bin directory.

Other

  1. Sorry cannot read your mind? But these guys can help instantly.
tim@timdavis.com.au
  • http://asimilatorul.com/adapter/post/git-resources/ alexandrul

    Very detailed article, added to my git resources list.

  • Pratik

    Hi Tim,

    Thank you very much for an extremely detailed article.
    In the last step when i am tryin to clone via Tortoise, i got the following error:

    git.exe clone -v “ssh://pratik@127.0.0.1:2244/SSH/etc/git/myapp.git” “C:\temp\myapp”

    The server’s host key is not cached in the registry. You

    have no guarantee that the server is the computer you

    think it is.

    The server’s rsa2 key fingerprint is:

    ssh-rsa 2048 be:02:2d:65:a5:bc:51:a4:03:ef:14:df:75:55:ec:93

    Connection abandoned.

    Initialized empty Git repository in C:/temp/myapp/.git/
    fatal: The remote end hung up unexpectedly

    Then, i opened command prompt and ran

    CMD>git.exe clone -v “ssh://pratik@127.0.0.1:2244/SSH/etc/git/myapp.git” “C:\temp\myapp”

    This asked me to cache the host info, i clicked “Yes”
    Then, i got ahead.

    Initialized empty Git repository in C:/temp/myapp/.git/
    fatal: The remote end hung up unexpectedly

    Now, i tried the same clone thing from Tortoise again,
    now i get:

    git.exe clone -v “ssh://pratik@127.0.0.1:2244/SSH/etc/git/myapp.git” “C:\temp\myapp”

    bash: git-upload-pack: command not found
    Initialized empty Git repository in C:/temp/myapp/.git/
    fatal: The remote end hung up unexpectedly

    googling for the error now :)

    Thanks

  • Tim Davis

    Hi Pratik,

    Apologies updated the “problem section” for you.

    Cheers,

    Tim

  • Mauro

    Hi Patrik
    we have same problem and error:

    Initialized empty Git repository in C:/temp/myapp/.git/
    fatal: The remote end hung up unexpectedly

    Did you found solution about this?

    thanks

  • http://blog.prabir.me Prabir

    hi,
    i got another idea from your blog post, by using freeSSHd and getting the ssh work in windows with very few instructions.
    i could ssh, but when i try to clone the git repository i get the following error.
    fatal: protocol error: bad line length character

    search on the net everyone seems to be having the same problem.

    now tryin your method

  • Tim Davis

    Hi Prabir,

    Yeah I also tried this long ago – but the access requirements of freeSSHd don’t seem to provide the appropriate level required. Unfortunately (and I did try for sometime with freeSSHd) it doesn’t work.

    Hence the long post :)

  • Niranjan

    Hi Tim,

    This was really a nice article. I am able to setup the environment. Now I want to use the configuration as a Git Server and want to install client on other machine.

    Is there a way?? I tried to clone a repository from the server to the client (only msysgit is installed in the client).

    Thank you in advance..

    Niranjan

  • Tim Davis

    Hi Niranjan,

    Sorry for the late response. This really just tells you how to setup the Server side – the client side is simply just connecting to the server implementation. To do this, you just need to install Mysisgit and TortiseGIT and then connect to the server via SSH and it should work (see the last step!).

    Glad it helped :)

    T.

  • Pingback: Da SVN a GIT (2) « Il blog di Nicola Amatucci

  • http://www.charlesstrahan.com Charles Strahan

    Thanks Tim for the awesome tutorial. Unfortunately, I have one problem: I can clone, but I can’t push. I get the following output when cloning:

    fatal: connection refused

    I read your bullet point at the end of the post, but that shouldn’t be a problem, considering that I attempting to do this from the same machine, and I *can* clone.

    Any ideas?

    -Charles

  • Tim Davis

    Hey Charles,

    Generally connection refused relates to a lack of opening the Ports. You need to ensure that this has been done on both your Firewall and your Windows Firewall. Either can block.

    Ensure that the port you open is the same one to that of the _Config [assuming you know this ;)].

    Let me know how this goes ?

    T.

  • Anju Saxena

    Hi Tim,

    Thanks a ton for the website. I had been struggling for days to get my Git setup work on windows without any progress!

    Your website is marvelous!!!

    I haven’t come across one single site which has all the information on installing/configuring and successfully cloning at one place!

    Thanks once again for creating it!

    Regards,
    Anju

  • Tim Davis

    Hi Anju,

    Great you found it helpful and it worked :)

    Thanks also for leaving feedback!

    T.

  • pankar

    Hello Tim.

    First of all — great job. If only I had your patience in writing such a detailed guide! Keep up the good work.

    Now, the dirty stuff…

    I am in the process of creating a clone for my project. I’ve went through all the steps till this point, but I keep getting this from TortoiseGit:

    git.exe clone -v “ssh://Administrator@127.0.0.1:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

    bash: Administrator@127.0.0.1: command not found
    Initialized empty Git repository in E:/GitTest/myapp/.git/
    fatal: The remote end hung up unexpectedly
    Success

    and nothing gets cloned.
    BTW: The TortoisePLink comes up just before this message appears and asks me: “login as:” ( I thought that this info is given in the command, i.e: Administrator@blahblah

    I hope you can shed light on this mysterious case ;)

  • pankar

    Sorry for the spam. I forgot to mention that my home variable is set to the correct place:

    From a Git Bash shell:
    echo $HOME
    /c/SSH/home/Administrator

  • pankar

    I’ve also tried using Putty’s plink instead of TortoisePLink (in both Git’s and TortoiseGit’s installation). This time the error was narrowed down to:

    git.exe clone -v “ssh://Administrator@127.0.0.1:22/c:/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

    Initialized empty Git repository in E:/GitTest/myapp/.git/
    fatal: The remote end hung up unexpectedly
    Success

  • Tim Davis

    Hi Pankar,

    Sorry for the delay in response. Hmm sounds to me like you haven’t open the ports correctly [22 in your case] OR your bash isn’t set up correctly since this is the primary cause of “remote end hung up”. If fact, the only cause I have gotten.

    Are you sure you have followed the steps closely related to the Git Bash etc ? Port 22 isn’t used somewhere else ?

    Hope this helps.

  • Andrei

    Hi thanks a lot for you tutorial.
    It’s really helpfull.

  • Kode.Cooper

    Hi Andrei,
    In my SSH server, I create d:/Repo/Repo1,
    In my client , I can use Putty connected with the Server,
    but git with Plink can not. I thought if the RSA generated by Puttygen can not used directely by git?
    git clone -v git@sshserver:d:/repo/repo1
    Do you have some suggestion for this? thanks.

    In my Clinet , I copy the private key into C:\Documents and Settings\, but the git seems not to find this file to authenticate with server.

  • Kode.Cooper

    When i clone repo from ssh server, git will ask me for passphrase of my private key, which genereated by Puttygen. But It seems not work when I entered the passphrase.

  • Kode.Cooper

    Hi Andrei,
    I’m really a new guy using git and SSH. Could you
    write down which options were on Server, which were on client? I think it’s very helpful for us . ;-)

  • rvc

    Firstly, thanks Tim, for this guide ^^

    Now… I’m having a problem with ‘git push’ command, and I’m posting here, hoping somebody has a solution or have come across the same thing.

    I’ve posted a question on stackoverflow, please read it, and check if you can help me:
    http://stackoverflow.com/questions/2736862/git-clone-works-remote-push-doesnt-remote-repository-over-copssh

  • rvc

    Nevermind.. problem fixed. I wasn’t using Tortoise, so I couldn’t set the GIT_SSH env. var. Step4.4

  • rvc

    holly jebus… sorry for poking again, but I’m having the some problem again. GIT GUI shows the same error.
    I think I have the Home Path right export HOME=/c/SSH/home/rvc. I think git can reaches every file, both git bash, and git via ssh. I’m clueless on how to solve this. do you any way to point me to?

  • new git

    Thank you so much! Now I have a working git remote repository in (omg) Windows!

    I use gitextension to connect to the openssh server and it works flawlessly!

  • Carl

    Hi Tim,

    Thank you for the really detailed article. I have a question though – I’d like to serve an existing repository from a Windows machine. Is there any way to do this? My existing git repo was created using an msysgit install on Vista. What I’d really like is to be able to serve that repository to a mac.

    Would cloning my repo on the server instead of initializing a bare one be the solution?

    Thanks!

  • Tim Davis

    Hey Carl,

    Sorry for the long time between responses. The easiest way is probably to just setup following the tutorial above – export your old repo and dump it into your new repo. Of course, if you want all the log data [which I am assuming you do] then you’re probably going to have to try cloning the repo to see if that works – otherwise revert back to the 1st sln.

    Cheers :)

  • Blaz

    Nice, i see many thumbs up from this guide. I will check it and when i get the time, will create the server myself! Looking forward in reading your article, keep up the good work ;)

  • Brett Rigby

    Hi there,

    Great post – thanks for doing this!

    I have a problem after running ‘Step 5 – Modify the User Environment’. I can open both the Git Bash and Unix Bash shells, and when I check the HOME value, one is set to /c/Users/Administrator and the other is set to /home/Administrator. If I use the export command on both shells, as you say, and then re-query the HOME value in both shells are correct (i.e. /c/ssh/home/Administrator). But if I close and reopen the shell windows, they’re back to as they were before..!

    Am I doing something wrong?

    Thanks! Brett Rigby

  • Adarsh

    Great post. Git repo working successfully on my windows box. THANK YOU!

  • http://DavidsTechTips.com/ David Potter

    I’ve been looking for a guide like this all weekend. Thanks so much for putting it together.

    In step 5 I couldn’t find “.bashrc file#” in the .bashrc file, so I added it. However, when I start copSSH from the Start menu I get the following error:

    bash: .bashrc: command not found

    Plus for some reason “Git Bash Here” doesn’t execute the .bashrc file in my \Users\David directory. I copied .bash_profile form C:\SSH\home\David and it starting executing it, but then I got this after the Git lines:

    sh.exe”: .bashrc: command not found
    sh.exe”: .bashrc: command not found

    What am I doing wrong?

    Thanks,
    David

  • Don M

    Thanks for the guide. A couple of small corrections.

    Step 2.5 is unnecessary — you are uncommenting two lines but leaving them set to their default values, so there is no change.

    Instructions for 5.4 are wrong. Instructions are to paste the export command after a #, which makes it a comment and therefore does nothing. You need to paste the export command before the #, after a line ending (LF, which will look like a square in notepad). If you know how to use VI, it’s easier to edit the file using VI from the bash shell, that will get you correct line endings. Or run unix2dos on the file, edit it in Notepad, then run dos2unix on the file.

  • Pingback: Confluence: Exie 10 Development Area

  • Doug

    Wow, you sure went through a lot of effort. I can’t say that I’m willing to go through the same process. I think I’ll break out an old machine, install linux, connect it to my network, install git and be done with it.

  • koracz

    If you still have this problem:
    “fatal: The remote end hung up unexpectedly
    Success”
    try connect with putty and write “git” – probably you’ll see: “.. error while loading shared lib…”.
    I solved this by coping all dlls from msysgit/bin to copShh/bin.

  • mujinjun

    I installed the latest msysgit and didn’t see the notion to let me choose plink or other choice. Could you tell me the version of msysgit you wrote in the artile? Thank you.

  • http://RogerPf.com Roger Pfister

    Someone give Tim Davis a medal.

    Notes for others – you don’t actually want the “full” mysysgit that is for “git dev’s” you want “Git for Windows” the current download on the mysysgit page is called – Git-1.7.0.2-preview20100309.exe

    Like koracz I also needed to copy a lib – libiconv2.dll from …\Git\bin to \SSH\bin

    Many thanks again Tim

  • john

    Hi,Thanks for the guide.
    but i have a problem here when execute git commit
    bash.exe: warning: could not find /tmp, please create!

  • Pingback: Setting Up Git Repository on Remote Windows Server? Drija

  • http://openid-provider.appspot.com/smithimage smithimage

    Hi thank you for a nice tutorial.

    Alltough I had problems cloning into a soft-symlinked directory in my home directory with the ssh:// url format. I had to change this to only “git clone username@server:sym-linked-repository-home-subfolder/git-project”.
    Using the “git clone ssh://username@server/sym-linked-repository-home-subfolder/git-project” allway brought me to the root / and the into sym-linked-repository-home-subfolder which in my case is linked from another partition which makes / endup on the wrong partition.

  • http://twitter.com/jiegonator Jiego Amos Cordoviz

    I’m just starting out with GIT and then i see this. HAHAHA! Lucky! thanks for this dude!

    also, i saw this link from Stackoverflow, so thanks too!!

    added this to my delicious account :D

  • http://www.facebook.com/people/Szabolcs-Szilagyi/594999126 Szabolcs Szilagyi

    Hello,
    So, I have done this tutorial. It’s really good (just don’t skip steps :D ).
    I don’t use TortoiseGit as I think GitExtensions is a lot better. There, what you have to look out for is:
    when you go to Remotes menu, Manage Remote Repo’s, don’t try to test the connection as it won’t work anyway… just do the push and pull (these will work even do the test doesn’t!)
    TD: THX for taking the time to make this tutorial
    Kind regards,
    s

  • http://www.facebook.com/people/Szabolcs-Szilagyi/594999126 Szabolcs Szilagyi

    Just fucked a whole morning about the following issue:
    git pull administrator@127.0.0.1:22/SSH/Home/administrator/myapp.git <– the ssh port is the default 22!
    Now if it's the default port then git will take the number 22 as a directory…
    So if you use the default 22 port for your SSH server then the previous command gonna look like this:
    git pull administrator@127.0.0.1:/SSH/Home/administrator/myapp.git

  • http://twitter.com/k_sze Kal Sze

    It’s getting harder to follow this tutorial because quite a few of the installers have changed. Some of the options and dialogs are so different now. It’s hard to make sure I’m not missing anything.

    An update would be nice. XD

  • Pingback: How to use WINDOWS (XP) copSSH configuration TortiseGIT GIT server + client

  • Nathanael Jones

    Hi everyone,

    The author of CopSSH and I have created an automated installer for this process. It simplifies everything into about 4 steps, all quite straightforward.

    It costs $9, but is GPL-licensed (we have to pay for hosting costs!).

    http://windowsgit.com/

    Mr. Davis, we’d like to thank you for the excellent article and the inspiration for simplifying the process. I’ve seen your blog post referenced on dozens of SO posts, and I think a lot of people appreciate the time you spent to help them through the process. I certainly do.

    If you have time, perhaps you could link to our site as an alternative for the ‘faint-hearted’? I’m sure it would help those who don’t have the time or experience to follow your instructions themselves. And, perhaps, reduce the SO support burden ;)

    Best regards,
    Nathanael Jones

  • Pingback: Cygwin, OpenSSH and Gitosis on Windows Server 2008 - Admins Goodies

  • Roy Xie

    Update for step4.7

    Besides git.exe, git-receive-pack.exe, git-upload-archive.exe and git-upload-pack.exe files, 
    1) while setting up with copssh4.2.1 && Git-1.7.7.1-preview20111027.exe:
    libiconv-2.dll should also be copied to the SSH/bin folder.

    2) while setting up with copssh4.2.1 && Git-1.7.0.2-preview20100309.exe,
    libconv2.dll should be copied.

    Or the else we will get “fatal: the remote end hung up unexpectedly”? error

  • Anonymous

    The level of dedication required to write this tutorial is impressive.
    But, seriously, was it a good use of your time? Why not just set up the git server on Linux, where (1) it’s a couple of mouse clicks, and (2) installing upgrades when they become available is also a couple of mouse clicks, and (3) the instructions remain unchanged when a new version of the OS comes out because it’s still just a couple of mouse clicks?

  • http://www.facebook.com/thiyagarajannv Thiyagarajan Veluchamy

    Hello,

    Very nice, Awesome. 

Mobile Analytics