1-git版本控制


  • 版本控制


  • 發(fā)展歷史
    • CVS : 遠古時代的版本控制軟件
    • SVN : 集中式源代碼管理器
    • GIT : 分布式源代碼管理器
  • 集中式和分布式版本管理器的區(qū)別
    • 集中式版本管理器只在遠程服務器上安裝代碼數(shù)據庫 , 本地只能遠程訪問 , 下載需要的源文件 , 本地將源文件編輯完成 , 再上傳到遠程代碼數(shù)據庫
    • 分布式版本管理器在本地也安裝了代碼數(shù)據庫 , 可以在本地進行版本管理 , 將希望上傳的版本上傳至遠程數(shù)據庫
    • 集中式版本控制每個文件都有隱藏的文件夾與之對應
    • 分布式版本控制只有根目錄會有隱藏文件夾
  • 簡介 : 版本管理器就是將我們在編寫代碼時 , 出現(xiàn)的我們需要保留的版本 , 修改的bug , 增加的功能 , 等不同階段的我們希望保留下來的代碼或者編輯記錄 , 通過上傳代碼數(shù)據庫的方式記錄下來 , 方便程序員劃分功勞 , 升級代碼.

  • Git工作原理


  • 工作區(qū) : 就是.git隱藏文件夾所在的目錄 ,用于存放需要需要管理的源文件 , 我們要想看到隱藏文件夾 , 需要在查看里設置 , 通常我們新建一個項目文件夾 , 在里面初始化倉庫(代碼數(shù)據庫)
  • 版本庫
    • 版本庫就是.git文件夾中的內容
    • 暫緩區(qū) : 工作區(qū)的文件要想進行版本管理 , 必須先把它上傳到暫緩區(qū)
    • 分支 : 分支就是文件最終的存儲位置 , 默認的分支就是master , 即所有版本控制的文件信息都在master目錄下
    • head指針 : 指向當前文件的存儲分支 , 默認指向分支master

  • Git單機版使用說明


  • 下載git , 驗證有沒有下載成功 , 只需要右擊 , 看會不會多出兩個關于git的選項 , 或者cmd , 在命令行中輸入git [--v] , 查看安裝的git版本
  • 創(chuàng)建倉庫 : 首先新建一個項目管理文件夾 , 在文件夾中右擊 , 打開git的終端控制程序 , 輸入git init , 即可在此文件夾中創(chuàng)建版本庫 , 驗證有沒有創(chuàng)建成功 , 只需要在查看中勾選顯示隱藏文件夾即可 , 如果當前目錄下出現(xiàn).git文件夾說明創(chuàng)建成功
  • 配置信息 : 我們需要給這個項目配置相關信息 , 必要的有兩個
    • 用戶名 : git config user.name "用戶名"
    • 用戶郵箱(便于其它人聯(lián)系作者) : git config user.email "郵箱地址"
    • git config -r : 查看當前版本庫的配置信息
  • 在工作區(qū)創(chuàng)建文件(任何類型)
  • 將文件添加到版本庫暫緩區(qū) :git add 文件名 , git add . (將當前全部文件添加到暫緩區(qū)) >* 查看當前版本庫的狀態(tài) : git status , 工作區(qū)的文件顯示紅色 , 暫緩區(qū)的文件顯示綠色 , 分支下的文件顯示無色
  • 將暫緩區(qū)的文件移到當前分支 : git commit -m"說明信息"
  • 查看提交日志
    • 詳細 : git log
    • 簡短 : git reflog
  • 更改文件 : 工作區(qū)中已經提交過的文件如果修改了 , 需要重新提交
  • 查看文件最新改動的地方 : git diff 文件名 , git diff (查看當前路徑所有文件最新改動的地方)
  • 讓當前工作區(qū)文件回到上一個版本 : git reset --hard HEAD^(一個^代表回到上一個版本) , git reset --hard HEAD~N(代表回到上N個版本)
  • 讓當前工作區(qū)文件回到指定版本 : git reflog(查看版本編號) , git reset --hard 版本編號
  • 刪除工作區(qū)文件 : git rm 文件名
  • 將刪除文件從版本庫移除(在版本庫中記錄刪除文件操作) :git commit -m"刪除文件名"
  • 設置不能提交的隱私文件 : 企業(yè)開發(fā)專用鏈接(在這里把不同語言中 , 企業(yè)不能提交的文件都設置好了) , 對于個人來說 , 我們需要在工作區(qū)新建 .gitignore文件 , 這個文件需要在當前目錄下 , cmd進入命令行 , 輸入type NUL > .gitignore創(chuàng)建 , 將不能提交的文件名稱放入這個文件夾 , 就不會再版本控制中看到關于這個文件的任何信息

  • Git團隊開發(fā)使用說明


  • 概要 : 與單人開發(fā)不同的是 , Git團隊開發(fā)需要多個人同時對項目進行開發(fā) , 項目經理會先在服務器上初始化一個共享倉庫 , 這個共享倉庫可以在任何存儲設備上 , 區(qū)別在于一個需要通過url下載 , 一個需要通過路徑下載 , 個人只需要將這個共享倉庫下載到本地 , 進行版本控制 , 將可以運行的代碼版本 , 提交到共享倉庫就可以了
  • 流程 :
    • 初始化共享倉庫 : git init --bare (不要直接在遠程倉庫寫代碼 , 要程序員寫就可以了 , 他們在遠程服務器上下載倉庫)
    • 拷貝遠程倉庫到本地 : git clone 遠程倉庫地址
    • 配置 : git config user.name "你的名稱" , git config user.email "你的郵箱地址"
    • 提交 : add . / 文件名稱 , git status(查看是否提交成功) , git commit -m"我提交的代碼" (提交到head指針指向的分支 , 默認是master分支)
    • 更新遠程數(shù)據庫 : 如果遠程數(shù)據庫有更新 , 必須同步到本地 , 才能提交新的代碼 , git pull
    • 提交到遠程數(shù)據庫 : git push
  • 補充說明 : git config -l (以列表的形式查看當前配置) , git status(查看工作區(qū)和暫緩區(qū)文件狀態(tài)) , git diff(對比工作區(qū)文件和提交文件之間的差異) , git reset --hard^^ / --hard~N / --hard 版本號(通過git reflog查看)

  • Git協(xié)同模型


  • 概要 : 有時候由于市場原因 , 老板要求新添加功能 , 但是作為項目經理 , 我不確定這個功能能在項目截至時間內完成 , 我會新開一個分支 , 讓比較牛的人去開發(fā)這個功能 , 新開的分支 , 會繼承主分支的所有內容 , 在開發(fā)完后 , 可以和主分支合并 , 沒有開發(fā)完 , 也不會影響主分支的進程
  • 流程
    • 查看倉庫有多少分支 : git branch ( * 代表頭指針指向的分支)
    • 新建一個分支 : git branch 分支名稱
    • 切換分支 : git checkout 分支名稱 (新建分支會保存master分支所有記錄)
    • 合并分支 : git merge 分支名稱 (將指定分支合并到主分支中)
    • 刪除分支 : git branch -d 分支名稱 (刪除指定分支)

  • 劃重點


  • 單人開發(fā)
    • 在工作區(qū)中打開git終端
    • 通過git init指令 , 初始化版本庫
    • 編寫代碼
    • 將編寫的代碼通過git add , 添加到版本庫的暫緩區(qū)
    • 通過git commit -m"說明" 將暫緩區(qū)的文件添加到HEAD指針指向的分支中 ( 默認只有一個分支 , master分支 , 也稱之為主分支)
    • 通過git log查看我們每次添加修改的內容
    • 通過git diff 查看當前文件和版本庫中文件的差異
    • 通過git reset --hard 版本號 在任意版本之間切換
  • 多人開發(fā)
    • 項目負責人在服務器上的工作區(qū)中打開git終端
    • 通過git init --bare , 初始化一個共享的版本庫
    • 項目負責人通過git clone從遠程服務器上下載共享的版本庫到本地
    • 編寫代碼
    • 將編寫的代碼通過git add . 添加到版本庫的暫緩區(qū)中
    • 通過git commit -m"說明" 將暫緩區(qū)的文件添加到HEAD指針指向的分支中
      • 注意 !! 一定不要將不能運行的代碼提交到遠程的版本庫
      • 一般情況下 , 在企業(yè)開發(fā)中 , 本地的提交可能稍微頻繁一些 , 但是提交到遠程服務器的操作不會那么頻繁 , 一般情況下一天最多兩次
    • 通過 git push 將本地編寫好的代碼提交到遠程服務器的版本庫
    • 其它開發(fā)人員可以通過 git clone或者git push從遠程服務器獲取最新的代碼
  • 注意點 !!!!
    • 在企業(yè)開發(fā)中 , 如果有其它同事往服務器上提交了新的代碼 , 那么我們就沒辦法直接提交 , 如果我們想要提交 , 那么我們必須先將服務器上的代碼更新到本地
    • 更新到本地之后 , 如果沒有代碼沖突 , 那么可以直接提交
    • 更新到本地之后 , 如果有代碼沖突(在同一個文件的同一行編輯了代碼) , 那么必須先手動解決了沖突 , 才能提交

