Git使用和原理(3)

1.遠程操作

1.1分布式版本控制系統

我們?前所說的所有內容(?作區,暫存區,版本庫等等),都是在本地!也就是在你的筆記本或者 計算機上。?我們的 Git 其實是分布式版本控制系統!什么意思呢?
可以簡單理解為,我們每個?的電腦上都是?個完整的版本庫,這樣你?作的時候,就不需要聯?
了,因為版本庫就在你??的電腦上。既然每個?電腦上都有?個完整的版本庫,那多個?如何協作 呢???說你在??電腦上改了?件A,你的同事也在他的電腦上改了?件A,這時,你們倆之間只需 把各?的修改推送給對?,就可以互相看到對?的修改了 分布式版本控制系統的安全性要?很多,因為每個?電腦?都有完整的版本庫,某?個?的電腦壞掉 了不要緊,隨便從其他?那?復制?個就可以了。
在實際使?分布式版本控制系統的時候,其實很少在兩?之間的電腦上推送版本庫的修改,因為可能 你們倆不在?個局域?內,兩臺電腦互相訪問不了。也可能今天你的同事病了,他的電腦壓根沒有開 機。因此,分布式版本控制系統通常也有?臺充當“中央服務器”的電腦,但這個服務器的作?僅僅 是?來?便“交換”?家的修改,沒有它?家也?樣?活,只是交換修改不?便?已。有了這個“中央服務器”的電腦,這樣就不怕本地出現什么故障了(?如運?差,硬盤壞了,上?的所有東西全部 丟失,包括git的所有內容)

1.2遠程倉庫

Git 是分布式版本控制系統,同?個 Git 倉庫,可以分布到不同的機器上。怎么分布呢?最早,肯定只 有?臺機器有?個原始版本庫,此后,別的機器可以 “克隆” 這個原始版本庫,?且每臺機器的版本 庫其實都是?樣的,并沒有主次之分。
你肯定會想,?少需要兩臺機器才能玩遠程庫不是?但是我只有?臺電腦,怎么玩?
其實?臺電腦上也是可以克隆多個版本庫的,只要不在同?個?錄下。不過,現實?活中是不會有? 這么傻的在?臺電腦上搞?個遠程庫玩,因為?臺電腦上搞?個遠程庫完全沒有意義,?且硬盤掛了 會導致所有庫都掛掉,所以我也不告訴你在?臺電腦上怎么克隆多個倉庫。
實際情況往往是這樣,找?臺電腦充當服務器的??,每天24?時開機,其他每個?都從這個“服務 器”倉庫克隆?份到??的電腦上,并且各?把各?的提交推送到服務器倉庫?,也從服務器倉庫中 拉取別?的提交。
完全可以??搭建?臺運? Git 的服務器,不過現階段,為了學 Git 先搭個服務器絕對是?題?作。好 在這個世界上有個叫 GitHub 的神奇的?站,從名字就可以看出,這個?站就是提供 Git 倉庫托管服務 的,所以,只要注冊?個GitHub賬號,就可以免費獲得 Git 遠程倉庫。
github 是國外的?站,速度?較慢,也可以采? gitee 來托管代碼。下來,我們從零開始, 使??下碼云遠程倉庫。

1.3新建遠程倉庫

新建遠程項?倉庫:

填寫基本信息

克隆遠程倉庫

