Ubuntu 20.04 中 Git 的安裝、配置和基本操作指南


本文為經驗 所談 使用版本為ubuntu20.04


1 ubuntu的git初始化

1.安裝git
sudo apt-get install git
可通過git --version 命令查看,正常輸出git版本號即安裝成功。
2.配置用戶名和郵箱名

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

配置完后可以通過以下命令查看

git config user.name
git config user.email 

3.創建ssh公鑰
創建公鑰文件,生成的公鑰文件會保存在本機的~/.ssh目錄下
ssh-keygen -C 'example@example.com' -t rsa
在這里插入圖片描述
出現的第一個代表儲存位置(你也可以直接按回車 直接省事到底)
4 .拿出公鑰填入GitHub

cd ~/.ssh
cat id_rsa.pub
#默認儲存位置

復制即可
github部分請添加圖片描述

點擊個人設置,即右上角 然后個人設置 粘貼即可

將剛才保存的id_rsa.pub文件內容復制到Key字段,Title自己起個名字,最好是能代表當前所配置的機器的名字。然后點Add SSH key,會要求輸入當前github賬號的密碼,按要求輸入就行了。

2 git本地操作

2.1添加文件

1 創建倉庫并初始化
倉庫(repository)也叫版本庫,可以看做一個目錄,這個目錄里的所以文件都由Git進行管理,每個文件的修改、刪除,Git都能跟蹤

  • 1.打開你的項目文件
  • 2 輸入git init

會輸出Initialized empty Git repository in /home/ps/JJ_Projects/learnGit/.git/,表示成功初始化git倉庫。
這時會發現該目錄中多出了一個.git目錄,這就是git來跟蹤管理版本庫的

2.添加文件
以readme做例子
1.readme.md
我們首先創建一個README文件,并寫入一些內容:

touch readme.md
vim readme.md#自己隨便寫點cat readme.md # 查看文件內容

2.執行git add命令,將文件添加的倉庫。
git add README.txt

3 執行git commit命令,將文件提交的倉庫。

git commit -m "Submit a new file." # 雙引號內是本次提交的注釋,原則上可以隨便寫,但是盡量能表達出本次提交的改動。-m -m 參數后面跟著的是提交信息,描述你所做的更改
輸出
master (root-commit) 7e21c1f] Submit a new file.
1 file changed, 1 insertion(+)
create mode 100644 README.tx

2.2 修改文件

1.修改文件內容‘
vim readme.md
2.查看倉庫狀態
git status

On branch master
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: readme.md
意思很明顯:README.txt文件提勁被修改過了,但是現在還沒有改動需要git submit,因為要先git add。

3 查看文件改動
git diff
4 就像上面一樣添加到本地倉庫

2.4 版本回退

使用git進行版本控制,重要的用途之一就是進行版本回退了,我們來看一下怎樣操作。
1.我們先使用git log命令來查看一下倉庫的修改日志
2.使用git reset命令,將版本回退

git reset --hard HEAD^ # HEAD表示當前版本,HEAD^代表上一個版本
輸出:
HEAD is now at 7e21c1f Submit a new file.

2.5工作區和暫存區

1.工作區(Working Directory),我們創建的learnGit 目錄就是一個工作區。

  1. 版本庫,倉庫(Repository),工作區有個隱藏目錄 .git ,這個不算工作區,而是 Git 的版本庫。

3.版本庫里面的 index(stage) 文件叫暫存區,還有Git為我們自動創建的第一個分支 master ,以及指向 master 的一個指針叫做 HEAD。
請添加圖片描述
關系
前面我們提到過,如果我們想把文件添加到Git里面時,需要分兩步:

第一步是用 git add 把文件添加進去,實際上就是把文件修改添加到暫存區。

