日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【面试必备!Mac版本】一文打通Git教程!史上最硬核解析!——双非上岸阿里巴巴系列

發布時間:2024/2/28 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【面试必备!Mac版本】一文打通Git教程!史上最硬核解析!——双非上岸阿里巴巴系列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

東北某不知名雙非本科,四面成功上岸阿里巴巴,在這里把自己整理的面經分享出來,歡迎大家閱讀。

Git是目前最簡單、最流行、最優秀的分布式版本控制工具,沒有之一。也是面試時最易被廣大同學忽略的知識。大到BAT,小到創業公司,幾乎所有的企業都以Git作為自己的核心管理工具。 因此,只要從事互聯網行業,Git就是必須要會的。

恰個飯——>《阿里巴巴 Java 開發手冊》,業界普遍遵循的開發規范


本博客內容持續維護,如有改進之處,還望各位大佬指出,感激不盡!


文章目錄

  • 第一章 Git概述
    • 1.1 何為版本控制
    • 1.2 為什么需要版本控制
    • 1.3 版本控制工具
    • 1.4 Git簡史
    • 1.5 Git工作機制
    • 1.6 Git和代碼托管中心
  • 第二章 Git安裝
  • 第三章 Git常用命令
    • 3.1 配置基本信息(只需設置一次)
    • 3.2 初始化本地庫
    • 3.3 查看本地庫狀態
    • 3.4 添加暫存區
    • 3.5 提交本地庫
    • 3.6 修改文件
    • 3.7 歷史版本
      • 3.7.1 查看歷史版本
      • 3.7.2 版本穿梭
    • 3.8 其他常用命令
    • 3.9 Linux常用命令
  • 第四章 Git分支操作
    • 4.1 分支概念
    • 4.2 分支的好處
    • 4.3 分支的操作
      • 產生沖突
  • 第五章 Git團隊協作機制
  • 第六章 GitHub操作
    • 6.1 創建遠程倉庫
    • 6.2 遠程倉庫操作
      • 6.2.1 創建別名
      • 6.2.2 推送本地庫到遠程庫
      • 6.2.3 拉取遠程庫到本地庫
    • 6.3 跨團隊協作
  • 第七章 IDEA集成Git
    • 7.1 配置Git
    • 7.2 初始化 & 添加 & 提交
      • 初始化
      • 添加
      • 提交
    • 7.3 切換版本
    • 7.4 創建分支
    • 7.5 合并分支
      • 無沖突合并
      • 沖突合并
  • 第八章 IDEA集成GitHub
    • 8.1 分享項目到GitHub
    • 8.2 推送代碼到GitHub
    • 8.3 拉取代碼到本倉庫
    • 8.4 clone代碼
    • 8.4 七、八章總結
  • 第九章 自建代碼托管平臺-GitLab
  • 儲備知識
    • git clone 與 git pull的區別
      • git clone 與 git pull 相同點
      • git clone 與 git pull 不同點
      • git clone
      • git pull
      • 使用場景
    • Git|GitHub|Gitee|GitLab區別
    • 分盤
    • 修改git的端口號
    • 解決IDEA集成GitHub失敗問題
      • 一. 出現這種問題的原因:
      • 二. 解決方案:
    • Git - IDEA 來回切換分支引起報錯
    • 指針顏色說明
    • idea連接GitHub提示Connection reset


第一章 Git概述

Git是一個免費的、開源的分布式版本控制系統,可以快速高效處理項目

占地小、易學習、性能好、廉價

PS:學習git,linux命令很重要,因為是同一個爸爸


1.1 何為版本控制

版本控制是一種記錄文件變化,以便將來查閱特定版本修訂情況的系統。

最重要的修改文件修改的歷史記錄,從而讓用戶能查看版本,切換版本。


1.2 為什么需要版本控制

個人開發過渡到團隊開發,團隊間需統一版本,互相協調。


1.3 版本控制工具

集中式版本控制工具

CVS、SVN、VSS等

都有一個中央服務器,保存所有文件的修訂版本,所有人都能通過客戶端連接到這臺服務器,取出最新的文件,或提交更新。

