入職前回顧一下git-01

git安裝

Linux上安裝git

在linux上建議用二進制的方式來安裝git,可以使用發行版包含的基礎軟件包管理工具來安裝。

  • 紅帽系
sudo yum install git
  • Debian系
sudo apt install git

Windows上安裝git

  • 去官網下載和操作系統位數相同的安裝包.
  • 或者可以直接安裝GitHub for Windows。該安裝程序包含圖形化和命令行版本的 Git。 它也能支持Powershell,提供了穩定的憑證緩存和健全的換行設置。 你可以在GitHub for Windows 網站下載

Mac上安裝git

  • 通過homebrew安裝git,brew install git
  • 通過Xcode安裝git,在AppStore重安裝Xcode,Xcode默認集成了Git。運行Xcode選擇菜單Xcode->Preferences,在彈窗中找到Download,選擇Command Line Tools,點"Install"就可以完成安裝了。

為什么要版本管理

  • 版本管理有一個中央服務器,可以保存所有代碼、文檔
  • 每一次的修改都可以提交到版本庫,修改有記錄,可追蹤
  • 不害怕某個同事離職了,代碼沒有入庫
  • 本地的代碼流失后,可以從版本庫檢出
  • 多人協作,每個同事完成的工作提交到版本庫,方便進行集成
  • 當我們要開發需求或修復PR時,可以從版本庫上拉出分支管理
  • 在大的企業,每次提交都可能觸發一次構建,實時檢查代碼的質量
  • 如果構建失敗了,可以自動revert掉某次提交

配置git

當安裝完 Git 應該做的第一件事就是設置你的用戶名稱與郵件地址。 這樣做很重要,因為每一個 Git的提交都會使用這些信息,并且它會寫入到你的每一次提交中,不可更改:

git config --global user.name "lennlouis"
git config --global user.email "lennlouis@tom.com"
  • 如果使用了--global選項,那么該命令只要運行一次,之后無論在該系統上做任何事情,git都會使用那些信息。當你想針對特定的項目使用不同的name email那就在那個項目的目錄下運行沒有--global選項的命令配置。
  • 很多 GUI 工具都會在第一次運行時幫助你配置這些信息。
  • 你也可以使用git config --list來查看git的所有配置。

獲取幫助

若你使用 Git 時需要獲取幫助,有三種方法可以找到 Git 命令的使用手冊:

git help <verb>
git <verb> --help
man git-<verb>
  • 例如獲得config的命令手冊,執行:
git help config
  • 官方文檔

創建倉庫

什么是倉庫呢?就是可以用git管理的一個目錄,這個倉庫里所有的文件的改動(增加/修改/刪除)都由git跟蹤記錄。也能通過git查看所有的記錄,當然也能夠通過git“還原”到某個記錄點。

mkdir git_test
cd git_test
git init

上面三個步驟就可以創建一個空的倉庫了,這個時候會在倉庫目錄下多了一個.git目錄,.git目錄里由很多關于git管理的文件,有了倉庫之后,我們就可以使用git add和git commit向倉庫添加要跟蹤的文件,和提交修改的內容了。

git add

在倉庫里剛新建的文件是不會被跟蹤起來的,比如我們使用git status就能查看到文件的狀態,需要使用git add才可以。(為了演示需要我創建幾個文件)

向暫存區添加文件
git add . # 將所有修改添加到暫存區
git add *.cpp # 將以.cpp結尾的文件的所有修改添加到暫存區
git add hello* # 將所有以Hello開頭的文件的修改添加到暫存區,例如: helloWorld.txt,hello.h,helloGit.md ...
git add hello?.* # 將以hello開頭后面只有一位的文件提交到暫存區 例如:hello1.txt,helloA.cpp 如果是helloGit.txt和hello.cxx是不會被添加的。
刪除暫存區文件

使用git rm -rf或者git rm --cached把文件從暫存區刪除,不是從磁盤刪除,只是不被git管理而已。

git commit

git add只是把文件添加到暫存區而已,并沒有真正跟蹤起來,需要使用git commit命令提交到倉庫才能真正被git跟蹤記錄,git commit命令的用法如下:

git commit -a -m "initial commit" #把暫存區和當前已被跟蹤的文件的所有的修改提交到倉庫里,-m參數指定了此次提交的message內容
git commit Makefile helloworld.cpp -m "修改編譯文件,添加了helloworld.cpp"

優雅地提交修改

git commit file1.name file2.name file3.name .. -m "commit message"

commit指提交修改到本地的倉庫里,file*.name指的是帶commit的文件 –m后面的內容指提交的信息,即備注。

git commit -a -m "commit message"

添加的-a參數會把當前暫存區里所有的修改(包括刪除操作)都提交,但是那些尚未添加到暫存區的內容是不會提交的,網上有很多的博客內容說-a參數會把尚未add的文件也提交了,這個說法是錯誤的。

git commit --amend

把此次提交追加到上一次的commit內容里。

Angular團隊規范

  • message格式
