RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 
 32  1/3  1  2  3  > 


 
主題: [其他] 有人用過Git來做程式碼管理嗎?   字型大小:||| 
  本主題被作者加入到他/她的 Blog 中  
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9423
 . 精華: 28
 . 文章: 9950
 . 收花: 79350 支
 . 送花: 11004 支
 . 比例: 0.14
 . 在線: 2907 小時
 . 瀏覽: 187061 頁
 . 註冊: 8219
 . 失蹤: 32
 . 大熊國
#1 : 2011-4-19 04:06 PM     只看本作者 引言回覆

之前都是用svn…但git可以分散式管理…也就是commit,log等都可以離線進行。

而且分支功能蠻強的…有朋友用過嗎?請分享一下經驗~

==short-cut==
有圖有真相
Git+ssh @centos 安裝步驟+Windows client
TortoiseGit (windows client)
Mac Git Client


相關關鍵字: git  svn  redmin  source control  教學  程式碼管理  git client  






[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
miholee
青銅驢友
等級: 11等級: 11等級: 11等級: 11


今日心情

 . 積分: 347
 . 文章: 593
 . 收花: 2605 支
 . 送花: 2196 支
 . 比例: 0.84
 . 在線: 1572 小時
 . 瀏覽: 50899 頁
 . 註冊: 7258
 . 失蹤: 12
 . Taibei
#2 : 2011-4-19 10:46 PM     只看本作者 引言回覆

http://zh-tw.whygitisbetterthanx.com/
這個是不錯的參考資訊。

Git 是存完整的檔案 snapshot,不像 CVS SVN 只記憶與上一版的差別。
所以不管是從目前所在的 HEAD,還是很久之前的,都能夠很快切換到該版本。
不過並不會因為存 snapshot 而造成使用的空間大幅增加,因為它有很好的物件管理。
假設某個檔案完全沒有更動,那物件庫中只需要存一份即可,不需要每一個版本都存一份。
當未壓縮的物件的大小 or 數量(詳細規則不清楚),Git 會自動將這些物件壓縮打包起來。
也可以手動執行此動作。
記得有人用過 KDE 做過類似的比較,Git需要的空間遠低於 svn。

Git 不會對空目錄做版本控制,不像 svn 允許空目錄的存在。
寫的不好的 build system 可能需要稍做修改,檢查及處理此情況。

不過因為是分散式管理的關係,同一筆修改,有可能以不同的 SHA1 ID 現身(如:被rebase過或用 git commit --amend之類的方法重新改寫commit)。 如果是已上傳的 commit,就不要再去改它。 不然屆時可能會很困擾。

雖然 merge 能力很強大,會自行尋找要合併的分支的共同祖先,再根據這兩個分支與該祖先的差異,進行合併的動作。(聽說很來 svn 也跟進提供此功能)。 不過也曾經看過在複雜的條件下,合併出一個怪物。(出現重複的資料)

Git 1.7 在 recursive 合併方式新增 subtree 選項,可以將別的 Git repo. 合併到我們的 Git repo. 的特定子目錄下。
早期版本可以透過 submodule 來做。 不過該子目錄本地端也需要時常更新的話,用 submodule 有點煩人。

儘量不要放像文字檔類型且檔案又很大的檔案。 看過數次 Git 在處理這些檔案時,不知道在忙什麼,放1~2個小時都沒反應。 不過工作目錄其實已經都處理好了,按 Ctrl + C 中斷後也沒發生什麼事。

Git 本身的 protocol (git://),速度還蠻快的。 不過個人感覺,在網路狀況佷糟的環境下,似乎會有些問題。 另外就是,有些公司網路會設限,用 http:// 可能比較好。(雖然速度慢了些)

Git 支援 svn,可以本地端修改、commit後,確認後可以再上傳到 svn server。 只不過醬子用時要留意 svn 只支援 linear 的 history。

有時程式改一改後,要上傳的程式碼,其實包含兩種以上功能。 如果說想儘量保持 atomic commit ,一定要分開上傳的話,CVS 或 svn 大概都要把檔案備份後,先去掉其它功能後上傳......。 光想到醬子就不想做了。
Git 可以用 git add -p 方式,以一小段一小段詢問使用者是否要上傳。 若切出來的程式仍不夠清楚的話,還可以選擇編輯功能,只上傳該小段內特定一小部份程式。工作目錄下的檔案並不會被影響,所以不需要做額外的備份。

註:git add -p 若切出來的程式仍不夠小的話,“不建議”選用縮小 hunk 方式。 因為有可能會造成上傳的程式碼與預期不符。(例:程式碼內有很多類似的小段程式碼,若 hunk 切的太小,易造成誤判)

大致上是醬子,雖然用的時候有一些問題。 不過比起 CVS 開個分支要花 15 分鐘、svn 會生出一堆 .svn 目錄,然後放一堆近似檔案,搜尋前還得先排除掉。 我還是會用 Git 來做管理。

[miholee 在  2011-4-19 10:57 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9423
 . 精華: 28
 . 文章: 9950
 . 收花: 79350 支
 . 送花: 11004 支
 . 比例: 0.14
 . 在線: 2907 小時
 . 瀏覽: 187061 頁
 . 註冊: 8219
 . 失蹤: 32
 . 大熊國
#3 : 2011-4-19 11:16 PM     只看本作者 引言回覆

非常感謝miholee兄的指教...

熊小也剛架了git在嘗試中...只看了一些很基本的documentation就可以操作...個人認為git的指令蠻直觀的...不困難.

我是用ssh來存取git...感覺也蠻快的...而且也可以限制用戶...也是git與http外另一個選擇

剛於github申請了帳號...他的git web介面不錯...不過github是closed source...

miholee兄有將git整合到trac, redmine那些web project management系統嗎?

還有就是miholee兄要不要考慮寫篇教學... 正所謂教學雙長...



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
miholee
青銅驢友
等級: 11等級: 11等級: 11等級: 11


今日心情

 . 積分: 347
 . 文章: 593
 . 收花: 2605 支
 . 送花: 2196 支
 . 比例: 0.84
 . 在線: 1572 小時
 . 瀏覽: 50899 頁
 . 註冊: 7258
 . 失蹤: 12
 . Taibei
#4 : 2011-4-19 11:50 PM     只看本作者 引言回覆

用 ssh 的話,而且有不同的使用者帳號的話要注意權限。
印象中預設的權限是只有建立的使用者才有寫入的權限。
醬子會發生什麼問題哩?
比如說 git push 了一個物件,SHA ID 是 ac 開頭,那麼 origin 的 .git/objects 會出現一個名為 ac 的目錄,權限有可能是該使用者才能寫入的。
下一次,另一個使用者也 push 一個 ID 是 ac 開頭的物件時,會被拒絕,因為沒有寫入權限。
之前是在該 origin git repo. 用 git init --shared=XXX 修改權限(請參考 git init --help)

或者也可以參考 Pro Git 這本免費的電子書,用 gitosis 或 gitolite 架設。
醬子大家的 ssh 帳號都是用無法登入的 gitosis 或 gitolite。 實際身份以及讀寫的權限再依據各人的 SSH public key 而定。其實就跟 GitHub, Gitorious 一樣,只不過是以修改文字設定檔來做  SSH key 的管理。
gitosis 只能做到是否可讀、寫特定專案。
gitolite 可做到限制分支、打標籤的權限。

網路上有個 git-completion.bash script,可簡化一些操作及幫助使用者更容易瞭解目前 git repo. 的狀態。
如自動補上命令、分支等......

trac 的整合,印象中是自己包一個 trac-git-plugin RPM,安裝後根據網頁說明,做些設定。
如果要做到 commit 時,自動 close issue 的話,要把 trac 網頁提供的 script 放到 git repo。
這我自己也沒在用,因為 trac 後來被我淘汰了,沒有用多久。

redmine 是前一陣子才開始用的。印象中只要指向 bare git repo. 就可以了,權限注意一下就好,不需要特別的設定。個人猜測,將它指向一般的 git repo. 的 .git 目錄,應該也可以。 還沒特別試過就是了。
剛設定完一段時間,redmine會在忙著處理,要等一陣子。 網頁有教如何關閉此功能。(細節忘了)

Git 網站的 Documentation 提到的 ProGit 及 Git Internals 還不錯。另外幾本就沒看過了(當年這幾本都沒電子書
至於教學的話還是別寫了,很久沒溫習 Git 的文件,很多東西都忘了,只記得平時用的零碎細節。
而且大部份也都是參考 Pro Git 學的。

[miholee 在  2011-4-19 11:59 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9423
 . 精華: 28
 . 文章: 9950
 . 收花: 79350 支
 . 送花: 11004 支
 . 比例: 0.14
 . 在線: 2907 小時
 . 瀏覽: 187061 頁
 . 註冊: 8219
 . 失蹤: 32
 . 大熊國
#5 : 2011-4-20 01:03 AM     只看本作者 引言回覆

有關ssh的部份...不知道是否將使用者都放到同一group...e.g. developer..來解決權限問題?

不過等我也看看gitolite的資料~ 謝謝介紹~

redmine應該不錯用是吧? 我也想架來用用...不過要先架好RoR~ 這我真的不熟了~

anyway...謝謝miholee兄的經驗分享~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Kcars
青銅驢友
等級: 11等級: 11等級: 11等級: 11
自我嫌棄モード

今日心情

 . 積分: 202
 . 文章: 420
 . 收花: 1385 支
 . 送花: 998 支
 . 比例: 0.72
 . 在線: 5140 小時
 . 瀏覽: 19242 頁
 . 註冊: 7433
 . 失蹤: 644
 . ®垃圾掩埋場
#6 : 2011-4-20 08:00 PM     只看本作者 引言回覆

redmine我在自己電腦上架不起來…原因好像是RoR的某樣東西的版本太新
Heroku又看不懂,需要花點時間研究…

要不然很想用redmine來管看看程式碼(code review)…

---

除了github,springloops似乎也不錯?

[Kcars 在  2011-4-20 08:01 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9423
 . 精華: 28
 . 文章: 9950
 . 收花: 79350 支
 . 送花: 11004 支
 . 比例: 0.14
 . 在線: 2907 小時
 . 瀏覽: 187061 頁
 . 註冊: 8219
 . 失蹤: 32
 . 大熊國
#7 : 2011-4-20 09:23 PM     只看本作者 引言回覆


引用:
Kcars寫到:
redmine我在自己電腦上架不起來…原因好像是RoR的某樣東西的版本太新


沒錯…的確是這樣…必須要用指定版本。

對應最新的版本1.1.2 (2011-03-07)

Supported Ruby: ruby 1.8.6, 1.8.7               
Rails version: Rails 2.3.11
Rack version:Rack 1.1.0

Notes:
Ruby 1.9 is not supported yet. You have to use Ruby 1.8.x as stated above.
RubyGems 1.3.1 or higher is required (Rails 2.3.5 will fail with RubyGems 1.5.0 and later, stick to previous versions of RubyGems)
Rake 0.8.3 or higher is required
Rack 1.0.1 is required. If you don't have this exact version, database migration would fail.
I18n 0.4.2 is required for Redmine >= 1.0.5

source: http://www.redmine.org/projects/redmine/wiki/RedmineInstall


我試了,可以安裝成功。



引用:
Kcars寫到:
除了github,springloops似乎也不錯?


樣子看上去不錯~ 現在是2.0 beta...等它到了正式版再試試~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
miholee
青銅驢友
等級: 11等級: 11等級: 11等級: 11


今日心情

 . 積分: 347
 . 文章: 593
 . 收花: 2605 支
 . 送花: 2196 支
 . 比例: 0.84
 . 在線: 1572 小時
 . 瀏覽: 50899 頁
 . 註冊: 7258
 . 失蹤: 12
 . Taibei
#8 : 2011-4-20 11:12 PM     只看本作者 引言回覆


引用:
Vic寫到:
有關ssh的部份...不知道是否將使用者都放到同一group...e.g. developer..來解決權限問題?

redmine應該不錯用是吧? 我也想架來用用...不過要先架好RoR~ 這我真的不熟了~

anyway...謝謝miholee兄的經驗分享~


公司那邊我是將所有的人加入同一個群組,
將共用的 git repo. (我們採用集中管理的流程),設為該群組可讀寫(修改己存在的檔案/目錄權限);
然後再跑過 git init --bare --shared=group (這樣子新建立的目錄,就會是同一個群組都可寫入的。)
至於每個人從人共用的 git repo. clone 到自已電腦的則不管,用預設的就好了。

redmine還在摸索中,感覺上還不錯。原生支援 Git、甘特圖、多個專案。
比較討厭的是有幾個元件需要用特定版本,不過也不致於說很難弄出來。
PS: 我是為了 trac 的甘特圖外掛看起來很醜、需要人工輸入年月日,無法用日曆點選。 才淘汰 trac 的。

[miholee 在  2011-5-8 10:19 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
qoowater
鐵驢友〔初級〕
等級: 4


今日心情

 . 積分: 25
 . 文章: 66
 . 收花: 68 支
 . 送花: 11 支
 . 比例: 0.16
 . 在線: 3014 小時
 . 瀏覽: 15721 頁
 . 註冊: 7103
 . 失蹤: 8
#9 : 2011-4-20 11:34 PM     只看本作者 引言回覆

要裝remine 可以試試看這個 http://bitnami.org/stack/redmine
BitNami Redmine Stack greatly simplifies the deployment of Redmine and its required dependencies. It can be deployed using a native installer, as a virtual machine, in the cloud or as a module over an already installed infrastructure Stack.
他會將所需要用到的所有東西 apache redmine ruby.. 等等放在同一資料夾而不是安裝到系統,所以不會有軟體版本的問題,建議使用看看。



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9423
 . 精華: 28
 . 文章: 9950
 . 收花: 79350 支
 . 送花: 11004 支
 . 比例: 0.14
 . 在線: 2907 小時
 . 瀏覽: 187061 頁
 . 註冊: 8219
 . 失蹤: 32
 . 大熊國
#10 : 2011-4-21 11:01 AM     只看本作者 引言回覆


引用:
miholee寫到:
公司那邊我是將所有的人加入同一個群組,


謝謝分享...我想也是這樣...


引用:
qoowater寫到:
要裝remine 可以試試看這個 http://bitnami.org/stack/redmine


nice...剛看了一下~ 除了qoowater兄提到的1)installer(適用於windows, linux & mac)外....他還有2)適用於VMWare or VirtualBox image(也就是linux+redmine整合版)....再加3)cloud(e.g. Amazon EC2)的版本...



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9423
 . 精華: 28
 . 文章: 9950
 . 收花: 79350 支
 . 送花: 11004 支
 . 比例: 0.14
 . 在線: 2907 小時
 . 瀏覽: 187061 頁
 . 註冊: 8219
 . 失蹤: 32
 . 大熊國
#11 : 2011-5-1 05:45 PM     只看本作者 引言回覆

我將TWed2k的source用Git來管理…感覺很棒。剛才取消鮮花系統的推文效果…並將修改commit了。

很好玩呢~ 有圖有真相




[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9423
 . 精華: 28
 . 文章: 9950
 . 收花: 79350 支
 . 送花: 11004 支
 . 比例: 0.14
 . 在線: 2907 小時
 . 瀏覽: 187061 頁
 . 註冊: 8219
 . 失蹤: 32
 . 大熊國
#12 : 2011-5-10 08:59 PM     只看本作者 引言回覆

再加一張…慢慢用下去…真的非常好用呢!

特別是可以將所做的事都記錄下來…很方便。

我的做法是多commit…就算只有一個改動也commit…最重要是commit的內容統一。反正也用不了多少資源。

另外,git的分支(branch)也很好用…當我們有一個新的想法想嘗試…又不想影響本來(master)的程式…就可以建一個分支…



待功能完善完…再加到master上…



如果大家有寫程式…真的非常推薦git…很好用呢。



以下是TWed2k code git log




[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
jfhsu
鐵驢友〔初級〕
等級: 4


 . 積分: 34
 . 文章: 158
 . 收花: 65 支
 . 送花: 8 支
 . 比例: 0.12
 . 在線: 875 小時
 . 瀏覽: 21070 頁
 . 註冊: 8209
 . 失蹤: 37
#13 : 2011-5-12 10:23 PM     只看本作者 引言回覆

可以請問一下看 git log 這個 windows client 是什麼tool呢?


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9423
 . 精華: 28
 . 文章: 9950
 . 收花: 79350 支
 . 送花: 11004 支
 . 比例: 0.14
 . 在線: 2907 小時
 . 瀏覽: 187061 頁
 . 註冊: 8219
 . 失蹤: 32
 . 大熊國
#14 : 2011-5-13 12:29 AM     只看本作者 引言回覆

TortoiseGit (它有整個git command的gui…不只是git log)

>>> http://code.google.com/p/tortoisegit/


Tortoise還有CVS, SVN, Mercuria的windows client...

CVS

>>> http://www.tortoisecvs.org/

SVN

>>> http://tortoisesvn.tigris.org/


Mercuria

>>> http://tortoisehg.bitbucket.org/download/windows.html#win32



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
陽だまり
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15
ささらの可愛さは異常

 . 積分: 1330
 . 精華: 1
 . 文章: 3159
 . 收花: 10387 支
 . 送花: 26639 支
 . 比例: 2.56
 . 在線: 4508 小時
 . 瀏覽: 30308 頁
 . 註冊: 7436
 . 失蹤: 1443
 . 星の彼方
#15 : 2011-5-13 06:56 PM     只看本作者 引言回覆

請問一下熊小
最後是用那一個架
最近剛好沒工作有空閒
也想來測試一下 XD



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

 32  1/3  1  2  3  > 
   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-11-21 08:51 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.036359 second(s), 6 queries , Qzip disabled