使用 Git 命令去管理項目的版本控制(二)

參考 上一篇  完成本篇博客,本篇爲做者原創,僅供學習參考。html

本篇博文在上一篇的基礎上這裏記錄了個人一個小模擬練習。本篇做爲本身的學習筆記,也意在方便其餘人的學習使用,達到分享目的。下面主要是操做截圖 參考 cankao  參考linux

首先這裏我要重點說明一下:git 與 svn 的區別,git 是分佈式的管理服務器,一個很好的應用就是 gitHub 網站。是 Linux 內核開源的做者使用27天時間編寫成功的,是否是很是牛逼(參考 )。svn 是一個集中式的服務器。集中式的服務器對網絡的要求比較大,若是沒有網絡,他就不能很好地爲咱們服務,這也是我爲何要分享一下git的使用的緣由之一。可是較大的公司通常仍是出於保密不會使用第三方的託管工具,他們通常都會有本身的內網和代碼管理工具。git可以在沒有網絡的狀況下完成對版本的回覆,提交修改源碼,僅僅在同步服務器的時候須要網絡(將本地的服務器倉庫副本上傳到公司的服務器本來中)。git

首先創建如下文件夾,下面默認已經打開顯示隱藏文件(這個請參照上一篇中的命令)注意,下面出現的中文文件夾,沒有試驗成功,須要修改成英文的名字,這樣就可以進行了提交版本等等實驗。因爲截屏要花費時間,因此下面的博文,從不能實現的地方我進行了修改了英文,前面的重點是一些操做步驟。程序員

將初始化 服務器數據倉庫 爲遠程倉庫(就是咱們Project要託管的地方),打開終端,輸入命令以下:服務器

經理須要在 項目經理 文件夾中 克隆服務器倉庫副本到本地 ,而後再建立工程框架,建立一份濾過性說明文件 .gitignore ,最後將建立好工程框架的數據倉庫副本推送到服務器倉庫(push),截圖以下:網絡

 在終端中找到路徑爲 項目經理/數據倉庫 的路徑,而後爲該服務器副本倉庫配置用戶名,郵箱,而後添加一個工程到副本內部,注意:濾過文件(.gitignore)與(.git)還有 工程文件 三個在同一級目錄(服務器副本文件夾)中。下面省去了用戶名,郵箱配置,截圖以下:框架

 

下面是將上面作好的工做,推送到公司服務器倉庫中:分佈式

程序員張三,去從公司服務器倉庫 獲得整個項目:ide

下面假設李四 和 王五 都作了上面的步驟,這樣 三四五都開始編碼了,第一天開工了:svn

張三工做,張三打開從服務器上克隆下來的工程文件,開始了本身的編碼,編碼一天了,開始提交本身的工做到公司服務器。

點擊 Xcode菜單欄上的source control -> commit 進行提交

    commit 的時候 順便再勾選一下左下角的 push to remote

經理晚上要看看張三這我的,這一天的任務量是否完成

 點擊 Xcode菜單欄上的source control -> pull 進行更新

在pull的時候遇到錯誤以下:

能夠這樣的解決:

 點擊 Xcode菜單欄上的source control -> Discard All Changes 進行將之前的更新撤銷,而後再從服務器拉取更新就OK了

 作到這裏竟然張三提交到服務器的內容,對張3、經理、其餘人都不能pull下來。這裏我仔細檢查了半天,都沒有問題啊,緣由是我採用了中文的名字,在生成路徑的時候,很是的容易出錯,致使系統不能認出來了,因此之後仍是要寫成字母爲好。下面我又新建的文件,開始繼續上面的操做。

注意,user.anme  user.email 是必須寫的,否則在提交代碼的時候會給出警告,不能提交,這裏若是忘了,能夠在終端輸入設置用戶名和用戶郵箱的命令。

這一次我快速的建立了字母的格式的文件夾,就行了,解決了上面的問題。那麼下面我就要基於我字母格式文件夾來模擬操做了。

好了下面的模擬很簡單,文件名字也很簡單(經理-jl,張三-zs ,王五-ww ,公司遠程服務器-sever)

下面模擬王五開始幹活,在工程中操做:

接下來,王五提交任務到服務器

 因爲缺乏用戶名與郵箱,上傳到服務器的時候,以下:

解決辦法:

如今就能夠了,提交以後。jl打開而後pull 就能夠看到ww(王五)作了什麼工做了。

經理要的操做:打開工程-Source Control ->pull....

第二天,張三來的很早,第一件事就是從服務器上down一份最新的工程代碼

下載以前:

下載以後:(pull)

