天天看點

Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

python學習目錄傳送門

Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

文章目錄

  • Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
    • GIT和GitHub
      • 一. GIT概述
      • 二. GIT使用
        • 2.1 初始配置
        • 2.2 基本指令
      • 總結
      • 三. 版本控制
      • 四. 分支管理
        • 4.1 基本概念
        • 4.2 基本操作
        • 4.3 分支沖突問題
      • 五.GitHub使用
        • 5.1 擷取項目
        • 5.2 建立自己的項目倉庫
        • 5.3 遠端倉庫操作指令
      • GIT常用指令[回顧]

GIT和GitHub

一. GIT概述

  • 什麼是GIT

    GIT是一個開源的分布式版本控制系統,用于高效的管理各種大小項目和檔案。

  • 代碼管理工具的用途
    • 防止代碼丢失,做備份
    • 項目的版本管理和控制,可以通過設定節點進行跳轉
    • 建立各自的開發環境分支,互不影響,友善合并
    • 在多終端開發時,友善代碼的互相傳輸
  • GIT的特點
    • git是開源的,多在*nix下使用,可以管理各種檔案
    • git是分布式的項目管理工具(SVN是集中式的)
    • git資料管理更多樣化,分享速度快,資料安全
    • git 擁有更好的分支支援,友善多人協調
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • Linux下GIT安裝
sudo apt install git

二. GIT使用

Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 基本概念
  • 工作區:項目所在操作目錄,實際操作項目的區域
  • 暫存區: 用于記錄工作區的工作(修改)内容
  • 倉庫區: 用于備份工作區的内容
  • 遠端倉庫: 遠端主機上的GIT倉庫
注意: 在本地倉庫中,git總是希望工作區的内容與倉庫區保持一緻,而且隻有倉庫區的内容才能和其他遠端倉庫互動。

2.1 初始配置

  • 配置指令: git config --global [選項]
  • 配置檔案位置: ~/.gitconfig
  1. 配置使用者名
e.g. 将使用者名設定為AK
           
sudo git config --global user.name AK
           
  1. 配置使用者郵箱
e.g. 将郵箱設定為[email protected]
           
git config --global user.email [email protected]
           
  1. 檢視配置資訊
sudo git config --list
           
注意: 該指令需要在某個git倉庫下執行
  • 實際操作
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

2.2 基本指令

  • 初始化倉庫
sudo git  init 
           

意義:将某個項目目錄變為git操作目錄,生成git本地倉庫。即該項目目錄可以使用git管理

  • 檢視本地倉庫狀态
sudo git  status
           
說明: 初始化倉庫後預設工作在master分支,當工作區與倉庫區不一緻時會有提示。
           
  • 将工作内容記錄到暫存區
git add [files..]
 
 e.g. 将檔案 a ,b 記錄到暫存區
 git add  a b
 
 e.g. 将所有檔案(不包含隐藏檔案)記錄到暫存區
 git add  *
           
  • 實際操作
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 取消檔案暫存記錄
    git rm --cached [file] 
               
  • 設定忽略檔案

    在GIT項目中可以在項目根目錄添加**.gitignore**檔案的方式,規定相應的忽略規則,用來管理目前項目中的檔案的忽略行為。.gitignore 檔案是可以送出到公有倉庫中,這就為該項目下的所有開發者都共享一套定義好的忽略規則。在.gitignore 檔案中,遵循相應的文法,在每一行指定一個忽略規則。

    .gitignore忽略規則簡單說明
    
    file            表示忽略file檔案
    *.a             表示忽略所有 .a 結尾的檔案
    !lib.a          表示但lib.a除外
    build/          表示忽略 build/目錄下的所有檔案,過濾整個build檔案夾;
               
  • 将檔案同步到本地倉庫
git commit [file] -m [message]
說明: -m表示添加一些同步資訊,表達同步内容,不加file表示同步所有暫存記錄的檔案

e.g.  将暫存區所有記錄同步到倉庫區
git commit  -m 'add files'
           
  • 實際操作
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 檢視commit 日志記錄
git log
           
Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 将暫存區或者某個commit點檔案恢複到工作區
e.g. 将a.jpg檔案恢複,不寫commit表示恢複最新儲存的檔案内容
git checkout  --  a.jpg
           
  • 移動或者删除檔案
