之前一直都是在使用svn進行**版本管理,新公司使用的git,雖說之前在github上使用過幾次,但使用場景太過簡單,與公司多人,多分支的開發場景相比,就算沒有使用過,因此注定要碰壁!雖然git 的使用方法,網上一搜一大推,但是作為新手,最可悲的:所有的使用方法都擺在那裡,但是你就不知道,也不敢隨便使用!畢竟是在實戰。現在總結下來,希望可以幫助到和我一樣的新手,不要像我一樣因為乙個小小的使用工具,信心嚴重受到打擊!這裡要感謝公司的同事——志凌,算是我git使用的啟蒙指導老師。
本篇文章主要介紹git管理專案的乙個簡單,基本的使用流程,老手請忽略!但對新手來說應該是進入公司必備的操作流程,還是比較重要的。良好的開端是成功的一半。初次的使用,一定程度上會決定著你對這款工具的印象和深入學習的慾望,也是剛進公司時個人信心提公升的關鍵時刻,假如你能夠順利上手,就能夠迅速進入工作狀態,但是如果無從下手,那就是能力不強的表現了,後果很可能就是惡性迴圈。看到這是不是感覺有必要收藏一下,哈哈!
兩者都是優秀的版本管理工具。
git是分布式:伺服器和每個開發人員都擁有乙個本地的**管理倉庫,進行本地的**管理;
svn集中式:只有在伺服器上有乙個**管理倉庫;
最後一句:我感覺git 比svn好用!,有點規模的公司都在用(我接觸過的)!
其它的具體細節,可以自己去谷歌!這裡不是我講的重點。
使用git進行專案管理和開發,一般情況下,會在服務端(origin)建立乙個倉庫進行**的管理,倉庫會維護三大塊分支。如下圖
master分支:只有乙個,作為主分支
dev分支:專案當前版本的開發分支,程式設計師會基於此分支 來切 本地分支,進行開發。
其它版本的分支:專案每個版本,在開發測試完成後,最終的穩定**。每當乙個版本的開發測試完成後,都會將當前版本的穩定**合併到master分支。
假如在開發當前版本時,發現dev7.0.0版本線上出現了bug。此時,就可以基於dev7.0.0分支,進行修復,這是維護其它版本分支最大的好處。
配置ssh的好處就是,本地向伺服器push**時就不用總是填寫使用者名稱和密碼了!
(1)、拉取**
$ git clone 《版本庫的**》
該命令會在本地生成乙個目錄,與origin的版本庫同名,目錄下面包含 .git檔案(預設是隱藏的),和伺服器上master分支的**(也有可能沒有,因為master分支上一般沒有許可權獲取);要注意此時是在master分支上的,可以使用 $ git branch 命令檢視! 但是我們是要切dev分支上的**!
$ git checkout dev
該命令是將本地版本庫(local)切換到dev分支(前提 是origin上已存在dev分支),建立local與origin對應分支.此分支可以直接與origin對應分支進行通訊。如執行**的上傳(push)和更新(pull)操作. ps(也可以使用 $ git checkout -b dev origin/dev命令代替)
$ git pull
$ git checkout – b local
該命令,基於dev分支,建立新分支 local,並切換到 local分支,一定要建立新分支進行開發,決不能基於本地dev分支開發,最後就可以將**匯入開發工具了!此時執行 $ git branch 命令應該可以看到 dev 和local 兩個分支。
(2)、**提交
思考:如何將**提交到伺服器?
分析:如果一切正常,我們目前應該是在基於本地dev分支基礎上建立的local分支上,前面已經說過,本地只有dev分支才能與伺服器dev分支進行通訊,執行**的pull和push操作。那麼我們要做的就是 將 local分支上的**,提交到本地dev分支上,之後切換到dev分支,執行push命令,就ok了!!
$ git status
此命令可以檢視當前分支上有哪些檔案改動了,建議首先執行一下,檢視改動的檔案,避免提交不需要提交的檔案。如果想恢復改動的檔案,執行 $ git checkout — 檔案路徑/檔名 。
$git add .
改命令將分支上改動的檔案(即工作區改動檔案),新增到暫存區
$ git commit -m 「修改說明」
將暫存區的檔案提交到版本庫(我的理解這個版本庫在這裡應該指的是本地dev分支)
$ git checkout dev
切換到本地dev分支
$ git pull
該命令將origin/dev分支上的**,更新到local/dev 分支上。
$ git checkout local
該命令切換到本地local分支
$ git rebase dev
該命令將 dev分支上的最新**,合併到 本地local分支上。此時很可能會遇到檔案衝突的問題,需要到衝突所在的檔案下手動修改,修改好後,執行 $ git add . 執行 $ git rebase –continue,此時應該可以成功合併。
$ git push origin head:refs/for/dev
此命令將本地local分支上修改的**提交到伺服器上。
以上,就是在公司實際開發中,開發人員所必經的一套簡單基礎完整的git工作流程。當然,這些只是在一切正常的情況下,git的強大之處遠不止這些!還有很多複雜的應用場景,我會根據自己實際的工作經驗一一講解。最後,如有錯誤之處還請批評指正,謝謝!!
乙個半路出家自學程式設計師的經驗分享
流程 入職引導流程
入職引導走一波,讓新進員工順利入職,並讓新員工感受到團隊的氛圍 hr 基本入職引導,相關人力資源入職流程 leader 帶領新員工入工位,參觀辦公室 leader 介紹mentor,團隊結構 同組成員及日常合作的產品 開發等 leader 介紹團隊文化,強調重點事項 leader 邀請新員工及men...
入職培訓 一 git版本管理
下面的這個圖就很好的反映了我剛聽到git的時候,下面的三連問就很好的反應了我當時的狀態。相信很多大四的畢業生,在寫 時都對下面的情況深有體會的吧 哈哈哈,太真實了 好了,言歸正傳,下面我們來看下什麼是git。git是乙個免費的開源分布式版本控制系統,旨在快速高效地處理從小型到大型專案的所有內容。下面...
IT職場人生系列之十六 入職(新手篇)
這是it職場人生系列第十六篇。本文描述的是入職前半年的工作要點,新手和老手的差別很大,所以分開寫。最近外出培訓四天,沒來得及面試,回來的時候很看好的乙個剛畢業一年的asp.net程式設計師被人錄用了。作為剛工作不久的新手,到一家新公司的前半年應該做些什麼事情呢?不要過問企業戰略 企業文化 很多新手選...