致此,已經模擬了項目經理上傳框架,員工下載框架,員工上傳本身的任務、經理下載查看任務完成狀況。

 之後我還陸續更新,分支的使用,感受寫博客是一件費時的事情,可是呢也有收穫,本身可以再一次的學習理解,分享,還能在遺忘的時候快速回顧。

 

假設這時候公司來了一個新的員工叫 wm(王麻子)

公司第一次給新人的是一個公司服務器倉庫的副本
    因此就要求項目經理建立一下新人服務器的遠程倉庫
    a、建立一個遠程倉庫文件夾 並初始化 git init —bare
    b、有項目經理操做:操做流程:Xcode -> source control -> 主倉庫-master -> configure 主倉庫 -> Remotes -> 左下角+ 添加一個新人服務器地址 -> 填完用戶名和地址以後 done
    c、向新人服務器裏面添加項目
        項目經理->Xcode->source control->push->新人服務器地址裏面
咱們創建一個文件夾,模擬一下經理建立的 新人服務器的遠程倉庫:
 
輸入命令設置用戶名,用戶郵箱,否則後期沒有辦法操做。
 
添加一個新人折騰用的服務器。
 
 
 注意下面經理要push 到 咱們的新人搗蛋折騰服務器哦
 
經理 push新人使用服務器工程 成功
 
新人從項目經理那邊拿到新人服務器的地址,開始clone,並開發。
 
新人已經從折騰服務器中clone 了工程
 
 新人這時候本身玩吧
公司經理分配任務:(讓張三(zs)來修復 1.0版本的 bug ,讓王五(ww)來開發項目1.1版本,新人(xr)負責瞎搗蛋,經理(jl)負責檢查上面員工的進度)這時候經理(jl)在將系統打好版本標記 v1.0   v1.1 以下:
 
經理找來王五開始修改v1.0的bug
    王五應該拿到貼有1.0標籤的這個版本的項目
    (經理修改或者切換本身的版本爲1.0版本,而後push 1.0版本到服務器,張三從服務器 pull下來,並建立分支而後切換到建立的分支,注意看 「常見命令」)
    git checkout -b xiugaiBug 
 
 這時候,張三pull以後,bug修改好了,要提交到主分支並與之合併,能夠 Xcode ->Souce Control ->xiugaiBug->Merge into Branch.... 而後一步一步肯定Ok
最後 王五從服務器 pull 一份,能夠看到裏面修改好了bug 。
 
建立分支: $ git branch mybranch
切換分支: $ git checkout mybranch
建立並切換分支: $ git checkout -b mybranch

更新master主線上的東西到該分支上:$git rebase master

切換到master分支:$git checkout master

更新mybranch分支上的東西到master上:$git rebase mybranch

提交:git commit -a

對最近一次commit的進行修改:git commit -a –amend

commit以後,若是想撤銷最近一次提交(即退回到上一次版本)並本地保留代碼:git reset HEAD^
合併分支:(merge from) $ git checkout master
$ git merge mybranch (merge from mybranch)
刪除分支: $ git branch -d mybranch
強制刪除分支: $ git branch -D mybranch
列出全部分支: $ git branch
查看各個分支最後一次提交: $ git branch -v

查看哪些分支合併入當前分支: $ git branch –merged

查看哪些分支未合併入當前分支: $ git branch –no-merged

更新遠程庫到本地: $ git fetch origin
推送分支: $ git push origin mybranch
取遠程分支合併到本地: $ git merge origin/mybranch
取遠程分支並分化一個新分支: $ git checkout -b mybranch origin/mybranch
刪除遠程分支:                 $ git push origin :mybranch

rebase: $ git checkout mybranch
$ git rebase master (rebase from master)

舉例: $ git checkout server
$ git rebase –onto master server client
$ git checkout master
$ git merge client (fostforward)
$ git rebase master server (checkout sever)
$ git merge server
$ git branch -d client
$ git branch -d server
View Code 常見命令

 

(Over 版本控制僅僅是很淺的學習到這裏,之後還要繼續學習git的知識,這篇博文話費時間最久,決定之後要減小寫博客的時間)因爲我的使用習慣問題,實驗作完了,能夠將原本的隱藏文件設置爲隱藏狀態了,請看  上一篇  中的命令行。(本人用的是 mac 10.11 目前最新蘋果系統)

PS:在公司裏請不要隨意的升級系統,若是你升級了系統,與你的已經作了一半的工程裏面有東西不匹配了,工程報紅,就是你的責任了,你會挨批,會很差過的。因此注意不要擅自升級公司裏本身的系統。

Other:感謝博文 < 參考> < 參考>
相關文章
相關標籤/搜索