1、Git與Github介紹html
1.Git介紹 git
git是幹什麼用的?實現版本控制。各行各業都須要版本控制,主要實現版本控制的工具方式分別爲svn和Git。程序員
二、Github介紹github
GitHub是一個基於Git的遠程文件託管平臺(同GitCafe、BitBucket和GitLab等)vim
三、兩者關係併發
Git自己徹底能夠作到版本控制,但其全部內容以及版本記錄只能保存在本機,若是想要將文件內容以及版本記錄同時保存在遠程,則須要結合GitHub來使用。使用場景:a、無GitHub:在本地 .git 文件夾內維護歷時文件;b、有GitHub:在本地 .git 文件夾內維護歷時文件,同時也將歷時文件託管在遠程倉庫svn
2、Git基本使用工具
一、第一次使用測試
''' 一、在電腦上安裝git軟件(自行下載軟件並安裝) 二、啓動git:建立的項目的文件夾裏面右鍵--->點擊Git Bash Here 三、git初始化:git init 四、配置Git:分別執行命令: git config --global user.email "you@example.com" git config --global user.name "your name" '''
二、版本控制fetch
''' 一、文件添加到git:git add . (.指目錄下全部的文件,也能夠指定文件) 二、文件提交git備份:git commit -m "描述信息" 三、查看版本狀態:git status 四、查看版本提交記錄:git log 五、回滾指定版本: git reset --hard 版本號 (版本號能夠經過git log查看,爲隨機字符串) 六、查看日後提交記錄:git reflog '''
以上請注意:必定記得先add,後commit,add以後是沒有放到版本里的,只有commit的時候纔有版本。
三、修復bug
有這樣一個場景,產品上線後,開發員A將在繼續開發一個新的功能,當新功能開發到一半時候,忽然線上的版本出現bug,A要對其進行當即的修復,流程以下:
方式一:stash
stash用於將工做區發生變化的全部文件獲取臨時存儲在「某個地方」,將工做區還原當前版本未操做前的狀態;stash還能夠將臨時存儲在「某個地方」的文件再次拿回到工做區。
#步驟: ''' 一、git stash:將開發到一半的直播功能,臨時存儲到「某個地方」 二、git status:查看工做區回到當前版本未作任何操做前(此時即爲上線的版本) 三、修復bug 四、git add . 五、git commit -m '緊急修復bug' 六、git stash pop:將開發到一半的直播功能從「某個地方」再次拿會工做區繼續開發 '''
注意:執行 git stash pop 命令時,可能會遇到衝突,由於在緊急修復bug的代碼和經過stash存儲在「某個地方」的代碼會有重合部分,因此執行 git stash pop 時候就會出現衝突,有衝突解決衝突便可。
方式二:分支
branch稱爲分支,默認僅有一個名爲master的分支。通常開發新功能流程爲:開發新功能時會在分支dev上進行,開發完畢後再合併到master分支。建立新分支,即:拷貝一份當前所在分支代碼到新分支。
#分支相關命令: ''' git branch 分支名稱 建立分支 git checkout 分支名稱 切換分支 git branch -m 分支名稱 建立並切換到指定分支 git branch 查看全部分支 git branch -d 分支名稱 刪除分支 git merge 分支名稱 將指定分支合併到當前分支 '''
修復bug流程:
''' git branch dev (建立開發分支dev,全部的開發在dev分支上進行) git checkout dev 寫代碼 git add . git commit -m 'xxx' git checkout master git branch bug (在master分支建立bug分支,在bug分支上修復bug,master分支上存儲的是正式上線的版本。) git chekcout bug 修復bug git add . git commit -m '緊急修復bug' git checkout master git merge bug (在bug分支上修復完bug後,提交。並再此與master上的版本合併,並不影響dev分支上的開發。) git branch -d bug git checkout dev 繼續開發 '''
3、Github基本使用
一、代碼託管
正常的程序員通常都會存在多個辦公地點,家裏、公司或者咖啡廳,可是咱們又不能隨身將代碼裝在優盤或者隨身攜帶電腦,這該怎麼辦呢?就會用到github進行代碼託管。實例以下:
初次上傳代碼:
''' 一、註冊github帳號,登陸後建立代碼倉庫 二、建立完後複製代碼倉庫的鏈接 三、在git上建立別名:git remote add origin 代碼倉庫鏈接 四、首次上傳代碼到github的master分支:git push origin master 五、一樣也能夠將代碼上傳到dev分支:git push orgin 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 合併在一塊兒
二、協同開發
假如三我的共同開發同一份代碼,每一個人都各自安排了任務,當每一個人都完成了一半的時候,提交不提交呢?要提交,提交到dev嗎,都上傳了一半,這樣回家拿出來的代碼根本跑不起來。因此,爲每個人建立一個分支,各自都在各自的分支上寫代碼,互不影響。很短期內你們暫時先合併一次,否則衝突太多了。可是這個分支不是dev,而是review分支,當老大看完沒問題以後再合併到dev分支。
#先建立了一個dev的分支 git branch dev git checkout dev git push origin dev #又建立了一個review的分支 git branch review gir checkout review git push origin review #建立本身的分支 git branch haiyan git checkout haiyan git pull origin haiyan
應用實例:
張三建立了個文件 git branch xxx git checkout xxx touch a.py ls git add . add commit -m '代碼初始上線' git push origin xxx ls vim a.py #寫了一些內容 git add . add commit -m '小功能開發完畢' git push origin xxx #如今兩人都寫完了,開始合併和review進行合併了 git checkout review git pull origin review #吧遠程的review拉下來 #把本身的合併發到review git merge xxx ls git status git push origin review #再次寫的時候 git pull origin review 李四建立了個文件 git branch yyy git checkout yyy touch s.py ls git add . add commit -m '到了新公司好激動啊' git push origin sk ls vim s.py #寫了一些內容 git add . add commit -m '小開發完畢' git push origin yyy #如今兩人都寫完了,開始合併和review進行合併了 git checkout review #git pull origin review #若是先沒有吧遠程的review拉下來 #吧本身的合併發到review git merge yyy ls git status git push origin review #這時候的review是最新的,那麼張三先提交了,完了她還得拉先來再合併一次 注意:老大看了review分支,若是OK,能夠放到dev分支進行測試,若是測試沒有問題了才放到master分支。 master分支:線上的版本,永遠保證線上的版本,不管是回滾到哪都是能用的
以上內容參考博客:http://www.cnblogs.com/wupeiqi/articles/7295372.html