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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

后端工程师之路(4)GIT工具的使用与介绍

發(fā)布時間:2023/12/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 后端工程师之路(4)GIT工具的使用与介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

完整博文地址

  • 由于CSDN的圖片導(dǎo)入機(jī)制的問題,導(dǎo)致在本地編寫的md文檔中的圖片無法上傳到CSDN上,因此我把博文push到了gitee上,以下是地址:請點擊:我的博文地址

1. 概述

1.1 開發(fā)使用場景

  • 備份
  • 代碼還原
  • 協(xié)同開發(fā)
  • 追溯代碼的編寫人和先寫時間

1.2 版本控制器的方式

  • 集中式版本控制工具(SVN,CSV)
    • 集中式版本控制工具,版本存放在中央服務(wù)器中,team里每個人工作時從中央服務(wù)器下載代碼,必須聯(lián)網(wǎng)才能工作,局域網(wǎng)或者互聯(lián)網(wǎng),個人修改后提交到中央版本庫
  • 分布式版本控制工具(GIT)
    • 分布式版本控制系統(tǒng)沒有“中央服務(wù)器”,每個人的電腦上都是一個完整的版本庫,這樣工作的時候,就不需要聯(lián)網(wǎng)了,因為版本庫就在自己的電腦上,多人協(xié)作只需要各自的修改推送給對方,就能看到彼此的修改了

1.3 GIT的工作流程圖

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-bR0vvKt0-1657512048320)(./image/GIT.png)]

  • clone(克隆):從遠(yuǎn)程倉庫中克隆代碼到本地倉庫
  • checkout(檢出):從本地倉庫中檢出一個倉庫分支進(jìn)行修訂
  • add(添加):在提交前先將代碼提交到暫存區(qū)
  • commit(提交):提交到本地倉庫,本地倉庫中保存修改的各個歷史版本
  • fetch(抓取):從遠(yuǎn)程庫,抓取到本地倉庫,不進(jìn)行任何的合并動作,一般操作比較少
  • pull(拉取):從遠(yuǎn)程倉庫拉取到本地,自動進(jìn)行合并,然后放到工作區(qū),相當(dāng)于fetch+merge
  • push(推送):修改完成后,需要和團(tuán)隊成員共享代碼時,將代碼推送到遠(yuǎn)程倉庫

2. GIT基本使用

2.1 GIT-GUI&GIT-Bash

  • GIT GUI:GIT提供的圖形界面工具
  • Git Bash:Git提供的命令行工具
  • 當(dāng)安裝了GIT之后首先要做的就是要設(shè)置用戶名稱和email地址。

2.2 設(shè)置個人信息

  • 設(shè)置用戶名稱:git config --global user.name 你的名字
  • 設(shè)置用戶郵箱:git config --global user.email 你的郵箱

2.3 可以為常用指令設(shè)置別名

# 用于輸出git提交日志alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'# 用于輸出當(dāng)前目錄所有文件及基本信息alias ll='ls -al'

2.4 基礎(chǔ)指令操作

  • 執(zhí)行g(shù)it init,輸入ll,觀察到目錄下創(chuàng)建.git文件后,即證明創(chuàng)建git目錄成功
  • Git工作目錄下對于文件的修改(增加、刪除、更新)會存在幾個狀態(tài),這些修改的狀態(tài)會隨著我們執(zhí)行GIT的命令而發(fā)生變化

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-DdMl8Ivu-1657512048322)(./image/Git狀態(tài)樹.png)]

  • 如何控制這些狀態(tài)?

    • git add:工作區(qū)->暫存區(qū)
    • git commit:暫存區(qū)->本地倉庫
    • 通過輸入git status來查看當(dāng)前倉庫文件的管理狀態(tài)
    • 通過輸入git commit "提交名稱-版本號"來確認(rèn)提交,將暫存區(qū)內(nèi)的緩存區(qū)提交到倉庫
  • 查看提交日志

    • git log [option]
    • opition
      • –all 顯示所有分支
      • –pretty=online 將提交信息顯示為一行
      • –abbrev-commit 使得輸出的commitId更簡短
      • –graph 以圖的形式顯示
  • 版本回退

    • git reset --hard commitID
  • 查看已經(jīng)刪除的記錄:這個指令可以看到已經(jīng)提交刪除的提交記錄,或者查看之前在GIT里邊的操作

    • git reflog
  • 忽略某個文件

    • 新建管理文件touch .gitignore
    • 在.gitignore中輸入文件名來讓GIT識別你不想提交的文件