<type>(<scope>): <subject>
<BLANK LINE>	# 標題行:必填,描述主要修改類型和內容
<body>			# 主題內容:描述為什么修改,做了什么修改,開發思路等
<BLANK LINE>	# 頁腳注釋:放Breaking Changes或Closed Issues
<footer>
  • Type分類:

    • feat:新特性
    • fix:問題修改
    • refactor:代碼重構
    • docs:文檔修改
    • style:代碼格式修改,注意不是css修改
    • test:測試用例修改
    • chore:其他修改,比如構建流程,依賴管理
  • scope:commit影響范圍,即影響了什么模塊或者組件,比如:route,component,utils,build等

  • subject:commit概述,建議符合50/72 formatting

  • body:commit具體修改內容,可以分為多行,建議符合50/72 formatting

  • footer:一些備注,通常是BREAKING CHANGE或修復的bug鏈接,或者feature等其他信息

使用git commit模版規范提交

  1. ~/.gitconfig文件里添加
[commit]template = ~/.gitmessage

  1. 添加~/.gitmessage文件
<feat>(<>): <提交描述><body><footer># - type: feat(新特性), fix(修改問題), docs(文檔修改), style(代碼格式修改, 注意不是 css 修改), refactor(代碼重構), test(測試), chore(其他修改, 比如構建流程, 依賴管理)
# - scope: (可以為空)影響的的范圍
# - subject提交描述

推薦課程:https://xxetb.xetslk.com/s/3oyV5o

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

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

相關文章

模板引擎是什么?

模板引擎&#xff08;Template Engine&#xff09;是一種用于生成文本輸出的工具&#xff0c;尤其在Web開發中應用廣泛。它的主要目的是將用戶界面&#xff08;通常是HTML等模板文件&#xff09;與業務數據&#xff08;內容&#xff09;分離&#xff0c;從而提供一種高效、靈活…

[圖解]SysML和EA建模住宅安全系統-14-黑盒系統規約

1 00:00:02,320 --> 00:00:07,610 接下來&#xff0c;我們看下一步指定黑盒系統需求 2 00:00:08,790 --> 00:00:10,490 就是說&#xff0c;把這個系統 3 00:00:11,880 --> 00:00:15,810 我們的目標系統&#xff0c;ESS&#xff0c;看成黑盒 4 00:00:18,030 --> …

spring管理bean源碼解析

