步驟1、【安裝軟體1】 到 http://git-scm.com 下載 git for windows http://git-scm.com/
步驟2、【安裝軟體2】安裝tortoisegit,看你是32位元還是64位元,擇一安裝即可 https://code.google.com/p/tortoisegit/wiki/Download
步驟3、【安裝軟體3】安裝apache,我是裝這個:httpd-2.2.22-win32-x86-openssl-0.9.8t.msi,port請選擇8080(如下圖),並http://ftp.tc.edu.tw/pub/Apache/httpd/binaries/win32/
步驟4、以上三個安裝流程就一直下一步就好,apache好像要你填一下個人資料
步驟5、安裝完成之後到你安裝的 git 安裝目錄下,我的安裝目錄預設是(C:\Program Files (x86)\Git\bin)將libiconv2.dll 和 libiconv-2.dll兩個檔案檔案複製到(C:\Program Files (x86)\git\libexec\git-core\)進行覆蓋。
步驟6、在你想要的槽建立一個專門放倉儲管理的資料庫,我自己是放在D:/GitRepos
步驟7、去修改apache的設定,到C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf找到httpd.conf檔案。
備註:看你步驟3將apache裝到哪裡,路徑可能會不一樣。
步驟8、找到檔案後,用記事本打開httpd.conf檔案:
先找到以下的檔案↓
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
把它改成↓
<Directory "D:/GitRepos">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "C:/Program Files (x86)/Git/libexec/git-core/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "C:/Program Files (x86)/Git/libexec/git-core/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
AllowOverride None
Order allow,deny
Allow from all
</Directory>
↑PS:注意上方兩個紅字部分,第一段紅字是要修改步驟6設定的路徑,第二段紅字就稍微注意一下你git是安裝在Program Files (x86)還是Program Files
改完後在最後面插入以下內容
SetEnv GIT_PROJECT_ROOT D:/GitRepos
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAliasMatch \
"(?x)^/git/(.*/(HEAD | \
info/refs | \
objects/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
"C:/Program Files (x86)/Git/libexec/git-core/git-http-backend.exe/$1"
<Location /git>
AuthType Basic
AuthName "GIT Repository"
AuthUserFile "D:/GitRepos/htpasswd"
Require valid-user
</Location>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAliasMatch \
"(?x)^/git/(.*/(HEAD | \
info/refs | \
objects/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
"C:/Program Files (x86)/Git/libexec/git-core/git-http-backend.exe/$1"
<Location /git>
AuthType Basic
AuthName "GIT Repository"
AuthUserFile "D:/GitRepos/htpasswd"
Require valid-user
</Location>
↑紅字部分特別注意,D:/GitRepos是我自己設定要放置git倉儲的地方,要修正為你自己開設的資料夾名稱與路徑
D:/GitRepos/htpasswd的話,則是之後的步驟我們要創立一個驗證檔出來,所以檔名必須叫做 htpasswd(重要!)
步驟9.在D槽,對著GitRepos的資料夾按右鍵,選擇Git Bash,會出現console視窗,
輸入
git init --bare project
建立出project資料夾後,再輸入
cd project
進入後再輸入
git update-server-info
輸入完再輸入
touch daemon-export-ok
如下圖
步驟10.為了要讓遠端的電腦可以到這台主機下載最新版本,所以必須為目錄git增加權限,
請到C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin 按右鍵點選git bash
輸入 htpasswd -cmb /D/GitRepos/htpasswd hello 1234
/D/GitRepos/為你的倉儲路徑,也就是步驟6的位置
後面接著htpasswd則是你命名的檔案名稱,要注意,你命名的權限檔案名稱要與步驟八最後面的要一致!超重要!
hello是帳號 1234是密碼
步驟11.到D:/GitRepos如果你有看到htpasswd檔出來你就成功了
步驟12.測試:隨便到D槽開一個資料夾,對他按右鍵選擇選擇 Git clone,將我們第九個步驟建置的project資料夾給複製一份起來到另外個資料夾,
複製URL打 http:127.0.0.1:8080/git/project
接著輸入帳密的部分自然是打步驟10所設置的帳密:hello/1234
如果有成功抓下來,那就恭喜你成功哩。
假使要讓外部使用者也可以連的話,要記得windows主機要開8080 port才可使用哦。
網址也就不會是localhost與127.0.0.1,而是你主機ip的網址後面接:8080/git/project。
日後要建新的倉儲,就請依照步驟9來新增即可。
git init -- bare project 應該改為 git init --bare project
回覆刪除git init -- bare project 應該改為 git init --bare project
回覆刪除感謝,已修正哩
刪除http://huan-lin.blogspot.com/2011/05/git-over-https-on-windows.html
回覆刪除HI,如果要改成https,我參考上一篇,可是還是跑不起來,請問你有設定過嗎?謝謝。
請問我要產生htpasswd檔時,出現bash: htpasswd:commanf net found
回覆刪除請問這有可能是什麼情況??
在這個 git bash 裡,指令也要打完整路徑
刪除"C:/Program Files (x86)/Apache Software Foundation/Apache2.2/bin/htpasswd" -cmb /D/GitRepos/htpasswd hello 1234
我也研究好好幾天,您試試用WINDOWS CMD去執行(在apache的BIN)
回覆刪除作者已經移除這則留言。
回覆刪除作者已經移除這則留言。
刪除一、此篇文章 http:127.0.0.1:8080/git/project 打錯
回覆刪除請改成http://127.0.0.1:8080/git/project
二、C:/Program Files (x86)/Git/libexec/git-core/git-http-backend.exe/$1
需改成下面,請注意mingw64資料夾
C:/Program Files (x86)/Git/mingw64/libexec/git-core/git-http-backend.exe/$1
三、C:/Program Files (x86)/Git/libexec/git-core/
一樣請注意mingw64這個資料夾
四、請問我要產生htpasswd檔時,出現bash: htpasswd:commanf net found
出現這錯誤,請用系統管理員開啟cmd,到C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin資料夾
然後在下指令
htpasswd -cmb /D/GitRepos/htpasswd hello 1234
請問 對網址的克隆,推送,拉取都無法動作時該怎麼解決(not found)
回覆刪除作者已經移除這則留言。
回覆刪除