克隆/下載遠端倉庫到本地,需要使? git clone 命令,后?跟上我們的遠端倉庫的鏈接,遠端倉庫
的鏈接可以從倉庫中找到:選擇“克隆/下載”獲取遠程倉庫鏈接:
SSH 協議和 HTTPS 協議是 Git 最常使?的兩種數據傳輸協議。SSH 協議使?了公鑰加密和公鑰登陸機 制,體現了其實?性和安全性,使?此協議需要將我們的公鑰放上服務器,由 Git 服務器進?管理。使 ? HTTPS ?式時,沒有要求,可以直接克隆下來。
git clone git地址
如果使? SSH ?式克隆倉庫,由于我們沒有添加公鑰到遠端庫中,服務器拒絕了我們的 clone 鏈接。需要 我們設置?下:
第?步:創建SSH Key。在??主?錄下,看看有沒有.ssh?錄,如果有,再看看這個?錄下有沒有 id_rsa 和 id_rsa.pub 這兩個?件,如果已經有了,可直接跳到下?步。如果沒有,需要創建
SSH Key:
ssh-keygen -t rsa -C "輸入自己的郵箱"
順利的話,可以在??主?錄?找到 .ssh ?錄,??有 id_rsa id_rsa.pub 兩個?件,這兩
個就是SSH Key的秘鑰對, id_rsa 是私鑰,不能泄露出去, id_rsa.pub 是公鑰,可以放?地告
訴任何?
第?步:添加??的公鑰到遠端倉庫。
點擊確認后,需要對你進?認證,輸?你的賬號密碼即可。?此,我們的準備?作全部做完,歡快的 clone吧
如果有多個?協作開發,GitHub/Gitee 允許添加多個公鑰,只要把每個?的電腦上的
Key 都添加到 GitHub/Gitee,就可以在每臺電腦上往 GitHub/Gitee 上提交推送了。

1.4向遠程倉庫推送

本地已經 clone 成功遠程倉庫后,我們便可以向倉庫中提交內容
git add .
git commit -m "注解"
git push <遠程主機名> <本地分?名>:<遠程分?名>

1.5拉取遠程倉庫

git pull <遠程主機名> <遠程分?名>:<本地分?名>

2.配置 Git

2.1忽略特殊?件

在?常開發中,我們有些?件不想或者不應該提交到遠端,?如保存了數據庫密碼的配置?件,那怎 么讓 Git 知道呢?在 Git ?作區的根?錄下創建?個特殊的 .gitignore ?件,然后把要忽略的?件 名填進去,Git 就會?動忽略這些?件了。
不需要從頭寫 .gitignore ?件,gitee 在創建倉庫時就可以為我們?成,不過需要我們主動勾選?
下:
如果當時沒有選擇這個選擇,在?作區創建?個也是可以的。?論哪種?式,最終都可以得到?個完 整的 .gitignore ?件,例如我們想忽略以 .so .ini 結尾所有?件, .gitignore 的內容
如下:
# 省略選擇模本的內容
...
# My configurations:
*.ini
*.so
.gitignore ?件中也可以指定某個確定的?件。
最后?步就是把 .gitignore 也提交到遠端,就完成了:
但有些時候,你就是想添加?個?件到 Git,但由于這個?件被 .gitignore 忽略了,根本添加不
了,那么可以? -f 強制添加:
git add -f [filename]
或者你發現,可能是 .gitignore 寫得有問題,需要找出來到底哪個規則寫錯了,?如說 a.so ?件
是要被添加的,可以? git check-ignore 命令檢查:
git check-ignore -v a.so
但是我們發現 .* 這個規則把 .gitignore 也排除了。雖然可以? git add -f 強制添加進去,
但有強迫癥的童鞋還是希望不要破壞 .gitignore 規則,這個時候,可以添加?條例外規則:
不排除.gitignore
!.gitignore

2.2給命令配置別名

在我們使? Git 期間,有些命令敲的時候著實讓?頭疼(太?了。。),幸運的是,git?持對命令進 ?簡化!
舉個例?,將 git status 簡化為 git st ,對應的命令為:
不過,我個?還是不推薦?家現在去使?他,?前所有的命令都要?動完成,盡快適應 Git。

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

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

相關文章

[本周五題]Javascript面試常考題手撕場景UR緩存、new關鍵字、大數相加、最長遞增子序列、高并發請求、大文件上傳和WebWorks