1. 從啟動類開始 public static void main(String[] args) {// Run the SpringApplication class with the Application class as the first argumentSpringApplication.run(Application.class, args);}2. bean 實例化 // SpringAplication row1294,1295 run() // SpringApli…

Power Apps使用oData訪問表數據并賦值前端

在使用OData查詢語法通過Xrm.WebApi.retrieveMultipleRecords方法過濾數據時&#xff0c;你可以指定一個OData $filter 參數來限制返回的記錄集。 以下是一個使用Xrm.WebApi.retrieveMultipleRecords方法成功的例子&#xff0c;它使用了OData $filter 參數來查詢實體的記錄&am…

【Parallel SSH】Ubuntu系統配置pssh實現多主機并行執行Master分發的命令

文章目錄 一、配置多機免密登錄二、ubuntu系統安裝pssh三、并行命令腳本編寫 一、配置多機免密登錄 假設有1臺主機作為Master分發命令&#xff0c;3臺主機作為Servers執行命令。假設Master主機內網IP地址為192.168.0.12&#xff0c;Servers外網IP及對應的hostname分別為&#…

最新盤點!2024年最值得了解的24款項目管理軟件

一、企業該如何選擇一款項目管理工具&#xff1f;選擇項目管理工具時需要考慮哪些因素&#xff1f; 在選擇和對比項目管理工具時&#xff0c;可以通過加權方式進行對比和評估。參考以下模板&#xff0c;可以把自己關注的項目管理工具&#xff0c;進行表格對比&#xff0c;選中…

企業智能制造賦能的環境條件為什么重要?需要準備什么樣的環境?

在全球制造業不斷演進的今天&#xff0c;智能制造已經成為推動行業創新和轉型的關鍵力量。它不僅代表了技術的革新&#xff0c;更是企業管理模式和運營思路的全面升級。然而&#xff0c;智能制造的落地實施并非一蹴而就&#xff0c;它需要企業在環境條件上做好充分的準備&#…

jail內部ubuntu apt升級失敗問題解決-Dynamic MMap ran out of room

在FreeBSD jail 里安裝啟動Ubuntu jammy系統&#xff0c;每次裝好執行jexec ubjammy sh進入Ubuntu系統后&#xff0c;執行apt update報錯。 這個問題困惑了好久&#xff0c;突然有一天仔細去看報錯信息&#xff0c;查看了(man 5 apt.conf) &#xff0c;才搞定問題。簡單來說就是…

Mybatis攔截器介紹及其應用

Mybatis攔截器介紹及其應用 1、介紹 Mybatis攔截器設計的初衷就是為了供用戶在某些時候可以實現自己的邏輯而不必去動Mybatis固有的邏輯。通過Mybatis攔截器我們可以攔截某些方法的調用&#xff0c;我們可以選擇在這些被攔截的方法執行前后加上某些邏輯&#xff0c;也可以在執…

Pycharm與Gitlab交互

環境準備 1、下載配置好本地Git 2、配置Pycharm上的Git 3、gitlab賬號 Gitlab配置 Gitlab配置中文 賬號》設置》偏好設置》簡體中文 創建項目 命令行操作 打開項目會展示以下步驟 在pycharm克隆gitlab的項目 通過菜單欄 1、在PyCharm的頂部菜單欄中&#xff0c;選擇“V…

本地部署,Flash Diffusion: 加速條件擴散模型實現快速圖像生成

目錄 引言 技術背景 Flash Diffusion 的架構與原理 Flash Diffusion 的主要特點 本地部署 運行結果 實驗結果與分析 應用實例 結論 GitHub - gojasper/flash-diffusion: Official implementation of ? Flash Diffusion ?: Accelerating Any Conditional Diffusion M…

Linux系統搭建輕量級個人博客VanBlog并一鍵發布公網遠程訪問

文章目錄 前言1. Linux本地部署2. VanBlog簡單使用3. 安裝內網穿透4. 創建公網地址5. 創建固定公網地址 前言 今天和大家分享如何在Linux Ubuntu系統搭建一款輕量級個人博客VanBlog&#xff0c;并結合cpolar內網穿透軟件生成公網地址&#xff0c;輕松實現隨時隨地遠程訪問本地…

相交鏈表+判斷環型鏈表+求環型鏈表的入口節點

鏈表OJ題 一.相交鏈表二.判斷環型鏈表三.求環型鏈表的入口節點 一.相交鏈表 相交鏈表 相交&#xff1a;兩個鏈表從頭開始遍歷&#xff0c;尾節點一定是同一個節點。 情況一&#xff1a;當兩個鏈表長度相同時&#xff1a; 情況二&#xff1a;當兩個鏈表長度不同時&#xff1…

考研黨暑假回家還是留校,暑假回家就一定完蛋嗎?

考研我建議最好還是留校&#xff0c;因為環境比較好&#xff01; 并不是說回家復習就一定不好&#xff0c;回家要面臨三大“敵人”&#xff1a; 1、我們本身的惰性&#xff0c;這個無需多言&#xff0c;在自己熟悉的環境&#xff0c;自己一個人&#xff0c;手機電腦網絡零食俱…

python條件

條件語句 if語句 if...else語句 if...elif...else語句 嵌套 is is 是一個身份運算符&#xff0c;用于比較兩個對象的身份&#xff0c;即它們在內存中的地址是否相同。這與比較兩個對象是否相等的 運算符不同。 運算符比較的是兩個對象的值是否相等。 比較對象 比較基本數據…

【Unity】RPG2D龍城紛爭(十一)戰斗系統之回合制驅動

更新日期:2024年7月11日。 項目源碼:第五章發布(正式開始游戲邏輯的章節) 索引 簡介一、開始關卡二、進入指定回合三、玩家結束當前回合四、進入下一回合五、通關條件六、檢測關卡狀態簡介 通過前兩篇的工作,我們的角色已經能夠進行移動、戰斗了,此刻,便進入第三個板塊…

React基礎學習-Day04

React基礎學習-Day04 常見的鉤子函數及基礎使用方式 1.useState useState 是 React 的一個 Hook&#xff0c;用于在函數組件中添加狀態。它返回一個狀態變量和一個更新該狀態的函數。與類組件的 this.state 和 this.setState 相對應&#xff0c;useState 讓函數組件也能擁有…

存儲實驗:Linux掛載iscsi硬盤與華為OceanStor創建LUN全流程

目錄 目的環境規劃實驗實驗流程Centos配置0. 關閉防火墻1. 設置網卡信息2. 配置路由3. iscsiadm連接存儲 iSCSI LUN創建&#xff08;以華為OceanStor為例&#xff09;驗證1. 驗證是否成功2. 開啟自動掛載 目的 實現Linux連接iscsi硬盤&#xff0c;同時實現開機自啟掛載 環境規…

掌握本地倉儲:Gradle本地倉庫配置全指南

掌握本地倉儲&#xff1a;Gradle本地倉庫配置全指南 在構建自動化的領域中&#xff0c;Gradle以其靈活性和強大的依賴管理功能脫穎而出。管理項目依賴時&#xff0c;經常需要配置本地倉庫以優化構建速度、控制依賴版本或支持離線構建。本文將深入探討如何在Gradle中配置本地倉…

JAVA----泛型

泛型 認識泛型 定義類、接口、方法時&#xff0c;同時聲明了一個或者多個類型變量&#xff08;如&#xff1a;&#xff09; &#xff0c;稱為泛型類、泛型接口&#xff0c;泛型方法、它們統稱為泛型。 作用&#xff1a;利用泛型&#xff0c;可以限制集合存儲數據的類型. 泛型…