git和github的基本操做

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,又提交,在線上去拿的時候,或許會衝突
                    
複製代碼
相關文章
相關標籤/搜索