團隊合做必備的Git操做

編輯器&Mac

一、編輯器的使用vs code前端

  • 插件
  1. git輔助工具,可查看代碼的書寫者:Git Blame

二、 Mac工具使用git

三、在 macOS 中完美配置文件名大小寫敏感(解決git默認對大小寫不敏感問題)解決git大小寫不敏感面試

知識篇

1、git使用

  • 通常企業中使用代碼管理工具Git開發時都是經過拉分支進行功能細緻開發,因此掌握git的分支操做時必要的
  • 使用Git下載指定分支命令爲:git clone -b 分支名倉庫地址
  • 初始開發git操做流程segmentfault

    • 本地建立公鑰ssh-keygen -t rsa -C "郵箱"並配置
    • 克隆最新主分支項目代碼git clone 地址
    • 建立本地分支git branch 分支名
    • 查看本地分支git branch
    • 查看遠程分支git branch -a
    • 切換分支git checkout 分支名(通常修改未提交則沒法切換,大小寫問題常常會有,可強制切換git checkout 分支名 -f非必須慎用)
    • 將本地分支推送到遠程分支git push <遠程倉庫> <本地分支>:<遠程分支>

必備知識點

  • 概念:

圖片描述

  1. Remote:遠程主倉庫;
  2. Repository:本地倉庫;
  3. Index:Git追蹤樹,暫存區;
  4. workspace:本地工做區(即你編輯器的代碼)
  • 通常操做流程:《工做區》-> git status查看狀態 -> git add .將全部修改加入暫存區-> git commit -m "提交描述"將代碼提交到本地倉庫->git push將本地倉庫代碼更新到遠程倉庫

1、git remote

  • 爲遠程倉庫指定別名,以便於管理遠程主機,默認只有一個時爲origin
  1. 查看主機名:git remote
  2. 查看主機名即網址:git remote -v緩存

    • 默認克隆遠程倉庫到本地時,遠程主機爲origin,如需指定別名可以使用git clone -o <別名> <遠程git地址>
  3. 查看主機的詳細信息git remote show <主機名>
  4. 添加遠程主機git remote add <主機名> <網址>
  5. 刪除遠程主機git remote rm <主機名>
  6. 修改遠程主機的別名:git remote rename <原主機名> <新主機名>

2、git fetch

  • 將某個遠程主機的更新,所有/分支 取回本地(此時之更新了Repository)它取回的代碼對你本地的開發代碼沒有影響,如需完全更新需合併或使用git pull
  1. 遠程主機的更新,所有取回本地git fetch <遠程主機名>
  2. 將遠程倉庫特定分支更新到本地git fetch <遠程主機名> <分支名>
  • 若是須要將更新拉取但本地工做代碼須要合併到本地某一分支git merge <被合併的遠程分支>或者在此基礎上建立出新分支並切換git checkout -b <分支名> <在此分支上建立>

3、git pull

  • 拉取遠程主機某分支的更新,再與本地的指定分支合併(至關與fetch加上了合併分支功能的操做)
  1. 拉取遠程某分支並與本地某一分支合併(沒有則默認會建立):git pull <遠程主機名> <遠程分支名>:<本地分支名>
  2. 若是遠程分支是與當前所在分支合併,則冒號後面的部分能夠省略:git pull <遠程主機名> <遠程分支名>
  3. 若是當前分支與遠程分支存在追蹤關係,則能夠省略遠程分支名:git pull <遠程主機名>
  4. 若是當前分支只有一個追蹤分支,則遠程主機名均可以省略:git pull