好處是管理員可以掌握每個開發者的權限,并且統一管理,協調進度,維護簡單。

壞處是如果中央服務器單點故障,則全部無法工作

分布式版本控制

以Git為例,客戶端提取的不是最新版本的文件快照,而是把代碼倉庫完整的鏡像下來(本地庫),這樣任何一處協同工作用的文件發生故障,事后都可以用其他客戶端的本地倉庫進行恢復。

解決了集中式版本控制系統的缺陷。

且:服務器斷網情況下也能進行開發,每個客戶端保存的也都是完整項目(包含歷史記錄)


1.4 Git簡史


1.5 Git工作機制


以上圖片為工作區、暫存區、本地庫之間的關聯,在本地庫之上還有一層遠程庫。如下圖所示:

工作區:存放代碼的位置

暫存區:把工作區的代碼add到暫存區

本地庫:暫存區commit到本地庫。一旦提交到本地庫,就生成了歷史版本,無法刪除

遠程庫:本地庫push到遠程庫(全互聯網或全局域網都生成了歷史版本)


1.6 Git和代碼托管中心

代碼托管中心是基于網絡服務器的遠程代碼倉庫,一般我們簡單稱為遠程庫,常見的遠程庫

局域網常見的代碼托管中心:GitLab

互聯網常見的代碼托管中心:GitHub、Gitee


第二章 Git安裝

mac版本:打開終端,輸入git,則自動安裝

查看git安裝目錄:which git

Windows版本——>傳送門


第三章 Git常用命令

