在Windows上安裝遇到很多問題,只好寫下來了
local端 win8 x86
server端 WinServer 2008 x64
在server端
安裝 Git-1.8.4-preview20130916.exe
我的安裝目錄在 D:/Git
然後開始一直下一步安裝,其中Adjusting your PATH environment 選擇 Run Git from the Windows Command Prompt
安裝目錄 D:/copSSH
安裝完成後,開啟COPSSH Control Canpel
顯示 service is running 表示成功
也可用 cmd 查詢 22 port 是否啟用
netstats -na | find ":22"
頁籤選擇 Users 新增 ssh 登入使用者
我自己是新建一個Windows帳號 git,並已經加入,所以下拉選單沒有出現 git
如果需要 Sftp 就選擇 Linux shell and Sftp,不用勾選 Allow password authentication
完成後在 copssh/home/ 底下會出現你新增的使用者資料夾
接下來建立ssh使用git等功能 git.exe, git-receive-pack.exe, git-upload-archive.exe, git-upload-pack.exe
開啟 copssh->Start a unix bash shell
輸入
$ cd Bin
$ ln -s /cygdrive/d/Git/bin/git.exe git.exe
$ ln -s /cygdrive/d/Git/libexec/git-core/git-receive-pack.exe git-receive-pack.exe
$ ln -s /cygdrive/d/Git/libexec/git-core/git-upload-archive.exe git-upload-archive.exe
$ ln -s /cygdrive/d/Git/libexec/git-core/git-upload-pack.exe git-upload-pack.exe
我的Git是建立在D槽,如果是使用預設路徑則要輸入 /cygdrive/c/Program\ Files/Git (空格前要加 "\")
注意:不能建立在C:\Program Files (x86)\,因為輸入後會出現 "(" 的錯誤
開啟 Git bare
在 /copssh/home/帳號/ 底下建立版本庫
$ cd /d/copssh/home/git/ (我的SSH建立D槽,帳號是git)
$ mkdir mis.git (我的版本庫是mis)
$ cd mis.git
$ git init --bare
將 work tree 移到web 資料夾
$ vi mis.git/hooks/post-receive
輸入
#!/bin/bash
GIT_WORK_TREE=/cygdrive/d/AP git checkout -f
#我的web DocumentRoot建立在D槽的AP資料夾,cygdrive一定要打
完成
在local端
安裝 Git-1.8.4-preview20130916.exe
開啟 Git Bare 建立.ssh資料夾
$ cd /c/users/你的帳號/
$ mkdir .ssh
用 puttygen.exe 建立自己的金鑰 (怎麼建立請google吧!)
將 public key 複製到 server端的 copssh/home/帳號/.ssh 底下,並修改名稱為 authorized_keys
將private key 存入 C:/Users/你的帳號/.ssh,並修改名稱為 id_rsa
開啟Git Bare 到本機的web資料夾下建立版本庫
$ cd /d/htdocs/mis (我的DocumentRoot建立在D槽)
$ git init
建立遠端連線,編輯 config
$ vi .git/config
輸入
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
url = git@10.10.3.248:/copSSH/home/git/mis.g
fetch = +refs/heads/*:refs/remotes/origin/*
puttykeyfile = C:\\Users\\你的帳號\\.ssh\\id_rsa
輸入完成,測試連線
$ ssh git@SERVER_IP (git是在server端建立的帳號)
出現 帳號@SERVER電腦名稱 表示成功
拉回或推送代碼
$ git pull origin master (or push)
完成