Git詳解和Github的使用


Git和Github的概念:

  Git是分布式版本管理系統,簡單說就是一個軟件,用於記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的軟件。

  Github是一個為用戶提供Git服務的網站,簡單說就是一個可以放代碼或文件的地方,Github除了提供管理Git的web界面外,還提供訂閱,關注,討論組,在線編輯器等豐富功能。

 

Git的下載和Github賬號的注冊:

  1.Github的賬號注冊地址:https://github.com/join?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home

  2.Git的官方下載地址:https://git-scm.com/downloads     如果下載慢的可在:https://npm.taobao.org/mirrors/git-for-windows/下載(直接默認安裝即可),桌面右鍵查看是否有 Git Bash Here和 Git GUI Here,則證明安裝成功 

 

Git的工作流程:

 

 

 

 

 

Git本地倉庫操作:

  1.首次使用需進行全局配置:

    配置用戶名:git config --global user.name "用戶名";

    配置用戶郵箱:git config --global user.email "郵箱";(這里使用Github的用戶名和郵箱)

  2.創建目錄命令:兩種創建方式:①mkdir 文件名 ②windows下右鍵創建文件夾

    

 

 

 

  3. ① cd flask_blog(進入項目目錄)

   ② git init 初始化

    進入目錄flask_blog,勾選隱藏的項目,即可顯示

 

 

 

 

    

 

 

     ③git status,查詢當前工作區所有文件的狀態;

 

          

      nothing to commit (create/copy files and use "git add" to track)當前沒有進行任何提交,可以創建或者復制文件,並使用"git add"命令進行跟蹤

 

 

    ④那么我們當前應該新建文件在所創建的flask_blog目錄下,然后 git add指令可將文件添加到緩存區

        提交的方式有三類:

          語法1:git add 文件名

          語法2:git add 文件1 文件名2 文件名3....

          語法3:git add.   【添加當前目錄到緩存區】

      

 

      這里就使用git add readme.txt的方式添加到緩存區

    ⑤提交過后,使用git status 查看當前文件狀態

 

      

 

     這里提示我們可以利用git rm --cached <file>指令清除文件,但我們不需要這樣做

    ⑥接下來可以利用:  git commit -m "注釋內容"   指令將緩存區的文件提交至版本庫

 

     

 

 

      ⑦下面我們可以進行版本回退的操作

    我再新建一個文件提交到版本庫,文件名為index1.py

    重復上述操作 ⑴git add index1.py ⑵git commit -m "新建文件index1.py"

    

 

 

     查看版本命令:⑴ git log ⑵git log --pretty=oneline

 

    

 

 

     兩種方式不同的顯示日志的方式,一般使用第二種,清晰明了。

    

 

 

      黃色部分為版本號,后面為注釋內容

   現在我們要回到第一個版本的狀態,使用命令: git reset --hard 版本號

 

     

 

 

      執行完畢后,本地倉庫變為

              

 

    ⑧如果我們需要回到有index1.py這個文件時的狀態,可以進行下列操作:

    使用指令去查看歷史操作:git reflog

     

 

 

      然后進行回到此狀態的操作:

     

 

 

     總結:a.要想回到過去,必須先得到 commit id (版本號),然后通過git reset --hard 進行回退;

        b.要想回到未來,需使用 git reflog 進行歷史操作查看,得到最新的 commit id;

        c.在寫回退指令的時候 commit id 可以不用寫全,git 自動識別,但是也不能寫太少,至少需要寫前四位字符

 

 

 

Github遠程倉庫的創建:

    1.登錄Github賬號

  2.點擊Start a project

 

             

 

 

  3.①Responsitory name為倉庫名,必填

     ②Public互聯網上任何一個人都可以看到此庫,Private此庫只可以授權的才能提交,一般選擇Public,然后確認創建即可

   

 

 

 