3.1 配置基本信息(只需設置一次)

  • 配置用戶名
    git config --global user.name “shaonaiyi”

    解釋:作用是區分不同操作者身份。因此不設置無法提交代碼。

  • 配置用戶郵箱
    git config --global user.email “shaonaiyi@163.com”
    解釋:這個郵箱是虛擬郵箱。

  • 配置大小寫敏感
    git config --global core.ignorecase false
    以后想要修改還是使用上面的指令。


  • 3.2 初始化本地庫

    作用:把這個目錄變為git可以管理的倉庫

    語法:git init

    步驟:新建文件夾,在終端中進入,輸入命令后,該文件夾內就會生成.git隱藏文件


    3.3 查看本地庫狀態

    作用:查看本地庫的分支、提交情況等

    語法git status

    示例

    1、直接運行git status:


    2、現在我們創建一個hello.txt,再次運行git status,得:

    顯示有一個未被追蹤過的文件,也就是有文件未被添加到暫存區


    3.4 添加暫存區

    接上。

    作用:將文件添加到暫存區

    語法git add hello.txt

    示例

    將文件從暫存區刪除git rm --cached hello.txt


    3.5 提交本地庫

    接上。

    作用:將暫存區的文件提交到本地庫,形成歷史版本(版本信息)。

    語法git commit -m “日志信息” “文件名”

    示例


    3.6 修改文件

    接上。

    作用:模擬企業開發中的版本迭代

    示例:首先修改文件,再次查看本地庫狀態,發現紅色的信息,提示被修改。解決辦法是,首先添加到暫存區,再提交本地庫


    3.7 歷史版本

    3.7.1 查看歷史版本

    寫法git reflog:查看歷史版本

    版本號、指針指向master分支、版本名稱為first commit

    寫法git log 查看詳細日志


    3.7.2 版本穿梭

    寫法git reset --hard

    示例

    原理:通過指針實現

    解釋:head是頭指針,master是分支,first等是某一分支下的版本。


    3.8 其他常用命令

  • 查看Git的配置信息
    git config --list

  • 查看版本

    git --verson

  • 查看文件安裝位置

    which git


  • 3.9 Linux常用命令

    進入終端:control + space,輸入終端

    查看當前目錄:pwd

    進入根目錄:cd

    返回上一級:cd …

    刪除文件:rm 文件名

    列出文件夾下所有文件:ls

    新建文件夾:mkdir

    查看某文件的安裝目錄:which …

    查看文件內容:cat hello.txt

    vim:文本編輯器

    vim編輯器的三種模式

    1、命令模式

    2、插入模式

    3、末行模式

    命令模式:yy復制一行,dd刪除一行,p粘貼

    底行模式:wq保存并退出,q!不保存退出


    第四章 Git分支操作

    4.1 分支概念

    概念:在版本控制過程中,同時推進多個任務,為每個任務,我們可以創建每個任務的單獨分支。使用分支意味著程序員可以把自己的工作從開發主線上分離出來,開發自己分支的時候,不會影響主線分支的運行。

    對于初學者而言,分支可以簡單理解為副本,其底層是對指針的引用


    4.2 分支的好處

    同時并行推進多個功能開發,提高開發效率。

    各個分支在開發過程中,如果某一個分支開發失敗,不會對其他分支有任何影響。失敗的分支刪除重新開始即可。


    4.3 分支的操作

    git branch 分支名:創建分支(基于最新的分支,引申出來的分支)

    git branch -v:查看分支

    git checkout 分支名:切換分支

    git merge 分支名:把指定的分支合并到當前分支上(站在當前分支上,合并想喝合并的分支)


    產生沖突

    合并分支時,兩個分支在同一個文件的同一個位置有兩套完全不同的修改。Git無法替我們決定使用哪一個。必須人為決定新代碼的內容

    合并文件如果出現沖突,需要人為修改代碼,然后添加暫存區,提交到本地庫


    第五章 Git團隊協作機制

    團隊內協作

    岳不群在本地庫創建華山劍法項目,push到遠程庫。

    令狐沖在遠程庫中把代碼clone下來,優化一下,又push進遠程庫

    跨團隊協作

    團隊1感覺項目寫的不行,于是想讓大哥幫忙修改一下,于是大哥從團隊1的遠程庫中fork項目,到自己的庫中,改完在merge回去


    第六章 GitHub操作

    6.1 創建遠程倉庫


    6.2 遠程倉庫操作

    6.2.1 創建別名

    查看別名:git remote -v

    創建別名:git remote add ori https://github.com/Tokyo-z/git-demo.git

    原理:指針


    6.2.2 推送本地庫到遠程庫

    語法:git push 別名or網址 分支

    輸入github的賬號密碼即可


    6.2.3 拉取遠程庫到本地庫

    語法:git pull 別名or網址 存放拉取內容的分支

    git pull ori master


    6.3 跨團隊協作

    先把別人的項目fork到我這,再進行操作。
    其他操作與團隊內協作的操作一致。


    第七章 IDEA集成Git

    7.1 配置Git

    7.2 初始化 & 添加 & 提交

    初始化

    將普通項目改為Git配置的模式

    可以看到已經被改造成了Git格式

    添加

    此時我們發現文件變紅了,因為沒有吧文件添加到暫存區。 具體操作如下:

    操作完成后,文件變綠

    提交

    添加到暫存區后,我們commit一下

    提交后,文件重新變回正常顏色

    7.3 切換版本

    只要更改代碼,我們發現代碼變藍了,說明這個代碼被追蹤了。 因此重復操作,add + commit,將提交版本置為second

    提交后的分支

    又創建了第三個版本:

    切換版本:

    此時,我們看到頭指針指向了第二個版本

    7.4 創建分支

    查看當前分支 & 切換分支

    7.5 合并分支

    要將hot-fix分支合并到master上

    無沖突合并

    首先在熱修分支創建新的版本并提交

    接下來切換到master,進行如下操作:

    合并成功后示意圖:

    沖突合并

    在熱修分支 和 master上到同一行同時更改代碼,制造沖突,并提交

    我們發現,發生了沖突。 此時需要點擊merge,手動合并代碼

    合并成功后圖示:

    第八章 IDEA集成GitHub

    8.1 分享項目到GitHub

    GitHub就相當于遠程庫,分享到GitHub上就相當于分享到遠程庫

    1、在Plugins里下載GitHub插件,下載成功后,在Version Control中顯示。

    2、設置GitHub賬號,如果設置失敗,見儲備知識

    3、將項目分享到GitHub上

    8.2 推送代碼到GitHub

    注意:Push是將本地庫代碼推送到遠程庫,如果本地庫代碼跟遠程庫代碼版本不一致,push的操作是會被拒絕的。

    要想Push成功,本地庫版本一定要高于遠程庫版本!

    因此,當想要動手修改本地庫代碼時,要先pull拉取一下遠程的代碼,將本地代碼更新到最新后,再修改、推送!

    8.3 拉取代碼到本倉庫

    在GitHub中,將項目編輯,新增代碼,

    用法同上

    8.4 clone代碼

    把項目從本地刪除, 可以從GitHub上clone回來

    8.4 七、八章總結

    第七章只用到了add + command,因此涉及到的路線是本地代碼->暫存區->本地庫

    第八章用到的是push和pull,因此涉及到的路線是本地代碼->遠程庫

    第九章 自建代碼托管平臺-GitLab

    GitLab的安裝、下載、配置省略。。。(需要虛擬機)

    IDEA集成GitLib

    1、下載GitLab插件

    2、連接服務器

    3、操作(以push為例)

    在url里添加上gitLib的鏈接即可

    儲備知識

    git clone 與 git pull的區別

    git clone 與 git pull 相同點

    相同點:都是從遠程服務器拉取代碼到本地

    git clone 與 git pull 不同點

    git clone

    是在本地沒有版本庫的時候,從遠程服務器克隆整個版本庫到本地,是一個本地從無到有的過程。

    git pull

    在本地有版本庫的情況下,從遠程庫獲取最新commit 數據(如果有的話),并merge(合并)到本地。

    git pull = git fetch + git merge

    使用場景

    通常情況下,遠程操作的第一步,是使用git clone從遠程主機克隆一個版本庫到本地。

    本地修改代碼后,每次從本地倉庫push到遠程倉庫之前都要先進行git pull操作,保證push到遠程倉庫時沒有版本沖突。

    Git|GitHub|Gitee|GitLab區別

    Git:分布式版本控制系統

    GitHub:基于Git原理的外國平臺

    Gitee:基于Git原理的國內平臺

    GitLab:基于Git原理的局域網平臺

    分盤

    programFiles存放64位,x86存放32位

    修改git的端口號

    打開gitbash,進入倉庫,輸入指令: vim .git/config,或者windows下進到倉庫文件夾,進入.git 用編輯器打開

    修改后保存即可

    解決IDEA集成GitHub失敗問題

    一. 出現這種問題的原因:

    按圖查看

    你會發現你這里缺失了IDEA 的授權tokens

    正常如下:
    如果有授權,可以刪掉,重新按下面步驟授權一次,因為這個秘鑰不能二次查看

    二. 解決方案:

    解決步驟

    1.點擊加號,選擇第二個登錄方式

    2.核心步驟
    稍微等一會,會自動跳轉

    3.添加IDEA 授權的tokens

    4.生成tokens

    5.復制令牌授權碼

    6.回到IDEA 粘貼授權碼

    7.登陸成功

    Git - IDEA 來回切換分支引起報錯

    當 Git 切換分支的時候,特別是當某一個A分支Module本來是有的,但是切換到B分支后沒這個Module了,這時候再切回A分支去,此時該Module會錯亂。

    解決方案:

    1、關閉IDEA,刪除**.idea**文件夾即可,重新再加載項目試試

    2、配置忽略文件

    指針顏色說明

    黃色:版本指針

    綠色:分支指針

    idea連接GitHub提示Connection reset

    原因:訪問外網太慢,時間限制到后默認無法訪問。

    打開:
    http://github.global.ssl.fastly.net.ipaddress.com/ 進行查詢IP地址,把查詢到的IP地址,復制到自己的hosts文件中。

    hosts 文件位置:

    打開文件

    將打開查找到的路徑ip

    將ip配置到host:方法如下顯示

    在文檔最末尾添加:

    然后點擊保存

    退出idea重新進入,發現可以運行了

    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的【面试必备!Mac版本】一文打通Git教程!史上最硬核解析!——双非上岸阿里巴巴系列的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。