3、git push

  • 將本地分支的更新,推送到遠程主機,其命令格式與git pull類似
  1. 將本地分支推送到遠程分支:git push <遠程主機名> <本地分支名>:<遠程分支名>
  2. 若是省略遠程分支名,則默認爲將本地分支推送到與之關聯的遠程分支:(通常設置本地分支和與之關聯的遠程分支同名,防止混淆)git push <遠程主機名> <本地分支名>app

    • 若是對應的遠程分支不存在,則會被建立(m默認與本地分支同名)
  3. 若是省略本地分支名,則表示刪除指定的遠程分支,這等同於推送一個空的本地分支到對應遠程分支:git push origin :<遠程分支> 等同於 git push origin --delete <遠程分支>
  4. 若是當前分支與遠程分支之間存在追蹤關係,則本地分支和遠程分支均可以省略git push origin
  5. 若是當前分支只有一個追蹤分支,那麼主機名也能夠省略:git push
  6. 若是當前分支與多個主機存在追蹤關係(使用場景相對來講較少),可使用-u指定默認推送主機git push -u origin <主機名>設置時候需推送即可以直接使用git push
  7. 將本地的全部分支都推送到遠程主機:git push --all origin
  8. 若是遠程主機的版本比本地版本更新,推送時Git會報錯,要求先在本地作git pull合併差別,而後再推送到遠程主機。若是必定要推送,可使用--force選項(謹慎使用,除非你很是確認):git push --force origin
  • 注意:分支推送順序的格式爲<來源地>:<目的地>,因此git pull格式:<遠程分支>:<本地分支>git push格式爲:<本地分支>:<遠程分支>

4、分支操做

  1. 建立本地分支:git branch test:(建立名爲test的本地分支)
  2. 切換分支:git checkout test:(切換到test分支)
  3. 建立並切換分支git checkout -b test:(至關於以上兩條命令的合併)
  4. 查看本地分支:git branch
  5. 查看遠程倉庫全部分支:git branch -a
  6. 刪除本地分支:git branch -d test:(刪除本地test分支)
  7. 分支合併:git merge master:(將master分支合併到當前分支)
  8. 本地分支重命名:git branch -m oldName newName
  9. 遠程分支重命名:ssh

    1. 重命名遠程分支對應的本地分支:git branch -m oldName newName;
    2. 刪除遠程分支:git push --delete origin oldName;
    3. 上傳新命名的本地分支:git push origin newName;
    4. 把修改後的本地分支與遠程分支關聯:git branch --set-upstream-to origin/newName
  • 分支關聯:
  1. 查看當前的本地分支與遠程分支的關聯關係:git branch -vv

clipboard.png

  1. 把當前本地分支與遠程origin的某分支進行關聯處理(經過 --set-upstream-to 命令):git branch --set-upstream-to=origin/feature/clear-server-eslint-error_180713

clipboard.png

  • 分支差別查看
  1. 查看本地當前分支與遠程某一分支的差別:git diff origin/feature/reserve-3.4
  2. 查看本地特定分支與遠程分支的差別:git diff master origin/feature/reserve-3.4 (查看本地master分支與遠程feature/reserve-3.4分支的差別,如圖)

clipboard.png


5、修改撤銷

  1. git checkout -- <文件名>:丟棄工做區的修改,就是讓這個文件回到最近一次git commitgit add時的狀態。
  2. git reset HEAD <文件名>:把暫存區的修改撤銷掉(unstage),從新放回工做區。
  3. git reset --hard commit_id:git版本回退,回退到特定的commit_id版本編輯器

    • 流程:
    • git log查看提交歷史,以便肯定要回退到哪一個版本(commit 以後的即爲ID);

clipboard.png

  • git reset --hard commit_id:回退到commit_id版本;
  • git reflog查看命令歷史,以便肯定要回到將來的哪一個版本;工具

    • 更新遠程代碼到本地
      git fetch origin master(分支)
      git pull // 將fetch下來的代碼pull到本地
      git diff master origin/master // 查看本地分支代碼和遠程倉庫的差別
  • 拉取遠程分支並建立本地分支
  1. git checkout -b 本地分支名 origin/遠程分支名:使用此方式會在本地新建分支,並自動切換到該本地分支;
  2. git fetch origin 遠程分支名:本地分支名:使用此方式會在本地新建分支,可是不會自動切換到該本地分支,須要手動checkout。

6、配置

  • git config -l // 陳列出全部的git配置項
  • git config core.ignorecase false //配置git不忽略大小寫(默認忽略)參照(git 大小寫)

7、暫存

  • git stash 可用來暫存當前正在進行的工做,好比想pull 最新代碼又不想commit, 或者另爲了修改一個緊急的bug,先stash,使返回到本身上一個commit, 改完bug以後再stash pop, 繼續原來的工做;
  • 添加緩存棧:git stash;
  • 查看緩存棧:git stash list;
  • 推出緩存棧:git stash pop;
  • 取出特定緩存內容:git stash apply stash@{1};

clipboard.png

「積跬步、行千里」—— 持續更新中~,喜歡留下個贊哦!
相關文章
相關標籤/搜索