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,又提交,在線上去拿的時候,或許會沖突
                    

 

 小應用:

vim a1.py #查看內容
cat a1.py #查看內容
當你在家的時候吧代碼上線了。到了公司以后吧線上的代碼拉回來。git pull origin dev
開始寫代碼了。
寫完之后add commit。。。這時候忘了往github上提交了
回到家的時候,那今天寫的代碼沒提交,怎么辦呢?回公司太晚了,在寫一遍浪費時間
,或許你還記着今天寫的代碼,就在這基礎上又開發了,
這下提高了警記了,就記得提交了 add 、commit 、git push origin dev
第二天又到公司了,那昨天的代碼怎么辦呢、、?是拉下來呢?還是推上去呢?
如果你推上去的話,沒有沖突還好,如果有沖突的話,那你把你的沖突都上線了,不讓你提交,所以我們要先拉下來
先去吧代碼拉下來,git pull origin dev 可能會有沖突,解決沖突。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM