git的介紹和使用

来源:https://www.cnblogs.com/suncolor/archive/2022/10/31/16841972.html
-Advertisement-
Play Games

git介紹 什麼是git git是一種版本控制器 - 控制的對象是開發的項目代碼 什麼是版本控制器 完成 協同開發 項目,幫助程式員整合代碼 i)幫助開發者合併開發的代碼 ii)如果出現衝突代碼的合併,會提示後提交合併代碼的開發者,讓其解決衝突 軟體:SVN 、 GIT(都是同一個人的個人項目) g ...


git介紹

什麼是git

git是一種版本控制器 - 控制的對象是開發的項目代碼

什麼是版本控制器

完成 協同開發 項目,幫助程式員整合代碼
	i)幫助開發者合併開發的代碼
	ii)如果出現衝突代碼的合併,會提示後提交合併代碼的開發者,讓其解決衝突

軟體:SVN 、 GIT(都是同一個人的個人項目)
	github、gitee(兩個採用git版本控制器管理代碼的公共平臺)

git特點:集群化、多分支

git與svn比較

image

image

git的工作流程

image

版本庫間的通信

image

git分支管理(重點)

image

git的使用

安裝

安裝網址:https://git-scm.com/download/win
直接下一步安裝即可!

git的基礎命令

將已有的文件夾 - 初始化為git倉庫

>: cd 目標文件夾內部
>: git init

或者

>: git init 文件夾名
>: git init (不加表示將當前路徑下全部初始化管理)

查看倉庫狀態

# 當倉庫中有文件增加、刪除、修改,都可以在倉庫狀態中查看
>: git status  
	-- 查看倉庫狀態
>: git status -s  
	-- 查看倉庫狀態的簡約顯示

將工作區內容提交到暫存區

>: git add .  
	-- 添加項目中所有文件
>: git add 文件名  
	-- 添加指定文件

撤銷暫存區提交:add的逆運算(很少使用)

>: git reset HEAD .
	-- 撤銷所有暫存區的提交
>: git reset 文件名
	-- 撤銷某一文件的暫存區提交
>: git reset .
	-- 撤銷所有暫存區的提交

提交暫存區內容到版本庫

>: git commit -m "版本描述信息"
一定要加版本描述信息,不然報錯

註:提交之前一定要先設置全局或者局部用戶

在倉庫目錄終端下 - 設置全局用戶

>: git config --global user.name '用戶名'
>: git config --global user.email '用戶郵箱'

註:在全局文件 C:\Users\用戶文件夾\.gitconfig新建用戶信息,在所有倉庫下都可以使用

在倉庫目錄終端下 - 設置局部用戶

>: git config user.name '用戶名'
	-- 用戶名
>: git config user.email '用戶郵箱'
	-- 用戶郵箱
	
註:在當前倉庫下的config新建用戶信息,只能在當前倉庫下使用
註:一個倉庫有局部用戶,優先使用局部用戶,沒有配置再找全局用戶

撤銷工作區操作:改、刪(瞭解)

>: git checkout .
	-- 撤銷所有暫存區的提交
>: git checkout 文件名
	-- 撤銷某一文件的暫存區提交

撤銷版本庫提交:commit的逆運算

回滾暫存區已經提交到版本庫的操作:
    查看歷史版本:
        >: git log
        >: git reflog
    查看時間點之前|之後的日誌:
        >: git log --after 2018-6-1
        >: git log --before 2018-6-1
        >: git reflog --after 2018-6-1
        >: git reflog --before 2018-6-1
    查看指定開發者日誌
        >: git log --author author_name
        >: git reflog --author author_name
    回滾到指定版本:
        回滾到上一個版本:
            >: git reset --hard HEAD^
            >: git reset --hard HEAD~
        回滾到上三個版本:
            >: git reset --hard HEAD^^^
            >: git reset --hard HEAD~3
        回滾到指定版本號的版本:
            >: git reset --hard 版本號 (重點)
            >: eg: git reset --hard 35cb292
			版本號可以通過git log 查看到

過濾文件

過濾文件的意思是指定某些文件或者文件夾不被git管理

# .gitignore 文件
# 1)在倉庫根目錄下創建該文件
# 2)文件與文件夾均可以被過濾
# 3)文件過濾語法

""" 過濾文件內容
文件或文件夾名:代表所有目錄下的同名文件或文件夾都被過濾
/文件或文件夾名:代表倉庫根目錄下的文件或文件夾被過濾

eg:
a.txt:項目中所有a.txt文件和文件夾都會被過濾
/a.txt:項目中只
有根目錄下a.txt文件和文件夾會被過濾
/b/a.txt:項目中只有根目錄下的b文件夾下的a.txt文件和文件夾會被過濾
*x*:名字中有一個x的都會被過濾(*代表0~n個任意字元)
空文件夾不會被提交,空包會被提交,包可以被提交(包中有一個init空文件)

git的多分支開發

1.創建分支
>: git branch 分支名

2.查看分支
>: git branch

3.切換分支
>: git checkout 分支名

4.創建並切換到分支
>: git checkout -b 分支名

5.刪除分支
>: git branch -d 分支名

6.查看遠程分支
>: git branch -a

7.合併分支
>: git merge 分支名
把dev分支合併到master分支:切換到master分支,執行合併dev分支的命令
"""

"""
1)多個開發者都是在一個分支上進行開發,不出意外,該分支一定叫dev(協同開發)
2)如果出現一個特殊任務(敏感任務),與正常業務關係不緊密,甚至可能大的影響正常的dev分支開發,可以依賴dev開一個子分支,進行開發,開發完畢後合併到dev分支,再刪除該分支即可
3)所有的開發任務都可以在dev分支上進行(除非公司硬性要求不能直接在dev分支開發,只能在dev子分支開發,測試通過後才能合併給dev)

git遠程開發

"""
1)你作為項目倉庫初始化人員:
	線上要創建空倉庫 => 本地初始化好倉庫 => 建立remote鏈接(remote add) => 提交本地倉庫到遠程(push)
	
2)你作為項目後期開發人員:
	遠程項目倉庫已經創建成功 => 複製遠程倉庫到本地(clone) => 進入倉庫就可以進行接下來的開發
"""

測試:自己創建空倉庫
image

如何連接遠程倉庫

image

remote源操作

1)查看倉庫已配置的遠程源
>: git remote
>: git remote -v

2)查看remote命令幫助文檔
>: git remote -h

3)刪除遠程源
>: git remote remove 源名
eg: git remote remove origin

4)添加遠程源
>: git remote add 源名 源地址
>: git remote add orgin [email protected]:doctor_owen/luffyapi.git

5)提交代碼到遠程源
>: git push 源名 分支名 
(需要輸入用戶名和密碼就是遠程倉庫的賬號和密碼)你之前在自己機器上存的需要到控制面板--用戶--管理windows憑據中刪掉

6)克隆遠程源
>: git clone 遠程源地址

7)更新本地庫
git pull origin master(分支名)
"""