在企業(yè)開發(fā)中 , 一定要記住 , 千萬不要好幾天都不提交代碼 , 否則后果非常嚴重 , 很多爛屁股等你擦 , 一般情況下 , 一旦分配給自己的某個功能實現(xiàn)了就立即提交到遠程服務器 , 或者分配給你的任務中 , 某個模塊實現(xiàn)了就立即提交到遠程服務器 , 只要保證提交到遠程服務器的代碼是可以運行的就行

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末厢拭,一起剝皮案震驚了整個濱河市爱榔,隨后出現(xiàn)的幾起案子夏志,更是在濱河造成了極大的恐慌像啼,老刑警劉巖楞泼,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件领追,死亡現(xiàn)場離奇詭異,居然都是意外死亡唬血,警方通過查閱死者的電腦和手機望蜡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拷恨,“玉大人脖律,你說我怎么就攤上這事⊥笾叮” “怎么了小泉?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵芦疏,是天一觀的道長。 經常有香客問我微姊,道長酸茴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任柒桑,我火速辦了婚禮弊决,結果婚禮上,老公的妹妹穿的比我還像新娘魁淳。我一直安慰自己飘诗,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布界逛。 她就那樣靜靜地躺著昆稿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪息拜。 梳的紋絲不亂的頭發(fā)上溉潭,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音少欺,去河邊找鬼喳瓣。 笑死,一個胖子當著我的面吹牛赞别,可吹牛的內容都是我干的畏陕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼仿滔,長吁一口氣:“原來是場噩夢啊……” “哼惠毁!你這毒婦竟也來了?” 一聲冷哼從身側響起崎页,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鞠绰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后飒焦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜈膨,經...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年牺荠,在試婚紗的時候發(fā)現(xiàn)自己被綠了翁巍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡志电,死狀恐怖曙咽,靈堂內的尸體忽然破棺而出蛔趴,到底是詐尸還是另有隱情挑辆,我是刑警寧澤例朱,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站鱼蝉,受9級特大地震影響洒嗤,放射性物質發(fā)生泄漏。R本人自食惡果不足惜魁亦,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一渔隶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧洁奈,春花似錦间唉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至印叁,卻和暖如春被冒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背轮蜕。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工昨悼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跃洛。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓率触,卻偏偏與公主長得像,于是被迫代替她去往敵國和親税课。 傳聞我的和親對象是個殘疾皇子闲延,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容

  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統(tǒng)韩玩,...
    君惜丶閱讀 3,529評論 0 13
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評論 9 163
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git垒玲,從https:/...
    落魂灬閱讀 12,665評論 4 54
  • 我時常在雨城最高的樓上站著,俯瞰整座城找颓。 這座城是大陸上降雨最多的地方合愈,城內糧草需要朝廷來運送。往來有敵國之諜击狮,滔...
    之卿閱讀 365評論 0 1
  • 最近學習的時候佛析,經常聽到模型這兩個字,雖然它一直伴隨著我的學習歷程彪蓬,但是第一次聽到別人拿出來說還是在王垠大神的博客...
    我不懂我不懂a閱讀 751評論 0 0