第二步是用 git commit 提交更改,實際上就是把暫存區的所有內容提交到當前分支。(我們現在只有唯一一個分支 master,所以現在就是往 master 分支上提交

2.6 刪除文件與恢復

  1. 我們先準備一個待刪除的文件test.txt,并add、commit到倉庫,
touch test.txt
vim test.txt		# 添加內容 delete test
git add test.txt
git commit -m "delete test"
# 輸出:
[master 08ffedc] delete test1 file changed, 1 insertion(+)create mode 100644 test.txt

2.工作區中直接刪除test.py
rm test.py

這時有兩種情況:

  • (1) 工作區中誤刪文件,需要恢復

  • (2) 確實要刪除文件,應該把刪除操作提交到倉庫

3.工作區中誤刪文件,需要恢復

這種情況其實與上面的撤銷修改情況1是一樣的,要將工作區的動作撤銷掉,而這在我們的倉庫中還是存在的,所以還是要請出我們的checkout命令就好了。

git checkout -- test.txt
ls
# 輸出:
README.txt  test.txt

4.確實要刪除文件,應該把刪除操作提交到倉庫
我們先把剛剛恢復的test.txt再從工作區刪掉。
rm test.txt
既然我們確實要刪掉該文件,就直接再用git rm刪除:

git rm test.py
# 輸出:
rm 'test.txt'

再將刪除操作提交到倉庫:

git commit -m "delete test"
# 輸出:
[master 9182ef7] delete test1 file changed, 1 deletion(-)delete mode 100644 test.txt

這個發現誤刪可以用版本回退

3 github遠程操作

1.添加遠程倉庫
在這里插入圖片描述
就是ssh下面的網址
git remote add origin <你的網址>
通過一下命令查看遠程倉庫是否被添加
git remote -v
2.提交倉庫
git push -u origin master

因為遠程庫是空的,所以我們在第一次推送 master 分支時,要加上 -u 參數,Git不但會把本地的master 分支內容推送的遠程新的 master 分支,還會把本地的 master 分支和遠程的 master 分支關聯起來,在以后的推送或者拉取時就可以簡化命令。
3.輸入和令牌
在這里插入圖片描述
提交的時候會輸入令牌和用戶名
假如你是倉庫所有者 你直接用自己的用戶名 和去創建令牌
1.個人設置的開發者設置
在這里插入圖片描述

2.點擊tokens(classic)在這里插入圖片描述
3.生成令牌
在這里插入圖片描述
選下面哪個 勾選repo 一定要保存(只出現一次) 你提交的時候要驗證

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76382.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76382.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76382.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

conda 激活環境vscode的Bash窗口

多份conda環境注意事項&#xff0c;當時安裝了兩個conda環境&#xff0c;miniconda和conda&#xff0c;導致環境總是沖突矛盾。初始化時需要更加注意。 $ C:/Users/a_hal/miniconda3/Scripts/conda.exe init bash能夠顯示用哪里的conda環境命令執行。 然后直接conda activate…

Mac下小智AI本地環境部署

可以進行聊天、編寫程序、播放歌曲等等的小智語音聊天小助手&#xff0c;在Mac環境下修改源代碼&#xff0c;值得擁有。本篇內容主要講解Mac下環境的搭建&#xff0c;WebSocket的修改。注&#xff1a;環境python3.12.0、ESP-IDF5.4.0、開發板ESP32S3。 目錄 1.Git安裝2.Python…

Linux安裝Cmake (Centos 7.9)

cmake安裝 這個雖然已經更新到了4.0.0版本了&#xff0c;但是我們要用3.5版本的&#xff0c;因為這個比較穩定 官方地址&#xff1a;https://github.com/Kitware/CMake/releases/tag/v3.5.0&#xff0c;選擇那個cmake-3.5.0-Linux-x86_64.tar.gz下載&#xff0c; 首先解壓文…

基于 SpringBoot 的舊物置換網站

收藏關注不迷路&#xff01;&#xff01; &#x1f31f;文末獲取源碼數據庫&#x1f31f; 感興趣的可以先收藏起來&#xff0c;還有大家在畢設選題&#xff08;免費咨詢指導選題&#xff09;&#xff0c;項目以及論文編寫等相關問題都可以給我留言咨詢&#xff0c;希望幫助更多…

ELK 通過 logstash 收集單個/多個日志文件

一、收集單個日志文件 注意事項&#xff1a; logstah 服務默認啟動用戶和組是 logstash被收集的日志文件有讀的權限并對寫入的文件有寫權限而 logstash 是普通用戶 1.1 編輯 logstash 配置文件 vim /etc/logstash/conf.d/test.conf input {file {path > "/var/log/…

分享一個Drools規則引擎微服務Docker部署

通常我們都是把Drools作為嵌入式使用&#xff0c;但在微服務泛濫時代&#xff0c;還在老套的嵌入式顯然不符合微服務架構要求&#xff0c;本文分享一個把Drools作為微服務獨立部署的方案。 本方案基于Drools引擎微服務&#xff0c;提供REST接口。 1、可以動態部署Drools規則2…

Mac 本地化部署 dify

Macbook 本地化部署 dify 目錄 Macbook 本地化部署 dify安裝dockerdocker下載地址 安裝dify下載dify到本地github可能遇到的問題: github打開超時在本地解壓dify.zip文件本地化部署docker部署可能遇到的問題: 部署超時登錄體驗 dify 安裝docker docker下載地址 根據電腦芯片選…

串口中斷接收與環形緩沖實例(apollo3 blue plus)

#define DEV_UART1 1 #define GPS_POWER_PIN 13 #define GPS_LOG_ENABLE 1 #define MAX_UART1_SIZE 1024 #define AM_BSP_GPIO_COM_UART1_TX 8 #define AM_BSP_GPIO_COM_UART1_RX 9 // 定義環形緩沖區結構 typed…

操作系統高頻(五)linux命令

操作系統高頻&#xff08;五&#xff09;linux命令 1.Linux中查看進程運行狀態的指令、tar解壓文件的參數。??? 在Linux中&#xff0c;可以使用以下指令查看進程的運行狀態&#xff1a; top&#xff1a; 用于實時監視系統的進程活動和系統資源使用情況。在終端中運行top…

Spring Boot 快速入手

前言&#xff1a;為什么選擇 Spring Boot&#xff1f; &#x1f680; 在現代 Java 開發中&#xff0c;Spring Boot 已成為最流行的后端框架之一。無論是小型 Web 應用、企業級系統&#xff0c;還是微服務架構&#xff0c;Spring Boot 都能提供快速開發、自動配置、輕量級部署的…

oracle-blob導出,在ob導入失敗

導出&#xff1a; [oraclelncs dmp]$ /home/oracle/sqluldr2 gistar/res#pwd192.168.205.58:1521/lndb query"select * from an_odn_picture where length(PIC_CONTENT)<25000" filean_odn_picture.csv Charsetutf8 textCSV 0 rows exported at 2025-…

RK3568 pinctrl內容講解

文章目錄 一、pinctrl的概念`pinctrl` 的作用設備樹中的 `pinctrl` 節點典型的 `pinctrl` 節點結構例子`pinctrl` 的重要性總結二、RK3568的pinctrl講解1. `pinctrl` 節點2. `gpio0` 至 `gpio4` 子節點每個 `gpioX` 子節點的結構和作用3. `gpio1` 到 `gpio4` 子節點總結1. `aco…

北京南文觀點:后糖酒會營銷,以戰略傳播重構品牌信心坐標

第112屆全國糖酒會落下帷幕&#xff0c;參展品牌面臨一個關鍵命題。如何在流量洪流中沉淀品牌價值&#xff1f;北京南文&#xff08;全稱&#xff1a;南文樂園科技文化&#xff08;北京&#xff09;有限公司&#xff09;認為&#xff0c;糖酒會的結束恰是算法時代品牌認知戰的真…

html5時鐘升級!支持切換深淺模式 Canvas實現現代化動態時鐘

HTML5 Canvas實現現代化動態時鐘 這里寫目錄標題 HTML5 Canvas實現現代化動態時鐘項目介紹技術實現1. 項目架構2. Canvas繪圖實現2.1 表盤繪制2.2 刻度繪制2.3 指針繪制 3. 動畫效果4. 主題切換 項目亮點技術要點總結項目收獲改進方向結語 項目介紹 本項目使用HTML5 Canvas技術…

《SRv6 網絡編程:開啟IP網絡新時代》第2章、第3章:SRv6基本原理和基礎協議

背景 根據工作要求、本人掌握的知識情況&#xff0c;僅針對《SRv6 網絡編程&#xff1a;開啟IP網絡新時代》書籍中涉及的部分知識點進行總結梳理&#xff0c;并與工作小組進行分享&#xff0c;不涉及對原作的逐字搬運。 問題 組內同事提出的問題&#xff1a;本文缺擴展頭描述…

衛星電話究竟是“錦上添花”?還是“剛需之選”?

在萬物互聯的時代浪潮中&#xff0c;衛星電話究竟是可有可無的“錦上添花”&#xff0c;還是至關重要的“剛需之選”&#xff1f;隨著通信技術的持續進步與應用場景的日益拓展&#xff0c;這一問題的答案正逐漸明晰。 在5G基站覆蓋99%行政村的今天&#xff0c;人類依然要直面自…

C語言復習筆記--指針(1)

今天我們進入指針的復習了.這部分有很多知識,話不多說,讓我們進入指針的世界吧. 內存和地址 要想學指針就不能不學內存和地址. 內存 其中&#xff0c;每個內存單元&#xff0c;相當于?個學?宿舍&#xff0c;? 個字節空間??能放8個?特位&#xff0c;就好?同學們 住的??…

【藍橋杯每日一題】4.1

&#x1f3dd;?專欄&#xff1a; 【藍橋杯備篇】 &#x1f305;主頁&#xff1a; f狐o貍x "今日禿頭刷題&#xff0c;明日榮耀加冕&#xff01;" 今天我們來練習二分算法 不熟悉二分算法的朋友可以看&#xff1a;【C語言刷怪篇】二分法_編程解決算術問題-CSDN博客 …

【設計模式】過濾器模式

過濾器顧名思義&#xff0c;定義一些過濾規則&#xff0c;將符合要求的內容篩選&#xff0c;就比如過濾不同大小或者不同顏色的水果&#xff0c;需要顏色和大小過濾器&#xff0c;篩選條件獨立為對象&#xff0c;可以通過靈活組合形成過濾鏈條。避免大量使用判斷語句。 案例代…

STM32 CAN學習(一)

CAN總線應用最多的是汽車領域。 CAN&#xff08;Controller Area Network&#xff09;控制器 局域 網 局域網&#xff1a;把幾臺電腦連接到一臺路由器上&#xff0c;這幾臺電腦就可以進行通訊了。 控制器在汽車中的專業術語叫做ECU&#xff08;Electronic Control Unit&…