3. GIT分支

  • 幾乎所有的版本控制系統(tǒng)都以某種形式支持分支,使用分支意味著你可以把你的工作從開發(fā)主線上分離開來進(jìn)行重大BUG修改、開發(fā)新的功能,以免影響主線

  • 查看本地分支

    • git branch
    • 我們在工作區(qū)只能為一個分區(qū)服務(wù)
  • 新建分支

    • git branch dev01
    • 使用git-long可以查看各分支內(nèi)部的提交信息
    • 新建時分支處于哪個分支就是基于哪個分支創(chuàng)建的
    • 比如說我現(xiàn)在master帶了個*,那么我就是基于master進(jìn)行分支創(chuàng)建的
  • 切換分支

    • git checkout 分支名
    • 還支持直接切換到一個不存在的分支(GIT會幫我們創(chuàng)建并且切換):git check -b 分支名
  • 合并分支

    • 一個分支上的提交可以合并到另一個分支
    • git merge 分支名稱
  • 刪除分支

    • git branch -d b:刪除分支時,需要做各種檢查
    • git branch -D b:刪除分支時,強(qiáng)制刪除

4. *如何解決沖突

  • 當(dāng)兩個分支上對文件的修改可能會存在沖突,例如同時修改了同一個文件同一行,這時候就需要手動解決沖突,解決沖突的步驟如下
    • 處理文件中沖突的地方
    • 將解決完沖突的文件加入暫存區(qū)(add)
    • 提交到倉庫

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-hDIwjzVK-1657512048323)(./image/手動解決沖突.png)]

5.*開發(fā)中分支使用原則與流程

  • 在開發(fā)中,一般有如下分支使用原則和流程
    • master(生產(chǎn))分支:線上分支,主分支,中小規(guī)模項目作為線上運(yùn)行的應(yīng)用對應(yīng)的分支
    • develop(開發(fā))分支:是由master創(chuàng)建而來的分支,一般作為開發(fā)部門的主要開發(fā)分支,如果沒有其他并行開發(fā)不同期上線要求,都可以在此版本進(jìn)行開發(fā),階段開發(fā)完成后,需要合并到master分支,準(zhǔn)備上線
    • feature/xxx分支:由develop創(chuàng)建的分支,一般是同期并行開發(fā),但不同期上線創(chuàng)建的分支,分支上研發(fā)任務(wù)完成后合并到develop分支
    • hotfix/xxx分支:從master派生出來的分支,一般作為線上bug修復(fù)使用,修復(fù)完成后需要合并到master、test、develop分支
    • 還有一些其他分支,例如test(用于代碼測試的分支)、pre分支(預(yù)上線分支)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Nla902X5-1657512048324)(./image/分支使用概述.png)]

6. GIT遠(yuǎn)程倉庫使用

6.1 新建倉庫

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-S7oukBs2-1657512048324)(./image/新建git-01.png)]

  • 注意下面三個勾選的地方先不要勾選,否則會出問題,因為我們本地已經(jīng)有項目了,做到一半推上去,因此如果初始化倉庫的話會產(chǎn)生沖突問題的

6.2 配置SSH公鑰

  • 首先本地生成一個ssh公鑰:ssh-keygen -t rsa,輸入之后一路回車
  • 然后獲取剛才生成的公鑰cat ~/.ssh/id_rsa.pub,然后會得到一串以ssh-rsa開頭的東西,我們直接全部復(fù)制下來
  • 由于SSH隱私問題這里就不放圖了,個人設(shè)置->SSH公鑰->然后把你的標(biāo)題名和剛才得到的公鑰名稱給復(fù)制過去,確定即可

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-3lIyzyPA-1657512048325)(./image/使用git-01.png)]

  • 完成之后輸入 ssh -T git@gitee.com進(jìn)行校驗,如果出現(xiàn)Hi 你的用戶名! You've successfully authenticated, but GITEE.COM does not provide shell access.就證明配置SSH公鑰完成了

6.3 遠(yuǎn)程倉庫添加、推送

  • 接著我們將本地倉庫推到遠(yuǎn)程倉庫

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-l3UG7pCZ-1657512048326)(./image/使用git-02.png)]

  • 選擇SSH,我們點擊復(fù)制一份過來
  • 接著在GIT-BASH中操作
git remote add origin git@gitee.com:lumxi/leetcode-note.git #將本地倉庫關(guān)聯(lián)到遠(yuǎn)程倉庫 其中origin是遠(yuǎn)程倉庫名 后面接遠(yuǎn)程倉庫地址 origin是git示范的最佳實踐,我們照著寫就行 git remote #校驗當(dāng)前是否關(guān)聯(lián)到遠(yuǎn)程倉庫 git push origin matser #origin代表你要推送的遠(yuǎn)程倉庫 master代表你要推送的本地分支名 #注:第一次會報warning
  • 關(guān)于推送指令git push [-f] [--set-upstream] [遠(yuǎn)端名稱[本地分支名][:遠(yuǎn)端分支名]]
    • 如果遠(yuǎn)程分支名和本地分支名一致,則可以只寫本地分支
      • git push origin master
    • --set-upstream推送到遠(yuǎn)端的同時并且建立起和遠(yuǎn)端分支的關(guān)聯(lián)關(guān)系
      • git push --set-upstream origin master
    • 如果當(dāng)前分支已經(jīng)和遠(yuǎn)端分支關(guān)聯(lián),則可以省略分支名和遠(yuǎn)端名
      • git push:將master分支推送到已關(guān)聯(lián)的遠(yuǎn)端分支
    • -f則表示強(qiáng)制覆蓋