LUR緩存實現 以下是 JavaScript 實現 LRU 緩存的詳細解析&#xff0c;結合核心原理與代碼實現&#xff0c;并標注來源&#xff1a; 一、LRU 緩存核心原理 LRU&#xff08;Least Recently Used&#xff09;緩存淘汰策略的核心思想是&#xff1a;當緩存容量滿時&#xff0c;優先…

c語言zixue

該文主要是記錄我學習中遇到的一些重點、易出問題的內容 教材p16.17 先從一個簡單的例子開始吧 #include <stdio.h> //編譯預處理命令 int main() //程序的主函數 {printf("To C"); //輸出語句return 0; //返回語句 } #include <stdio.h>是編譯預…

卷積神經網絡(CNN)的主要架構

卷積神經網絡&#xff08;CNN, Convolutional Neural Networks&#xff09;是深度學習中最重要的模型之一&#xff0c;廣泛應用于計算機視覺、目標檢測、語義分割等任務。自 LeNet 誕生以來&#xff0c;CNN 結構經歷了多個重要發展階段&#xff0c;出現了許多經典架構&#xff…

【開源代碼解讀】AI檢索系統R1-Searcher通過強化學習RL激勵大模型LLM的搜索能力

關于R1-Searcher的報告&#xff1a; 第一章&#xff1a;引言 - AI檢索系統的技術演進與R1-Searcher的創新定位 1.1 信息檢索技術的范式轉移 在數字化時代爆發式增長的數據洪流中&#xff0c;信息檢索系統正經歷從傳統關鍵詞匹配到語義理解驅動的根本性變革。根據IDC的統計…

從0到1入門Docker

一、快速入門 Docker run命令中的常見參數 -d&#xff1a;讓容器后臺運行--name&#xff1a;給容器命名&#xff08;唯一&#xff09;-e&#xff1a;環境變量-p&#xff1a;宿主機端口映射到容器內端口鏡像名稱結構&#xff1a;Repository &#xff1a;TAG&#xff08;鏡像名&…

接口自動化入門 —— Jmeter實現在接口工具中關聯接口處理方案

1. JMeter 接口關聯處理的核心概念 接口關聯是指在多個接口請求之間共享數據&#xff0c;例如將一個接口的返回值作為另一個接口的輸入參數。常見的場景包括&#xff1a; 使用登錄接口返回的 Token 作為后續接口的認證信息。 將一個接口返回的 ID 作為另一個接口的請求參數。…

Flink-學習路線

最近想學習一下Flink&#xff0c;公司的實時需求還是不少的&#xff0c;因此結合ai整理了一份學習路線&#xff0c;記錄一下。 當然&#xff0c;公司也有Scala版本Flink框架&#xff0c;也學習了一下。這里只說Java版本 1. Java基礎 目標: 掌握Java編程語言的基礎知識。 內容…

ranger集成starrock報錯

org.apache.ranger.plugin.client.HadoopException: initConnection: Unable to connect to StarRocks instance, please provide valid value of field : {jdbc.driverClassName}.. com.mysql.cj.jdbc.Driver. 可能的原因 JDBC 驅動缺失&#xff1a;運行環境中沒有安裝 MySQL …

python Jsonpath表達式語法取值

python Jsonpath 語法規則&#xff1a; 演示數據&#xff1a;{"status":"0","msg":"成功","data": [ {"foo1": "bar1"},{"foo1": "bar2"}]} 根節點&#xff1a;$ $.status $.…

Blender-MCP服務源碼2-依賴分析

Blender-MCP服務源碼2-依賴分析 有個大佬做了一個Blender-MCP源碼&#xff0c;第一次提交代碼是【2025年3月7號】今天是【2025年月15日】也就是剛過去一周的時間&#xff0c;所以想從0開始學習這個代碼&#xff0c;了解一下大佬們的開發思路 1-核心知識點 from mcp.server.fas…

反射(第三篇)、代理模式、靜態代理和動態代理、InvocationHandler實際應用

