Git的學習入門到~~~ 哎喲!不知道因人而異

什麼是 Git 、 GitHub

  Git是目前世界上最先進的分佈式版本控制系統

  • Git 是一個分佈式版本控制系統,簡單的說其就是一個軟件,用於記錄一個或若干文件內容 變化,以便將來在閱特定版木修訂情況的軟件
  • Github 是一個爲用戶提供Git服務的網站,簡單說就是一個可以 放代碼的地方(不過可以放的當然不僅是代碼)。Github 除了提供管理Git的Web界面外,還提供了訂閱、關注、討論組、在線編輯器等卡富的功能
  • Git本地操作的三個區域:
    Git的組成
    Git的工作流程

本地倉庫操作

什麼是倉庫

倉庫又名版本庫,英文名repository,我們可以簡單理解成是一個目錄,用於存放代碼的,這個目錄裏面的所有文件都可以被Git管理起來,每個文件的修改、刪除等操作Git都能跟蹤到

  • 在安裝好後首次使用需要先進行全局配置
    打開“Git Bash Here”以打開Git命令行窗口
$ git config --global user.name "用戶名" // 以GitHub爲例所以 用戶名 就是GitHub上的用戶名
$ git config --global user.email "郵箱地址" // 同理 

在這裏插入圖片描述

  • 創建倉庫
      當我們需要讓Git去管理某個新項目/已存在項目的時候,就需要創建倉庫了。注意,創建倉庫時使用的目錄不一定要求是空目錄,選擇一個非空目錄也是可以的,但是不建議在現有項目上來學習Git,否則造成的一切後果概不負責!

ps:爲了避免在學習或使用過程中出現各種奇葩問題,請不要使用包含中文的目錄名

  • 步驟
    創建空目錄 $ mkdir 文件名
    進入目錄 $ cd 文件名
    Git倉庫初始化 $ git init

ps:執行之後會在項目目錄下創建“.git”的隱藏目錄,這個目錄是Git所創建的,不能刪除,也不能隨意更改其中的內容

  • Git常用指令操作
    查看當前狀態: git status
    添加到緩存區:git add 文件名
說明:git add 指令,可以添加一個文件,也可以同時添加多個文件
語法1:git add 文件名
語法2:git add 文件名1 文件名2 文件名3 ...
語法3:git add.
  • 提交到版本庫git commit-m "註釋內容"
    創建和提交

遠程代碼倉庫

基於 Https 協議的遠程倉庫

http
http
關於鑑權的錯誤
鑑權錯誤
將用戶名和密碼寫入http地址中,告訴GitHub並得到驗證
在這裏插入圖片描述
倉庫
同步線上倉庫(拉取線上倉庫):
 指令:git pull

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

基於 ssh 協議的遠程倉庫


該方法與上面的 Https 方式相比,只是影響GitHub對於用戶的身份鑑權方式,對於git具體操作(如本地提交 、添加註釋 、提交遠程等操作)沒有任何影響

生成公私鑰對指令(需要安裝 OpenSSHssh-keygen -t rsa -C "註冊郵箱"

步驟

  • 生成客戶端公私鑰文件
  • 將公鑰上傳至GitHub

創建公私鑰文件
公司鑰
上傳公鑰文件
上傳
上傳
使用操作 同Https
操作

版本回退分爲兩步驟進行操作:

  • 查看版本號,確定需要回到的版本編號
    指令:git loggit log--pretty=oneline
  • 回退操作
    指令:git reset --hard 提交編號
  • 回到過去後再想查看最新的時候的版本號
    指令:git reflog

git版本回退
小結:

  • 要想回到過去,必須先得到commit id,然後通過git reset -hard進行回退
  • 要想回到未來,需要使用git reflog進行歷史操作查看,得到最新的commit id
  • 在寫回退指令的時候commit id可以不用寫全,git自動識別,但是也不能寫太少,至少需要寫前4位字符

分支管理

什麼是分支? 如下圖
分支
  在版本回退的章節裏,每次提交後都會有記錄,Git 把它們串成時間線,形成類似於時間軸的東西,這個時間抽就是一個分支,我們稱之爲master分支
  在開發的時候往往是團隊協作,多人進行開發,因此光有一個分支是無法滿足多人同時開發的需求的,並且在分支上工作並不影響其他分支的正常使用,會更加安全,Git 鼓勵開發者使用分支去完成一些開發任務

分支相關指令
查看分支:git branch
創建分支:git branch 分支名
切換分支:git checkout 分支名
刪除分支:git branch -d 分支名
合併分支:git merge 被合併的分支名

查看分支
分支
ps:當前分支前面有個標記 “ * ”

創建分支
創建分支
切換分支
切換分支
合併分支
合併分支
合併分支
刪除分支
刪除分支
ps:在刪除分支的時候,一定要先退出要刪除的分支,然後才能刪除

衝突的產生與解決

衝突的產生:本地倉庫文件未與遠程倉庫修改之後的文件同步,就修改本地文件執行上傳操作,產生衝突
解決:從新同步遠程倉庫文件,刪除被修改文件中不需要的部分,再次上傳遠程倉庫
ps:避免此衝突的有效方法是,次日工作一定同步前天遠程倉庫和本地倉庫中的文件

git使用技能

git GUI工具

  • GitHub for Desktop
    在這裏插入圖片描述
      Github 出品的軟件,功能完善,使用方便。對於經常使用 GitHub的開發人員來說是非常便捷的工具。界面乾淨,用起來非常順手,頂部的分支時間線非常絢麗

  • Source tree
    在這裏插入圖片描述
      老牌的 Git GUI管理工具,也號稱最好用的Git GUI工具。功能豐富,基本操作和高級操作都非常流暢,適合初學者上手

忽略文件

  場景:在項目目錄下有很多萬年不變的文件目錄,例如 css、is、images 等,或者還有一些目錄即便有改動,我們也不想讓其提交到遠程倉庫的文檔,此時我們可以使用“忽略文件”機制來實現需求

  忽略文件需要新建一個名爲 .gitignore 的文件,該文件用於聲明忽略文件或不忽略文件的規則,規則對當前目錄及其子目錄生效

ps:該文件因爲沒有文件名,沒辦法直接在 windows 目錄下直接創建,可以通過命令行 Git Bash 來 touch 創建

常用規則:
1)/mtk/     過濾整個文件夾
2)*.zip     過濾所有.zip文件
3)/mtk/do.c   過濾某個具體文件
4)!index.html  不過濾具體某個文件
在文件中以 # 開頭的都是註釋

忽略文件
忽略文件
ps:學到這裏平時的開發工作已經足夠了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章