"""
1)通過克隆方式連接遠程源,預設遠程源名就叫origin;所以主動添加遠程源來連接遠程倉庫,源碼也用origin
2)本地一個倉庫只需要和遠程一個源進行同步,所以只需要連接一個遠程源,如果還想把本地代碼同步給第三個平臺,那麼可以通過主動添加遠程源來連接第三個平臺的遠程倉庫,此時的源碼就不能再叫origin了,比如online都可以
3)pull和push都可以提供選擇不同的源碼,和不同的遠程倉庫交互

重點:每次向遠程庫提交代碼時,一定要先更新代碼,就是把遠程庫先拉下來一下,再提交,如果不拉就提交不上去

使用ssh和https連接遠程庫

# 1 公司內部大部分用ssh連接遠程庫
	-領導給你一個git地址(項目地址)
    -你 一般先git clone 地址  到本地
    -改代碼,改完了---》提交(沒有密碼賬戶都禁止)
    -改用ssh配置,以後都不用輸密碼了
# 2 配置如何做
先瞭解對稱加密和非對稱加密
	-對稱加密(加密和解密用同一套秘密)
    -非對稱加密(公鑰和私鑰),公鑰加密,私鑰解密

    -生成一對公鑰和私鑰(用命令)
    	-https://gitee.com/help/articles/4181 詳情操作查看這個鏈接
        -ssh-keygen -t rsa -C "[email protected]"(郵箱可以隨便填) 生成到用戶家目錄的.ssh文件夾下(一個公鑰,一個私鑰)  
        -把公鑰複製出來,再碼雲上配置
 
# 跟遠程操作有三個命令
git pull
git push
-git feacth(一般不用,他跟pull是一個東西,當作不知道)

image

pycharm連接git

1.安裝git

2.在pycharm中的settings里的git配置好git.exe的地址

3.pycharm中git里進行對應的操作

image


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在之前的SqlSugar系列隨筆中,介紹了很多我們關於SqlSugar的開發框架的內容,SqlSugar的開發框架的目的是多前端應用場景,因此其中會包含各種不同的前端應用,前面介紹了基於DevExpress的Winform的前端應用,以及基於Vue3+TypeScript+ElementPlus的B... ...
  • apijson 初探 本文試著用 5W1H 方式切入,試圖快速建立自己對 apijson 的整體認知,所以這不是一趟快速入門的 demo 之旅,而是顯得比較務虛的探索式知識體系整合過程。 持續更新中... 1、Why 前後端開發過程中各種痛點: 開發流程繁瑣、周期長 前端/客戶端與後端各種扯皮 文檔 ...
  • 您好,我是湘王,這是我的博客園,歡迎您來,歡迎您再來~ 前面把線程相關的生命周期、關鍵字、線程池(ThreadPool)、ThreadLocal、CAS、鎖和AQS都講完了,現在就剩下怎麼來用多線程了。而要想用好多線程,其實是可以取一些巧的,比如JUC(好多面試官喜歡問的JUC,就是現在要講的JUC ...
  • 1.函數定義 函數就是將完成一件事情的步驟封裝在一起並得到最終的結果; 函數名代表了這個函數要做的事情; 函數體是實現函數功能的流程; 添加一個函數也被叫做實現了一個方法或功能; 函數可以幫助我們重覆使用一些操作步驟; 2.def 通過關鍵字def定義函數; def name(args...): p ...
  • 1.簡介 python的創始人為 吉多·範羅蘇姆(Guido van Rossum),創建於1989年的聖誕節期間,根據本人熱愛的電視劇《蒙提·派森的飛行馬戲團》(Monty Python's Flying Circus)而取得。 目前python在眾多領域中得到了極大的推廣,一躍成為全球最火爆的語 ...
  • JavaScript02 8.JavaScript函數 JavaScript函數介紹 函數是由事件驅動的,或者當它被調用時,執行的可重覆使用的代碼 例子 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>函數快 ...
  • phpt測試文件說明 phpt文件用於PHP的自動化測試,這是PHP用自己來測試自己的測試數據用例文件。 測試腳本通過執行PHP源碼根目錄下的run-tests.php,讀取phpt文件執行測試。 phpt文件包含 TEST,FILE,EXPECT 等多個段落的文件。在各個段落中,TEST、FILE ...
  • 2022-10-23 步驟: 一、創建工程倉庫 (1)在“碼雲”上創建一個倉庫,在本地盤符中創建一個文件夾,右擊,使用git,將遠程倉庫的內容克隆到本地倉庫中,點擊“Git Bash Here”。將剛剛創建的遠程倉庫克隆,使用的命令是“git clone 剛剛遠程倉庫的地址(點擊(克隆/下載)按鈕會 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...