DAY11.3 Java核心基礎 反射&#xff08;第三篇&#xff09; 前兩篇我們學習了反射的概念和基本操作 實際開發中&#xff0c;反射應用于那里&#xff1f; 動態代理 java中的動態代理就是一個重要的作用 代理模式 代理模式是java中常用的設計模式 指的是在處理一個業務邏輯…

Unity 封裝一個依賴于MonoBehaviour的計時器(上) 基本功能

靈感來自下面這本書的協程部分,因此我就自己嘗試寫了一個 我的新書Unity3D游戲開發&#xff08;第3版&#xff09; | 雨松MOMO程序研究院 如果你不知道什么是協程:unity保姆級教程之協同程序_unity協同-CSDN博客 一句話概括:協程就是單線程的異步操作,其作用于Unity的主線程 1…

數學建模 第一節

目錄?????? 前言 一 優化模型的類型 二 線性規劃1 線性規劃2 三 0-1規劃 總結 前言 數學建模主要是將問題轉化為模型&#xff0c;然后再以編程的形式輸出出來 算法都知道&#xff0c;數學建模也需要用到算法&#xff0c;但是不是主要以編程形式展示&#xff0c;而是…

Vulkan視頻解碼decode顯示display之同步

在ReleaseDisplayedPicture函數中消耗圖片資源并且顯示display完成&#xff0c;設置兩個標志m_hasConsummerSignalFence true 和m_hasConsummerSignalSemaphore true virtual int32_t ReleaseDisplayedPicture(DecodedFrameRelease** pDecodedFramesRelease, uint32_t nu…

網絡空間安全(32)Kali MSF基本介紹

前言 Metasploit Framework&#xff08;簡稱MSF&#xff09;是一款功能強大的開源安全漏洞檢測工具&#xff0c;被廣泛應用于滲透測試中。它內置了數千個已知的軟件漏洞&#xff0c;并持續更新以應對新興的安全威脅。MSF不僅限于漏洞利用&#xff0c;還包括信息收集、漏洞探測和…

設計模式學習記錄

設計模式23種 創建型抽象工廠模式工廠模式生成器模式原型模式單例模式 結構型適配器模式橋接模式組合模式裝飾模式外觀模式享元模式代理模式 行為型責任鏈模式命令模式解釋器模式迭代器模式中介者模式備忘錄模式觀察者模式狀態模式策略模式模版方法模式訪問者模式 創建型 與對…

2.5 python接口編程

在現代軟件開發的復雜生態系統中&#xff0c;不同系統、模塊之間的交互協作至關重要。接口編程作為一種關鍵機制&#xff0c;定義了組件之間的通信規范與交互方式。Python 憑借其卓越的靈活性、豐富的庫資源以及簡潔易讀的語法&#xff0c;在接口編程領域占據了重要地位&#x…

mesh開發解析

開源的Mesh網絡協議棧及相關項目&#xff1a; 1.B.A.T.M.A.N.(Better Approach to Mobile Ad-hoc Networking)? 簡介&#xff1a;B.A.T.M.A.N.是一種用于多跳自組織網絡的路由協議&#xff0c;適用于無線Mesh網絡。它通過優化數據傳輸路徑&#xff0c;確保網絡的高可靠性和動…

PyTorch PINN實戰:用深度學習求解微分方程

在人工智能與計算數學的交匯點&#xff0c;物理信息神經網絡&#xff08;Physics-Informed Neural Networks&#xff0c;PINN&#xff09;正引領著一場求解微分方程的革命。傳統上&#xff0c;微分方程是描述自然現象和工程問題中各種關系的重要工具&#xff0c;但其求解往往依…

【WiFi 7核心技術及未來挑戰】

作為剛剛開始從事這一領域的人&#xff0c;淺淺學習了一下WiFi 7&#xff08;IEEE 802.11be&#xff09;。Wi-Fi 7發展迅速&#xff0c;提供前所未有的速度、更低的延遲和更高的可靠性。但從頻譜政策到能效挑戰&#xff0c;再到成本&#xff0c;仍有許多問題亟待解決。 Wi-Fi 7…