1、瞭解Git和Githubhtml
一、什麼是GIT?git
Git是一個免費、開源的版本控制軟件github
二、什麼是版本控制系統?web
版本控制是一種記錄一個或若干個文件內容變化,以便未來查閱特定版本修訂狀況得系統。編程
- 系統具體功能
記錄文件的全部歷史變化app
隨時可恢復到任何一個歷史狀態svn
多人協做開發或修改工具
錯誤恢復gitlab
版本控制的工具:post
- svn
- git :軟件幫助使用者進行版本的管理
三、什麼是Github
Github是全球最大的社交編程及代碼託管網站(https://github.com/)。
Github能夠託管各類git庫,並提供一個web界面(用戶名.github.io/倉庫名)
四、 Github和Git是什麼關係
Git是版本控制軟件
Github是項目代碼託管的平臺,藉助git來管理項目代碼
2、使用Git
一個創業者的故事:
項目背景:這個創業者想開發一個資源共享的系統
階段一:順利上線代碼
首先在你建立的項目的文件夾裏面右鍵--->點擊Gir Bash Here---->吧git運行起來。
一、初始化:git init
二、若是你第一次使用git的時候,須要配置一下。若是你已經配置了,之後就不用配置了
三、吧當前的目錄以及及全部的子文件添加到git:git add . #全部的文件
git templates/index.html #具體添加的文件
四、真實的吧數據提交上線:git commit -m "描述信息"
五、查看狀態,看那個是否被修改過:git status
必定記得先add,後commit,add以後是沒有放到版本里的,只有commit的時候纔有版本
六、查看有幾個版本:查看版本提交記錄 :git log
七、回滾到上一個版本:git reset --hard 版本號
沒一次生成的時候commit後面都會隨機的生成版本號
八、再跳回去(查看日後的版本號):git reflog
Git把管理的文件分爲了兩個區域四個狀態。
add到暫存狀態的時候成綠色了,在commit的時候就沒有了
提供了這個回滾的功能。
階段二:當開發到一半的時候出現bug,修復bug
- 開發直播功能(預計一週開發完成)
當項目開發到一半的時候,出現bug了怎麼辦?
解決思路:把咱們的代碼變成沒開發以前的代碼,改完bug再提交。先把你當前開發的代碼拿走,找個地方先存起來。
那麼怎麼作呢?
方案一:修復bug:stash
stash用於將工做區發生變化的全部文件獲取臨時存儲在「某個地方」,將工做區還原當前版本未操做前的狀態;stash還能夠將臨時存儲在「某個地方」的文件再次拿回到工做區。
特別的:執行 git stash pop 命令時,可能會遇到衝突,由於在緊急修復bug的代碼和經過stash存儲在「某個地方」的代碼會有重合部分,因此執行 git stash pop 時候就會出現衝突,有衝突解決衝突便可。
stash相關經常使用命令:
- git stash 將當前工做區全部修改過的內容存儲到「某個地方」,將工做區還原到當前版本未修改過的狀態
- git stash list 查看「某個地方」存儲的全部記錄
- git stash clear 清空「某個地方」
- git stash pop 將第一個記錄從「某個地方」從新拿到工做區(可能有衝突)
- git stash apply 編號, 將指定編號記錄從「某個地方」從新拿到工做區(可能有衝突)
- git stash drop 編號,刪除指定編號的記錄
當你新開發的代碼和你修復的代碼發生衝突的時候就手動解決衝突。
方案二:修復bug:利用分支(推薦)
默認會有一個master的分支。只作線上的版本,注意不要在master分支上修改,要修改的話就建立一個bug分支
一、建立一個修復bug的分支:git branch bug ,這個bug分支是在master分支上建的,至關於拷貝了一份
二、查看一共有幾個分支 : git branch
三、跳轉到bug分支:git checkout bug
四、跳轉到master分支:git branch master
五、建立一個修復bug的分支:git branch dev #只作開發的版本
如今就有三個分支了,每一個分支都是不同的,bug修復完了,如今就要合併在master上了。
六、master和bug分支合併:git mare bug
七、刪除bug分支:git branch -d bug
八、繼續開發,切到dev:git branch dev
九、開發完畢,master和dev合併:git marge dev
切換以前必定記得把你的代碼提交一下。
合併的時候可能出現衝突,可能不出現,出現衝突了就得手動解決
修復Bug流程: git branch dev git checkout dev # 寫代碼 git add . git commit -m 'xxx' git checkout master git branch bug git chekcout bug # 修復bug git add . git commit -m '緊急修復bug' git checkout master git merge bug git branch -d bug git checkout dev # 繼續開發
階段三: 兩個地方辦公
雲端須要一個存放代碼的地方用Github
公共的
- Github是用來作代碼託管的
- 碼雲,作代碼託管
- csdn code ,作代碼託管
內部搭建:
- gitlab
一、登陸Github
在家裏:
建立完成之後
就會有這樣一個地址,咱們就能夠用這個地址來提交
下面是正在往遠程推送,完了登陸上去就會有mester分支了。
固然咱們也能夠吧dev也推送過來,和上面同樣的方式。
在公司:
克隆
克隆的時候只是把master分支克隆了,其餘的怎麼拿呢?
用 git pull origin dev #拿到遠程的dev
建立目錄
家裏: git add . git commit -m 'xx' git remote add origin https://github.com/WuPeiqi/greenlu.git git push origin master 公司: # 新公司第一次獲取代碼 方式一 git clone https://github.com/WuPeiqi/greenlu.git 方式二 git init git remote add origin https://github.com/WuPeiqi/greenlu.git git pull origin master 直接拿回來 方式三 git init git remote add origin https://github.com/WuPeiqi/greenlu.git 這的兩句至關於git pull origin master 這一句 git fetch origin master 拿到分支上了 git merge origin/master 合併在一塊兒 # 往後 git pull origin master # 或者 git fetch origin master git merge origin/master # 若是你在本地修改問題,又add,又提交,在線上去拿的時候,或許會衝突