編輯器&Mac

1、編輯器的使用vs code

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

2、 Mac工具使用

  • 強大終端 item2

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

知識篇

一、git使用

  • 一般企業中使用代碼管理工具Git開發時都是通過拉分支進行功能細緻開發,所以掌握git的分支操作時必要的
  • 使用Git下載指定分支命令為:git clone -b 分支名倉庫地址
  • 初始開發git操作流程
    • 本地創建公鑰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將本地倉庫代碼更新到遠程倉庫

一、git remote

  • 為遠程倉庫指定別名,以便於管理遠程主機,默認只有一個時為origin
  1. 查看主機名:git remote
  2. 查看主機名即網址:git remote -v
  • 默認克隆遠程倉庫到本地時,遠程主機為origin,如需指定別名可使用git clone -o <別名> <遠程git地址>

  1. 查看主機的詳細信息git remote show <主機名>
  2. 添加遠程主機git remote add <主機名> <網址>
  3. 刪除遠程主機git remote rm <主機名>
  4. 修改遠程主機的別名:git remote rename <原主機名> <新主機名>

二、git fetch

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

三、git pull

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

三、git push

  • 將本地分支的更新,推送到遠程主機,其命令格式與git pull相似
  1. 將本地分支推送到遠程分支:git push <遠程主機名> <本地分支名>:<遠程分支名>
  2. 如果省略遠程分支名,則默認為將本地分支推送到與之關聯的遠程分支:(一般設置本地分支和與之關聯的遠程分支同名,防止混淆)git push <遠程主機名> <本地分支名>
  • 如果對應的遠程分支不存在,則會被創建(m默認與本地分支同名)

  1. 如果省略本地分支名,則表示刪除指定的遠程分支,這等同於推送一個空的本地分支到對應遠程分支:git push origin :<遠程分支> 等同於 git push origin --delete <遠程分支>
  2. 如果當前分支與遠程分支之間存在追蹤關係,則本地分支和遠程分支都可以省略git push origin
  3. 如果當前分支只有一個追蹤分支,那麼主機名也可以省略:git push
  4. 如果當前分支與多個主機存在追蹤關係(使用場景相對來說較少),可以使用-u指定默認推送主機git push -u origin <主機名>設置時候需推送便可以直接使用git push
  5. 將本地的所有分支都推送到遠程主機:git push --all origin
  6. 如果遠程主機的版本比本地版本更新,推送時Git會報錯,要求先在本地做git pull合併差異,然後再推送到遠程主機。如果一定要推送,可以使用--force選項(謹慎使用,除非你非常確認):git push --force origin
  • 注意:分支推送順序的格式為<來源地>:<目的地>,所以git pull格式:<遠程分支>:<本地分支>git push格式為:<本地分支>:<遠程分支>

四、分支操作

  1. 創建本地分支:git branch test:(創建名為test的本地分支)
  2. 切換分支:git checkout test:(切換到test分支)
  3. 創建並切換分支git branch -b test:(相當於以上兩條命令的合併)
  4. 查看本地分支:git branch
  5. 查看遠程倉庫所有分支:git branch -a
  6. 刪除本地分支:git branch -d test:(刪除本地test分支)
  7. 分支合併:git merge master:(將master分支合併到當前分支)
  • 分支關聯:
  1. 查看當前的本地分支與遠程分支的關聯關係:git branch -vv

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

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

五、修改撤銷

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

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

  • 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。

六、配置

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

「路雖遠,無所畏」—— 如果文章對你有所幫助,請持續關注哦!

推薦閱讀:

相关文章