git  mv  [file] [path]
  git  rm  [files]
           
注意: 這兩個操作會修改工作區内容,同時将操作記錄送出到暫存區。
           

總結

Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

重點:本地項目上傳到github上需要一下步驟

  • 三步流程:
    • 在對應目錄下先把新增的檔案 git add *把檔案存儲到暫存區
    • 将暫存區的檔案送出到本地倉庫git commit -m’送出說明/注釋’
    • 将本地倉庫的檔案送出到遠端倉庫git push 如果網速慢沒反應需要試多幾次
    • 通過以上三步就能在github上看到自己上傳的項目了

三. 版本控制

  • 退回到上一個commit節點
git reset --hard HEAD^
           
說明: 一個^表示回退1個版本,依次類推。當版本回退之後工作區會自動和目前commit版本保持一緻
           
  • 退回到指定的commit_id節點
  • 檢視所有操作記錄
git reflog
           
注意:最上面的為最新記錄,可以利用commit_id去往任何操作位置
           
Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 建立标簽

    标簽: 在項目的重要commit位置添加快照,儲存當時的工作狀态,一般用于版本的疊代。

說明: commit_id可以不寫則預設标簽表示最新的commit_id位置,message也可以不寫,但是最好添加。

e.g. 在最新的commit處添加标簽v1.0
           
  • 檢視标簽
git tag  檢視标簽清單
 git show [tag_name]  檢視标簽詳細資訊
           
  • 去往某個标簽節點
  • 删除标簽
  • 實際操作
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

四. 分支管理

4.1 基本概念

  • 定義: 分支即每個人在原有代碼(分支)的基礎上建立自己的工作環境,完成單獨開發,之後再向主分支統一合并工作内容。
  • 好處
    • 各自開發互不幹擾
    • 防止誤操作對其他開發者的影響
Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

4.2 基本操作

  • 檢視現有分支
git branch
           
說明: 前面帶 * 的分支表示目前工作分支
           
  • 建立分支
說明: 基于a分支建立b分支,此時b分支會擁有a分支全部内容。在建立b分支時最好保持a分支"幹淨"狀态。
           
  • 切換工作分支
說明: 2,3可以同時操作,即建立并切換分支
           
注意: git checkout -b [branch_name] 可以同時完成建立分支和切換分支的工作
  • 實際操作
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 合并分支
    git merge [branch]
               
    注意:分支的合并一般都是子分支向父分支中合并
  • 删除分支
    git branch -d [branch]  删除分支
     git branch -D [branch]  删除沒有被合并的分支
               
Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

4.3 分支沖突問題

  • 定義: 當分支合并時,原來的父分支發生了變化,在合并過程中就會産生沖突問題,這是合并分支過程中最為棘手的問題。
  • 沖突情形1—— 原來的分支增加了新檔案或者原有檔案發生了變化

    此時隻要先摁 ctrl-o 寫入,然後回車,再摁ctrl-x 離開就可以了。

    也可能出現提示讓直行commit合并,那麼此時隻需要直行commit操作就可以了。這種沖突比較好解決。

  • 沖突情形2—— 子分支和父分支修改了相同的檔案

    此時會出現:

    這種沖突不太好解決需要自己進入檔案進行修改後,再直行add ,commit操作送出

  • 總結
    • 盡量在項目中降低耦合度,不同的分支隻編寫自己的子產品。
    • 如果必須修改原來父級分支的檔案内容,那麼做好分工,不要讓多個分支都修改同一個檔案。

五.GitHub使用

  • 遠端倉庫

    遠端主機上的GIT倉庫。實際上git是分布式結構,每台主機的git倉庫結構類似,隻是把别人主機上的git倉庫稱為遠端倉庫。GitHub可以幫助我們建立一個遠端倉庫。

  • GitHub介紹

    GitHub是一個開源的項目社群網站,擁有全球最多的開源項目。開發者通過可以注冊網站賬戶,在GitHub建立自己的項目倉庫(我們可以視作一個遠端倉庫),GitHub規定GIT為它的唯一代碼管理工具。

    GitHub網址:github.com

