Git 是一個 版本控管系統 Version Control System
可達成 分散式 多人開發專案的功能
詳細 可參考許多網路文章 這邊就不累述了
本教學是建立在透過ssh來作 git 管控
通常透過這種模式 常有 權限上的問題
最好的解決方法 就是...在server上 就只有一個git user
所有的版本控制都執行在 git 的user上....
不過放心!
就算用同一個user ,在commit 時 紀錄的還是 client 當下的使用者
所以 依然可以達成 專案控管 人員控管的效果 詳情也可參考...文章最底下連結
1. 建立遠端Git 資料夾 並建立server環境
[server]
mkdir project.git
cd project.git
git init --bare --shared
2. client 直接 clone下來
[client]通常會看到這段 得知現在是一個空的 git 專案
git clone git@domain:/home/git/project.git
warning: You appear to have cloned an empty repository.
3. 建立branch
[client]這邊通常會遇到一個問題
cd project
git checkout -b master
git push -u origin master
error: src refspec master does not match any.原因在於 git 的push 不允許 push 空的資料夾
error: failed to push some refs to 'git@domain:/home/git/project.git'
在這邊建議新增 .gitignore 的檔案
4. 建立 .gitignore
[client]內容先寫入
vim .gitignore
# Ignore Alladd & commit
/*
# But
!.gitignore
!pom.xml
!src/
[client]此時重新push後就會成功了
git add -A (這邊-A代表所有檔案)
git status (這邊可以看到現在狀況,會發現建立一個新檔案)
git commit -m "add new file test"
[client]
git push -u origin master
5. Phelim 小筆記
如果Git在Eclipse上開發的時候 有用到tag小弟不才 不知道 在哪控制...所以 還是自己command吧 = =
git push --tags
若是新增 .gitignore 之前已經 add 過不想追蹤的檔案
那在改好 .gitignore 之後要先清 cache
git rm -r --cached .將 remote 端的 branch pull 到自己 local 並建立新的 branch
git checkout -b {new Branch} origin/{remote Branch}
Done
基本的 client server環境就完成了參考http://blog.longwin.com.tw/2011/03/build-git-env-share-over-ssh-2011/
非常精闢的筆記,感謝!!!
回覆刪除