1. 程式人生 > >git和github的基本操作 Git和Github的基本操作

git和github的基本操作 Git和Github的基本操作

Git和Github的基本操作

一、瞭解Git和Github

1、什麼是GIT?

Git是一個免費、開源的版本控制軟體

2、什麼是版本控制系統?

版本控制是一種記錄一個或若干個檔案內容變化,以便將來查閱特定版本修訂情況得系統。

  • 系統具體功能

    記錄檔案的所有歷史變化

    隨時可恢復到任何一個歷史狀態

    多人協作開發或修改

    錯誤恢復

版本控制的工具:

  - svn

  - git  :軟體幫助使用者進行版本的管理

3、什麼是Github

Github是全球最大的社交程式設計及程式碼託管網站(https://github.com/)。

Github可以託管各種git庫,並提供一個web介面(使用者名稱.github.io/倉庫名)

4、 Github和Git是什麼關係

Git是版本控制軟體

Github是專案程式碼託管的平臺,藉助git來管理專案程式碼

二、使用Git

一個創業者的故事:

專案背景:這個創業者想開發一個資源共享的系統

階段一:順利上線程式碼

首先在你建立的專案的資料夾裡面右鍵--->點選Gir Bash Here---->吧git執行起來。

1、初始化:git   init

2、如果你第一次使用git的時候,需要配置一下。如果你已經配置了,以後就不用配置了

3、吧當前的目錄以及及所有的子檔案新增到git:git add .    #所有的檔案

                            git templates/index.html   #具體新增的檔案

4、真實的吧資料提交上線:git commit -m "描述資訊"

5、檢視狀態,看那個是否被修改過:git status

一定記得先add,後commit,add之後是沒有放到版本里的,只有commit的時候才有版本

6、檢視有幾個版本:檢視版本提交記錄   :git log  

7、回滾到上一個版本:git   reset --hard   版本號

沒一次生成的時候commit後面都會隨機的生成版本號

8、再跳回去(檢視往後的版本號):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分支

1、建立一個修復bug的分支:git  branch  bug   ,這個bug分支是在master分支上建的,相當於拷貝了一份

2、檢視一共有幾個分支 :  git  branch

3、跳轉到bug分支:git  checkout  bug

4、跳轉到master分支:git branch master 

5、建立一個修復bug的分支:git  branch  dev    #只做開發的版本

現在就有三個分支了,每個分支都是不一樣的,bug修復完了,現在就要合併在master上了。

6、master和bug分支合併:git mare bug  

7、刪除bug分支:git branch -d bug

8、繼續開發,切到dev:git  branch  dev

9、開發完畢,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

1、登入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,又提交,在線上去拿的時候,或許會衝突
                    
複製程式碼

 

 

 

一、瞭解Git和Github

1、什麼是GIT?

Git是一個免費、開源的版本控制軟體

2、什麼是版本控制系統?

版本控制是一種記錄一個或若干個檔案內容變化,以便將來查閱特定版本修訂情況得系統。

  • 系統具體功能

    記錄檔案的所有歷史變化

    隨時可恢復到任何一個歷史狀態

    多人協作開發或修改

    錯誤恢復

版本控制的工具:

  - svn

  - git  :軟體幫助使用者進行版本的管理

3、什麼是Github

Github是全球最大的社交程式設計及程式碼託管網站(https://github.com/)。

Github可以託管各種git庫,並提供一個web介面(使用者名稱.github.io/倉庫名)

4、 Github和Git是什麼關係

Git是版本控制軟體

Github是專案程式碼託管的平臺,藉助git來管理專案程式碼

二、使用Git

一個創業者的故事:

專案背景:這個創業者想開發一個資源共享的系統

階段一:順利上線程式碼

首先在你建立的專案的資料夾裡面右鍵--->點選Gir Bash Here---->吧git執行起來。

1、初始化:git   init

2、如果你第一次使用git的時候,需要配置一下。如果你已經配置了,以後就不用配置了

3、吧當前的目錄以及及所有的子檔案新增到git:git add .    #所有的檔案

                            git templates/index.html   #具體新增的檔案

4、真實的吧資料提交上線:git commit -m "描述資訊"

5、檢視狀態,看那個是否被修改過:git status

一定記得先add,後commit,add之後是沒有放到版本里的,只有commit的時候才有版本

6、檢視有幾個版本:檢視版本提交記錄   :git log  

7、回滾到上一個版本:git   reset --hard   版本號

沒一次生成的時候commit後面都會隨機的生成版本號

8、再跳回去(檢視往後的版本號):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分支

1、建立一個修復bug的分支:git  branch  bug   ,這個bug分支是在master分支上建的,相當於拷貝了一份

2、檢視一共有幾個分支 :  git  branch

3、跳轉到bug分支:git  checkout  bug

4、跳轉到master分支:git branch master 

5、建立一個修復bug的分支:git  branch  dev    #只做開發的版本

現在就有三個分支了,每個分支都是不一樣的,bug修復完了,現在就要合併在master上了。

6、master和bug分支合併:git mare bug  

7、刪除bug分支:git branch -d bug

8、繼續開發,切到dev:git  branch  dev

9、開發完畢,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

1、登入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,又提交,在線上去拿的時候,或許會衝突
                    
複製程式碼