5.1 擷取項目

  • 在左上角搜尋欄搜尋想要的擷取的項目
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 選擇項目後複制項目git位址
  • 在本地使用git clone方法即可擷取
git clone https://github.com/xxxxxxxxx
           
注意:
  1. 擷取到本地的項目會自動和GitHub遠端倉庫建立連接配接。且擷取的項目本身也是個git項目。
  2. GitHub提供兩種位址連結方式,http方式和SSH方式。通常通路自己的項目可以使用SSH方式,clone别人的項目使用http方式。

5.2 建立自己的項目倉庫

  • 點選右上角加号下拉菜單,選擇新的倉庫
Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 填寫相應的項目資訊即可
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • github倉庫相對本地主機就是一個遠端倉庫通過remote連接配接
    • 使用https連結
      # 後續操作每次上傳内容都需要輸入密碼,比較麻煩,一般用于臨時計算機的連接配接使用
      git remote  add origin https://github.com/xxxxxxxxx
                 
    • 使用SSH連接配接
      # 先建立秘鑰信任
      1. 将自己要連接配接github的計算機的ssh公鑰内容複制
      2. github上選擇頭像下拉菜單,settings-》SSH and GPG keys-》new SSH key
      3. 将公鑰内容添加進去,并且起一個标題名字,點選添加
                 
  • 實際操作[生成本機ssh秘鑰]
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

    - 将上圖中生成的秘鑰複制到github中

    (github上選擇頭像下拉菜單,settings-》SSH and GPG keys-》new SSH key)

    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 上傳成功後如圖所示
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 下面為大家示範添加圖檔後上傳到遠端倉庫
    • 第一步:先在本地添加兩張圖檔到對應檔案下
      Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
    • 第二步:添加到本地倉庫,再進行送出
      Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
    • 第三步:推送到遠端倉庫
      Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 恭喜你成功了
    Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
  • 後續無需輸入密碼,一般用于自己信任的計算機
git remote add origin [email protected]:TenciousAK/Travel_project_version01.git 
           
  • 檢視連接配接的遠端倉庫名稱
    git remote
               
  • 斷開遠端倉庫連接配接
  • 如果是自己的倉庫需要删除,則選擇自己的倉庫選擇settings,在最後可以選擇删除倉庫。
Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)
Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)Git與GitHub精選系列(常用指令操作、建立項目、上傳更新)

5.3 遠端倉庫操作指令

  • 将本地分支推送給遠端倉庫
git push -u origin  master
  git push origin  [:branch]  # 删除向遠端倉庫推送的分支
           
# 将master分支推送給origin主機遠端倉庫,第一次推送分支使用-u表示與遠端對應分支	建立自動關聯
           
  • 推送代碼到遠端倉庫
git push
           
# 如果本地的代碼有修改項推送給遠端倉庫
           
  • 推送舊的版本
用于本地版本比遠端版本舊時強行推送本地版本
           
git push --force origin  
           
  • 從遠端擷取代碼
    git pull
               

GIT常用指令[回顧]

1. git clone 克隆遠端代碼到本地;

2. git status 檢視本地倉庫狀态,是否有修改未添加或者未送出;

3. git add . 添加到暫存區;

4. git commit 把暫存區内容送出到目前分支;

5. git diff 版本比較,預設為工作區和目前分支版本,可以輸入送出版本号兩兩比較;

6. git log 檢視送出日志,版本号可以從此檢視;

7. git checkout[分支名]切換到某分支;

8. git branch 檢視分支資訊;

9. git checkout -b [分支名]建立并切換到分支;

10. git checkout -b [本地分支名][遠端分支名]如果本地分支已經存在,就不需要-b參數了

11. git branch -r 檢視遠端分支資訊;

12. git push origin [分支名]推送本地分支到遠端倉庫,真正的讓協作者可見你本人送出的操作;

13. git pull 拉取最新遠端更新到本地,自動merge;

14. git merge 合并操作;

15. git checkout -- . 撤銷工作區修改;

16. git clean 清理未git add的檔案或者檔案夾,參數為-n顯示,-f删除檔案,-df删除檔案和目錄。

17. git pull remote master 合并遠端master到本地fork master分支