6.4 從遠(yuǎn)程倉庫中克隆

  • 如果已經(jīng)有一個遠(yuǎn)端倉庫,我們可以直接clone到本地
    • git clone <倉庫名稱> [本地目錄]
    • 本地目錄是可以省略的,會自動生成一個目錄

6.5 從遠(yuǎn)程倉庫中抓取和拉取

  • 遠(yuǎn)程分支和本地的分支一樣,我們可以進(jìn)行merge操作,只是需要先把遠(yuǎn)程倉庫的更新都下載到本地,然后再進(jìn)行操作
  • 抓取,指令:git fetch [remote name] [branch name]
    • 抓取指令就是將倉庫的更新都抓取到本地,而不會進(jìn)行合并
    • 如果不指定遠(yuǎn)端名稱和分支名,則抓取所有分支
  • 拉取,指令:git pull [remote name] [branch name]
    • 拉取指令就是將遠(yuǎn)端倉庫的修改拉到本地并自動進(jìn)行合并,等同與fetch/merge
    • 如果不指定遠(yuǎn)端名稱和分支名,則抓取所有并更新當(dāng)前分支

6.6 *解決合并沖突

  • 在一段時間內(nèi),A、B用戶修改了同一個文件,而且修改了同一行位置的代碼,此時會發(fā)生合并沖突
  • A用戶在本地修改代碼后優(yōu)先推送到遠(yuǎn)程倉庫,此時B用戶在本地修訂代碼,提交到本地倉庫后,也需要推送到遠(yuǎn)程倉庫,此時B用戶晚于A用戶,所以就需要先拉取遠(yuǎn)程倉庫的提交,經(jīng)過合并后才能推送到遠(yuǎn)端分支

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-b91ugPgt-1657512048326)(./image/使用 git-03.png)]

  • 在B用戶拉取代碼時,因為A、B用戶同一段時間內(nèi)修改了同一文件的相同位置的代碼,故會發(fā)生合并沖突
  • 遠(yuǎn)程分支也是分支,所以合并時沖突的解決方式也和解決本地分支沖突時相同。

7.在IDEA中操作GIT

7.1 配置GIT路徑

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-jmsrTymC-1657512048327)(./image/IDEA-01.png)]

  • 修改GIT可執(zhí)行文件路徑即可

7.2 配置.gitignore

# Compiled class file *.class# Log file *.log# BlueJ files *.ctxt# Mobile Tools for Java (J2ME) .mtj.tmp/# Package Files # *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid*

7.3 新建GIT倉庫

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-g7Ha5f9l-1657512048327)(./image/IDEA-02.png)]

  • 然后選擇項目所在目錄即可

7.4 提交到本地倉庫

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-KDlrqyRo-1657512048328)(./image/IDEA-03.png)]

  • 點擊綠色的箭頭,然后全選我們要管理的文件,由于已經(jīng)有了.gitingnore文件,git會自動幫我們過濾掉我們不想管理的文件,因此放心提交就好了,然后填入提交消息,點擊提交即可

7.5 推送到遠(yuǎn)程倉庫

  • 如下圖,填入URL即可

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-eLDUCoGY-1657512048328)(./image/IDEA-04.png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-g2Gydwpf-1657512048329)(./image/IDEA-05.png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-JWMD7OEF-1657512048329)(./image/IDEA-06.png)]

這樣就是推送成功了

7.6 常用操作入口

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-n6KWGEaL-1657512048330)(./image/IDEA-07.png)]

7.7 解決同時開發(fā)的沖突

  • 首先先點pull,更新項目,將沖突的代碼解決后,再推送

7.8 使用規(guī)范

  • 切換分支前先提交本地的修改
  • 代碼及時提交,提交過了就不會丟
  • 遇到任何問題都不要刪除文件目錄
    2Gydwpf-1657512048329)]

[外鏈圖片轉(zhuǎn)存中…(img-JWMD7OEF-1657512048329)]

這樣就是推送成功了

總結(jié)

以上是生活随笔為你收集整理的后端工程师之路(4)GIT工具的使用与介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。