主頁 >  其他 > Git與Gitee

Git與Gitee

2022-09-06 14:04:48 其他

1.1Git 的優勢 分支操作

  1. 大部分操作在本地完成,不需要聯網
  2. 完整性保證
  3. 盡可能添加資料而不是洗掉或修改資料
  4. 分支操作非常快捷流暢
  5. 與 Linux 命令全面兼容

1.2Git流程

在這里插入圖片描述

1.3命令列操作

1.3.1本地庫(版本庫或倉庫)初始化

命令:

git init (git add  //使用git管理這個檔案  放入暫存區)

效果 $ls -lA (查看以.開始的隱藏檔案)

注意:.git 目錄中存放的是本地庫相關的子目錄和檔案,不要洗掉,也不要胡
亂修改,

1.3.2設定簽名

用戶名:tom Email

地址:[email protected]

作用:區分不同開發人員的身份

辨析:這里設定的簽名和登錄遠程庫(代碼托管中心)的賬號、密碼沒有任何關 系,

命令 :

**專案級別/倉庫級別:**僅在當前本地庫范圍內有效

git config user.name    用戶名 
git config user.email   郵箱
  • 資訊保存位置:./.git/config 檔案

**系統用戶級別:**登錄當前作業系統的用戶范圍

git config  *--global*             user.name       tom_glb 

git config  *--global*              user.email        [email protected] 

  • 資訊保存位置:~/.gitconfig 檔案

級別優先級

  • 就近原則:專案級別優先于系統用戶級別,二者都有時采用專案級別 的簽名

  • 如果只有系統用戶級別的簽名,就以系統用戶級別的簽名為準

  • 二者都沒有不允

$ ls  -lA |less    //less 查看檔案后按:q回傳

1.3.2Git基本操作

1.3.2.1 狀態查看 status

git status  # 查看作業區、暫存區狀態

1.3.2.2 添加 add

git add [file name]  # 將作業區的“新建/修改”添加到暫存區 
git add .  # 提交所未定位的檔案,
git rm --cached [file name]  # 將檔案從暫存區撤回

1.3.2.3 提交 commit

git commit [file1] [file2] ... -m [message]  # 將暫存區的內容提交到本地庫  message備注資訊
git commit -a -m [message]  # 不經過add 直接添加至本地庫

? 可以直接commit,在不add的情況下

1.3.2.4 查看歷史記錄 log

git log 

多屏顯示控制方式:

空格向下翻頁

b 向上翻頁

q 退出

git log --pretty=oneline  //一個任務一行顯示
git log --oneline		//縮短hash值
git reflog				//顯示移動步數

? HEAD@{移動到當前版本需要多少步} //head 指標

1.3.2.5 前進后退 reset --hard

  • 基于索引值操作[推薦]

    git reset --hard [區域索引值] 
    git reset --hard a6ace91 
    
  • 使用^符號:只能后退

    git reset --hard HEAD^ 
    

    注:一個^表示后退一步,n 個表示后退 n 步

  • 使用~符號:只能后退

     git reset --hard HEAD~n 
    

    注:表示后退 n 步

    當執行 git reset HEAD 命令時,暫存區的目錄樹會被重寫,被 master 分支指向的目錄樹所替換,但是作業區不受影響,

    當執行 git rm --cached 命令時,會直接從暫存區洗掉檔案,作業區則不做出改變,

    當執行 git checkout . 或者 git checkout – 命令時,會用暫存區全部或指定的檔案替換作業區的檔案,這個操作很危險,會清除作業區中未添加到暫存區中的改動,

    當執行 git checkout HEAD . 或者 git checkout HEAD 命令時,會用 HEAD 指向的 master 分支中的全部或者部分檔案替換暫存區和以及作業區中的檔案,這個命令也是極具危險性的,因為不但會清除作業區中未提交的改動,也會清除暫存區中未提交的改動,

1.3.2.6 reset 命令的三個引數對比

  • –soft 引數

    • 僅僅在本地庫(倉庫)移動 HEAD 指標

      注:本地庫若后退了,會讓暫存區與作業區顯得往前走了

  • –mixed 引數

    • 本地庫移動 HEAD 指標
    • 重置暫存區
  • –hard 引數

    • 本地庫移動 HEAD 指標
    • 重置暫存區
    • 重置作業區(云上)

1.3.2.7 洗掉檔案并找回 reset前一個版本

  • 前提:洗掉前,檔案存在時的狀態提交到了本地庫,
  • 操作:git reset --hard [指標位置] 回退版本
    • 洗掉操作已經提交到本地庫:指標位置指向歷史記錄
    • 洗掉操作尚未提交到本地庫:指標位置使用 HEAD

1.3.2.8 比較檔案差異

  • git diff [檔案名] 
    
    • 將作業區中的檔案和暫存區進行比較
  • git diff [本地庫中歷史版本] [檔案名] 
    
    • 將作業區中的檔案和本地庫歷史記錄比較
  • 不帶檔案名比較多個檔案

名詞解釋

名詞解釋:

CRLF: "\r\n", windows系統環境下的換行方式

LF: "\n", Linux系統環境下的換行方式

Linux語法

ctrl+l 清屏 clear

linux語法
$ cat good.txt  # 查看文本內容
$ vim good.txt  # 編輯檔案   i插入   ESC wq保存退出

$ pwd(英文全拼:print work directory) # 顯示目前的目錄
$ mkdir(英文全拼:make directory) # 創建一個新的目錄
$ rmdir(英文全拼:remove directory) # 洗掉一個空的目錄
$ cp(英文全拼:copy file) #  復制檔案或目錄
$ rm(英文全拼:remove) #  洗掉檔案或目錄
$ mv(英文全拼:move file) #  移動檔案與目錄,或修改檔案與目錄的名稱
$ tail -n 100 [/etc/cron 檔案路徑 ]   # 顯示最后100行資料  -f 常用于查閱正在改變的日志檔案,

  1. 創建檔案或檔案夾的方式
    touch    # 用于修改檔案或者目錄的時間屬性,包括存取時間和更改時間,若檔案不存在,系統會建立一個新的檔案,
    vi     # vi編輯器 編輯檔案,沒有會自動創建
    mkdir    # 創建目錄,沒有會自動創建

  2. 使用vim時,如果不小心按了 Ctrl + s后,會發現不能輸入任何東西了,像死掉了一般,其實vim并沒有死掉,這時vim只是停止向終端輸出而已,要想退出這種狀態,只需按Ctrl + q 即可恢復正常,

1.4分支管理

1.4.1 分支的好處

  • 同時并行推進多個功能開發,提高開發效率
  • 各個分支在開發程序中,如果某一個分支開發失敗,不會對其他分支有任 何影響,失敗的分支洗掉重新開始即可
  • 一般作業至少需要兩個分支 master(主分支)、dev(開發分支)

1.4.2分支操作

1.4.2.1創建、洗掉分支命令:branch

? 分支創建新分支時,新創建的分支代碼與創建者的分支代碼保持一至,

git branch (分支名)  # 創建分支
git branch  # 查看分支
git branch -d 需要洗掉的分支名  # 查看分支

1.4.2.2切換分支命令:checkout

git checkout (分支名)

當你切換分支的時候,Git 會用該分支的最后提交的快照替換你的作業目錄的內容, 所以多個分支不需要多個目錄,

1.4.2.3合并分支命令:merge

若A分支合并B分支:需要先切換到A分支,然后在A分支下合并B分支,

git merge  (有新內容分支)

1.4.2.3 解決沖突

  • 沖突的表現

    CONFLICT (content): Merge conflict in good.txt
    Automatic merge failed; fix conflicts and then commit the result.

    提示產生沖突,需要解決,

    **產生沖突的原因:**merge 分支的代碼與原分支的代碼修改過同一行的檔案,(未修改同一行檔案一般會自動合并)

  • 沖突的解決

    • 第一步:編輯檔案,洗掉特殊符號
    • 第二步:把檔案修改到滿意的程度,保存退出
    • 第三步:git add [檔案名]
    • 第四步:git commit -m "日志資訊"
      • 注意:此時 commit 一定不能帶具體檔案名,因為此時需要commit多個檔案所以不加檔案名,

1.5連接GitHub

1.5.1創建遠程倉庫的別名 remote add

git remote -v 查看當前所有遠程地址別名
git remote add [別名] [遠程地址]

1.5.2 推送本地庫(版本庫)到遠程倉庫 push

git push [別名] [分支名]

1.5.3 克隆 clone

 git clone [遠程地址]

1.5.4 拉取 pull

git pull 命令用于從遠程獲取代碼并合并本地的版本,用于沖突不是很多的情況,否則用fetch后merge

git pull 其實就是 git fetchgit merge FETCH_HEAD 的簡寫, 命令格式如下:

git fetch [遠程庫地址別名] [遠程分支名]    #從遠程獲取代碼庫
git merge [遠程庫地址別名/遠程分支名]
git pull <遠程主機名> <遠程分支名>:<本地分支名>
$git pull origin master --allow-unrelated-histories  # 強制合并 git庫里有多個分支目前只想修改一個分支的內容

1.5.5 團隊其他人推送

如果不是基于 GitHub 遠程庫最新版所做的修改,不能直接推送(push),必須先拉取(pull),拉取下來后進入沖突狀態,解決沖突完成之后推送(push),

1.5.6 跨團隊協作

1.fork

? 在github的專案界面右上角
2.clone 跨團隊fork后擁有的遠程庫

3.改動后pull 跨團隊的遠程庫

4.在GitHub上的專案界面點 Pull request >>> New pull request >>> 寫訊息Create pull request

5.專案所有人查看跨團隊的 Pull request

6.審核代碼

7.合并代碼 Merge pull request

8.將遠程庫拉取到本地 pull

1.6ssh連接Git

1.7Eclipse連接Git

1.7.1 查看Git 設定本地庫的用戶簽名

? window >> preferences >> Team >> Git >> Configuration(Repository Settings選項卡) >> Add Entry

1.7.2 解釋 合并工具zoomit

  • 創建好eclipse的本地庫之后 需要git add 添加到快取區將檔案追蹤,如果檔案未被追蹤檔案無法上傳到倉庫,
  • 專案中的所有檔案不需要全部都進行追蹤,有一些用于專案管理的檔案不需要上傳,
  • Navigator視窗可查看專案的所有檔案
  • 專案右鍵 >> Team >> Add to index(添加至倉庫快取)
  • commit 需要填寫提交資訊,一般是介紹操作的用途,或修改的檔案名
  • 轉換工程型別:專案右鍵 >> Configure >> Convert to Maven Project
  • 低版本匯入git專案需要指定作業區以外的專案,高版本一般指定作業目錄,
  • 在做修改之后需要提交到本地庫(commit)才能往git上提交,一般需要先pull 后 Push ,
  • 沖突合并的工具:merge tool 左邊是自己的,右邊是git上的,左邊可以修改,右邊不可以修改,

1.8Git的作業流

1.8.1 分類

  1. 集中式作業流

    像 SVN 一樣,集中式作業流以中央倉庫作為專案所有修改的單點物體,所有 修改都提交到 Master 這個分支上, 這種方式與 SVN 的主要區別就是開發人員有本地庫,Git 很多特性并沒有用到,

  2. Gitflow作業流

    Gitflow 作業流通過為功能開發、發布準備和維護設立了獨立的分支,讓發布 迭代程序更流暢,嚴格的分支模型也為大型專案提供了一些非常必要的結構,

  3. Forking 作業流

    Forking 作業流是在 GitFlow 基礎上,充分利用了 Git 的 Fork 和 pull request 的 功能以達到代碼審核的目的,更適合安全可靠地管理大團隊的開發者,而且能接受 不信任貢獻者的提交,

1.8.2 GitFlow作業流詳解

1.8.2.1分支的種類

  1. 主干分支 master

    主要負責管理正在運行的生產環境代碼,永遠保持與正在運行的生產環境 完全一致,

  2. 開發分支 develop

    主要負責管理正在開發程序中的代碼,一般情況下應該是最新的代碼,

  3. bug 修理分支 hotfix

    主要負責管理生產環境下出現的緊急修復的代碼, 從主干分支分出,修 理完畢并測驗上線后,并回主干分支,并回后,視情況可以洗掉該分支,

  4. 準生產分支(預發布分支) release

    較大的版本上線前,會從開發分支中分出準生產分支,進行最后階段的集 成測驗,該版本上線后,會合并到主干分支,生產環境運行一段階段較穩定后 可以視情況洗掉,

  5. 功能分支 feature

    為了不影響較短周期的開發作業,一般把中長期開發模塊,會從開發分支 中獨立出來, 開發完成后會合并到開發分

1.8.2.2GitFlow作業流舉例

操作:

切換分支:Team >> switch to >>

合并分支:Merge

  1. 創建分支 new Branch
  2. 切換分支審查代碼 ,并從commit代碼到Git庫
  3. 專案經理 檢出遠程分支 checkout (專案經理本地創建出新的分支(前面新建的))
  4. 切回master
  5. 合并分支 merge
  6. 合并成功后推向Git

1.9 Gitee實戰

見:https://blog.csdn.net/qq_43530326/article/details/123435355

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/504385.html

標籤:其他

上一篇:SQLI-LABS(Less-6)

下一篇:Sourcetree 如何關聯自己的gitlab倉庫

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more