Github遠程倉庫的使用:

 一.HTTPS協議

  1.遠程倉庫的克隆操作

  

 

    ①cd .. 返回到上一層目錄

    ②mkdir ./splider 創建目錄

    ③使用 git clone 克隆線上倉庫到本地

    語法:git clone 線上倉庫地址

       

 

     cd splider 進入splider目錄,進行克隆指令 ,這里會出現一個警告warning: You appear to have cloned an empty repository,

     意思為你克隆了一個空倉庫,不用去管。

      

      克隆完成

        

      然后進入克隆好的 splider_clone,里面存在一個".git"文件夾,如下:

        

 

    2.將工作區的內容提交到github遠程倉庫

     在倉庫上對應的操作 (提交到暫存區、提交到本地倉庫、提交到線上倉庫、拉取線上倉庫)

     ① 在splider_clone下創建 readme.txt文件

     

 

 

       

       進入到splider_clone目錄下

          

 

      ③ 使用命令 git add readme.txt 提交到緩存區,使用 git commit -m "新建文件readme.txt" 將暫存區的文件提交到本地倉庫中:

        

      ④ 使用命令 git push 將本地倉庫的文件提交到線上倉庫,會彈出一個 Personal Access Token 窗口

        

          

 

 

         去Github獲取自己的Personal Access Token

          點擊進入settings

          

 

 

           點擊進入Developer settings

          

 

 

           點擊進入 Personal access tokens

            

 

 

          點擊進入  Generate new token

          

 

 

 

         輸入Github賬號密碼

        

 

 

         這里填 Note,repo勾選即可:

              

 

 

          確認獲取

            

 

 

         這里就是獲取到token

          

 

 

         填入即可, 點擊 Sign in :

        

 

 

         成功提交到線上倉庫成功:

             

 

 

        檢查線上倉庫是否有readme.txt 文件:

          

 

 

 

 

      3.拉取線上倉庫文件操作  語法:git push

      我們先在線上倉庫創建文件

       

 

 

         填上文件名和注釋

          

 

       創建

        

    

         

 

 

       git pull 拉取線上倉庫文件到本地

          

 

           

 

           提醒:在每天工作的第一件事就是先 git pull 拉取線上最新的版本;每天下班前要做的是 git push,將本地代碼提交到線上倉庫

     

  二、ssh協議

    *該方式與前面https方式相比,只是影響github對於用戶的身份鑒權方式,對於git的具體操作(如提交本地,添加注釋,提交遠程等操作)沒有任何影響  

 

    ①先安裝OpenSSH,下載地址:https://openssh.en.softonic.com

     ② 生成公私鑰對指令: ssh-keygen -t rsa -C "注冊郵箱"

        Enter file in which to save the key (/c/Users/cwg-member/.ssh/id_rsa)  這句話詢問我們把公私鑰對放在那里,直接默認位置就行,敲回車

          

 

 

           叫我們公私鑰對保護密碼,如果不需要密碼直接回車就行

             

 

 

           連續回車,得到這個,

             

 

 

           去公私鑰對的保存位置,用記事本打開 id_rsa.pub 文件,復制里面的內容

 

             

 

 

             

 

 

       ③在Github上設置公鑰內容

        點擊 SSH and GPG keys,進入New SSH key 進行設置

        

 

 

           

         把剛剛復制的公鑰內容復制到key里面,標題自取,Add SSH key即可

          

 

         再次確認密碼即可

          

 

 

 Git 的分支操作:

  在版本回退的中,每次提交都會有記錄,Git把它們串成時間線,行程類似於時間軸的東西,這個時間軸就是一個分支,我們稱之 master 分支。

  在開發的時候往往是團隊協作,多人進行開發,因此光有一個分支是無法滿足多人同時開發的需求的,並且在分支上工作並不影響其他分支的正常使用,會更加安全。Git 鼓勵開發者使用分                支去完成一些開發任務。

   ①分支相關指令:

    查看分支:git branch

    創建分支: git git branch 分支名

    切換分支: git checkout 分支名 

    刪除分支:git branch -d 分支名

    合並分支: git merge 被合並的分支名

    創建分支並切換到創建的分支: git checkout -b 分支名  (-b 表示創建並切換 相當於兩個操作指令)

 

    ②分支指令操作如下:

     查看分支:

       

 

 

     創建分支並查看分支:

       綠色字體表示當前所在分支

 

       

 

 

 

 

 

 

 

     切換分支:

      標紅部分表示切換成功,分支名改變

      

 

     合並分支:

 

        我們現在需要在devr分支下修改 readme.txt的文件內容並提交到本地,如下

      

         然后我們進入到 master 分支,標紅表示分支切換回來了

      

 

 

       再去查看readme.txt文件發現並沒有我們修改過的文件,說明這是在兩個不同的分支進行的操作:

 

          

 

 

       

 

 

         合並操作,將 devr 分支合並到master分支中

        

 

 

         再去查看 master 分支下的 readme.txt的內容,說明合並成功

 

          

 

 

 

 

        刪除分支:

        因為devr分支里面的文件已經合並到master分支中去了,我們可以刪除devr分支,在用 git branch查看分支,發現 devr分支已經被刪除

          

 

          注意:在刪除分支的時候,一定要先退出要刪除的分支

 

 

   ③合並所有分支之后,需要將 master 分支提交線上遠程倉庫,提交命令 git push 。

 

 

       

 

 

 Git 沖突的產生與解決:

   情景概述: 同事在線上倉庫修改了某個文件,這個文件是交給小明完成的,結果第二天小明來上班並不知道文件已被修改,繼續在本地完善代碼,到下班時,小明和平時一樣進行 git add 文件名    ,git commit -m "注釋",git push操作時,發現向線上倉庫提交時報錯了。圖中提示先 git pull操作,git pull操作后,此時git已經將線上與本地倉庫的沖突合並到了對應的文件中。打開沖突文                      件,解決沖突。解決方法:需要和同事進行商量,看代碼如何保留,將改好的文件再次提交即可。

   

    

 

 

     

 

 

     

 

 

 

 

 

 

 圖形化管理工具:

   ①Github for Desktop

 ②Source tree

 ③TortoiseGit

 ⑤Git GUI  

    

 忽略文件操作:

  一、應用場景:如果不想提交某些文件到線上倉庫中去,可以使用此操作。

  二、常見規則寫法:

    ① /mtk/  過濾整個文件夾

    ② *.zip    過濾所有.zip文件

    ③ /mtk/do.js  過濾某個具體文件

    ④ !index.php 不過濾具體某個文件

  三、案例:

    ①先在本地倉庫中新建一個js目錄以及目錄中 js 文件

      

 

 

     

  

      ②依次提交本地與線上

        

 

       新增 .gitignore 文件,用指令 touch .gitgnore 創建

        

 

      ④ 編寫文件中的規則(根據自己的需要編寫即可)

       /js/ 就是忽略掉js目錄

         

 

      ⑤ 然后再在js新建一個js文件

        

 

      ⑥然后再進行提交

      

 

 

     ⑦去線上倉庫看,發現並沒有 m.js 文件,說明此js目錄被忽略

      

 

                                                                  

博客地址:https://www.cnblogs.com/gian-t87/p/14513056.html

作者:TUT

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

                                                                                     

 

       

      

      

       

 

 

         

 

 

 

    

    

 

 

    

 

 

 

   

 

 

  

  

  

   


免責聲明!

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



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