如何一個例子玩明白GIT

一個例子玩明白GIT

在這里插入圖片描述

GIT的介紹和教程五花八門,但實際需要用的就是建倉、推送、拉取等操作,這兒咱可以通過一個例子熟悉這些操作,一次性搞定GIT的使用方法學習。下面這個例子的內容是內容是建立初始版本庫,然后將數據復制到 "遠程 "版本庫。

開始建倉

創建目錄/tmp/example,用于這個例子的練習

$ mkdir /tmp/example
$ cd /tmp/example

在這個目錄初始化git倉庫

$ git init
Initialized empty Git repository in /tmp/example/.git/

創建一個文件RADME.txt

$ echo "Hello, world" > README.txt

git add filenameREADME.txt添加到倉庫中

$ git add README.txt # Similar to Team -> Add to Version Control
$ # git commit # Would prompt for message

git commit把之前的操作從緩存提交到倉庫,-m后跟上這次提交的說明,每次提交相當于一個暫時的版本,會有唯一的編號,一般工作中會在完成一部分功能或者修改一部分源文件認為需要存檔時提交一次。

$ git commit -m "Added README.txt"
[master (root-commit) 0dd1f35] Added README.txt1 files changed, 1 insertions(+), 0 deletions(-)create mode 100644 README.txt

到這兒我們就有了一個倉庫,里面提交了README.txt文件的初始版本。

更新倉庫

現在我們看后續的更改如何提交的倉庫

先修改README.txt文件

$ echo "Hello, solar system" > README.txt

然后提交,由于倉庫里已經包含README.txt文件了,不需要再用git add filenameREADME.txt添加到倉庫中,-a表示提交所有更改

$ git commit -a -m "Updated README.txt"
[master 9b1939a] Updated README.txt1 files changed, 1 insertions(+), 1 deletions(-)
$ git log --graph --oneline # Shows graph nodes (not much here) and change info
* 9b1939a Updated README.txt
* 0dd1f35 Added README.txt

創建分支

有時候需要做大的改動,要對源文件做多處修改,希望測試后再更新到倉庫,這個修改過程中的版本控制可以在新的分支中進行,待分支任務完成后再合并到主線任務中

使用git checkout -b branchname創建并切換到新的分支,這里新的分支名是french

$ git checkout -b french 0dd1f35 
Switched to a new branch 'french'

在新分支中查看并修改文件README.txt,這個修改不會影響主線分支存儲的文件內容

$ cat README.txt 
Hello, world
$ echo "Bonjour, tout le monde" > README.txt

git add filenameREADME.txt添加到french分支倉庫中

$ git add README.txt # or commit -a
$ git commit -m "Ajouté README.txt"
[french 66a644c] Ajouté README.txt1 files changed, 1 insertions(+), 1 deletions(-)

git log --graph --oneline查看修改記錄

$ git log --graph --oneline
* 66a644c Ajouté README.txt
* 0dd1f35 Added README.txt

再新建一個分支web
$ git checkout -b web 0dd1f35

$ echo '<a href="http://git.eclipse.org">git.eclipse.org</a>' > index.html

在分支web中添加文件index.html

$ git add index.html
$ git commit -m "Added homepage"
[web d47e30c] Added homepage1 files changed, 1 insertions(+), 0 deletions(-)create mode 100644 index.html\

合并分支

git checkout branchname切換回mater分支,也就是我們的主線任務倉庫

$ git checkout master

git branch查看我們的任務倉庫里有哪些分支,前面標*的分支是我們當前所在的分支

$ git branch # See what branches we've gotfrench
* masterweb

合并web分支到當前分支

$ git merge web 
Merge made by recursive.index.html |    1 +1 files changed, 1 insertions(+), 0 deletions(-)create mode 100644 index.html

切換到french分支,合并web分支到french分支

$ git checkout french 
Switched to branch 'french'
$ git merge web 
Merge made by recursive.index.html |    1 +1 files changed, 1 insertions(+), 0 deletions(-)create mode 100644 index.html

查看french分支的版本記錄

$ git log --graph --oneline
*   e974231 Merge branch 'web' into french
|\  
| * d47e30c Added homepage
* | 66a644c Ajouté README.txt
|/  
* 0dd1f35 Added README.txt
$ git checkout master
$ git log --graph --oneline
*   e3de4de Merge branch 'web'
|\  
| * d47e30c Added homepage
* | 9b1939a Updated README.txt
|/  
* 0dd1f35 Added README.txt

推送到遠程倉庫

多人協作的情況下,除了本地倉庫以外應該還有一個共享的遠程倉庫,本地修改推送到遠程倉庫實現協作。這里我們用一個本地目錄充當遠程倉庫,實際情況的操作與此類似

遠程倉庫的core.bare屬性應該是true,這樣才能推送(push)到這個倉庫

$ mkdir /tmp/other;cd /tmp/other;
$ git init
$ cd /tmp/other;git config --bool core.bare true 
Initialized empty Git repository in /tmp/other/.git/

在本地添加遠程倉庫的路徑,命名為other,實際情況路徑可以是URL

$ git remote add other /tmp/other # could be a URL over http/git

master分支推送到遠程倉庫other

$ git push other master # push branch 'master' to remote repository 'other'
Counting objects: 11, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (11/11), 981 bytes, done.
Total 11 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (11/11), done.
To /tmp/other* [new branch]      master -> master

把所有的分支推送到遠程倉庫

$ git push --all other # Push all branches to 'other'
Counting objects: 8, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 567 bytes, done.
Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
To /tmp/other* [new branch]      french -> french* [new branch]      web -> web

結尾

完事兒,懶得寫了

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

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

相關文章

輕量封裝WebGPU渲染系統示例<45>- 材質組裝流水線(MaterialPipeline)燈光、陰影、霧(源碼)

當前示例源碼github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/MaterialPipelineFog.ts 當前示例運行效果: 此示例基于此渲染系統實現&#xff0c;當前示例TypeScript源碼如下&#xff1a; export class MaterialPipelineFog {pr…

數組創建方法

數組的創建 1.let a[] 2.let anew Array(5) 3.let anew Array(1,2,3) 4.let a[1,2,3] 創建數組是空還是有值是以上四種寫法。但是如果沒給值的變量是undefined&#xff0c;再a[0]找不到這種變量的。所以當找某一個數需要已經是數組內存。不想給值可以給空數組。只要是數組…

MEMS制造的基本工藝介紹——晶圓鍵合

晶圓鍵合是一種晶圓級封裝技術&#xff0c;用于制造微機電系統 (MEMS)、納米機電系統 (NEMS)、微電子學和光電子學&#xff0c;確保機械穩定和氣密密封。用于 MEMS/NEMS 的晶圓直徑范圍為 100 毫米至 200 毫米&#xff08;4 英寸至 8 英寸&#xff09;&#xff0c;用于生產微電…

【重點】【環鏈表入口】142. 環形鏈表 II

題目 public class Solution {public ListNode detectCycle(ListNode head) {if (head null || head.next null) {return null;}ListNode slow head, fast head;while (fast ! null && fast.next ! null) {slow slow.next;fast fast.next.next;if (slow fast) …

SQL語句---更新數據

介紹 使用sql語句更新數據。 命令 update 表名 set 字段1值1[,字段2值2] [where 條件表達式];[]&#xff08;方括號&#xff09;內的表是表示可選。 例子 將a表id值等于1的數據的名稱改為666 update a set name666 where id1;

2023-12-05 Qt學習總結7

點擊 <C 語言編程核心突破> 快速C語言入門 Qt學習總結 前言二十 QTcpSocket QTcpServer網絡庫服務端代碼:客戶端代碼 二十一 QProcess進程類二十二 QThread線程總結 前言 要解決問題: 學習qt最核心知識, 多一個都不學. 二十 QTcpSocket QTcpServer網絡庫 QTcpSocket和…

持續集成交付CICD:Jenkins流水線實現Nexus制品晉級策略

目錄 一、理論 1.開發測試運維環境 二、實驗 1.Nexus制品晉級策略 一、理論 1.開發測試運維環境 &#xff08;1&#xff09;環境 1&#xff09;持續集成開發環境&#xff08;DEV: Development Environment&#xff09; 直接通過源代碼編譯打包&#xff0c;其會跑單元測試…

python 筆記 :trajectory_distance包(如何可以正確使用)【debug篇】

包的地址&#xff1a;maikol-solis/trajectory_distance (github.com) 1 模塊介紹 用Cython實現的Python模塊&#xff0c;用于計算二維軌跡之間的距離 trajectory_distance包提供了9種軌跡間的距離計算方法&#xff1a; SSPD&#xff08;對稱線段路徑距離&#xff09;OWD&a…

機器學習算法(9)——集成技術(Bagging——隨機森林分類器和回歸)

一、說明 在這篇文章&#xff0c;我將向您解釋集成技術和著名的集成技術之一&#xff0c;它屬于裝袋技術&#xff0c;稱為隨機森林分類器和回歸。 集成技術是機器學習技術&#xff0c;它結合多個基本模塊和模型來創建最佳預測模型。為了更好地理解這個定義&#xff0c;我們需要…

WLAN配置實驗

本文記錄了WLAN配置實踐的過程&#xff0c;該操作在華為HCIA中屬于相對較復雜的實驗&#xff0c;記錄過程備忘。這里不就WLAN原理解釋&#xff0c;僅進行配置實踐&#xff0c;可以作為學習原理時候的參考。本文使用華為ENSP進行仿真。實驗拓撲圖如下&#xff1a; 1.WLAN工作流程…

【electron】外語函數接口 FFI

? 目錄 ? &#x1f6eb; 導讀需求開發環境 1?? FFI概念優點注意事項 2?? 【廢棄】node-ffi3?? node-ffi-napi安裝&#xff08;windows系統下&#xff09;示例&#xff1a;MessageBoxA、NtSuspendProcess 4?? node-win32-api安裝示例&#xff1a;查找窗口并設置窗口標…

UE5數據傳遞-紋理貼圖

期待結果&#xff1a; 流程 1. 通過C寫入數據到紋理貼圖 2. 在材質中通過采樣能正確讀取寫入的數值 踩坑&#xff1a; 1. UE5之后&#xff0c;需要設置采樣類型&#xff0c;才能達到上圖效果&#xff0c;默認采樣類型做了插值計算 FColor中寫入 PF_B8G8R8A8 UTexture2D* Conve…

第四題:憧憬(JavaPythonC++實現)【第六屆傳智杯-新增場次-程序設計挑戰賽解題分析詳解復盤】

本文僅為【2023傳智杯-第二場】第六屆傳智杯程序設計挑戰賽-題目解題分析詳解的解題個人筆記,個人解題分析記錄。 本文包含:第六屆傳智杯程序設計挑戰賽題目、解題思路分析、解題代碼、解題代碼詳解(Java&Python&C++實現) 文章目錄 更新進度記錄第四題:憧憬(Java…

AI 繪畫 | Stable Diffusion 藝術二維碼制作

前言 這篇文章教會你如果用Stable Diffusion WEB UI制作藝術二維碼,什么是藝術二維碼呢?就是普通二維碼和藝術圖片融合后的二維碼圖片,如下圖所示。主要原理還是使用controlNet的control_v1p_sd15_qrcode_monster模型和光影模型control_v1p_sd15_brightness。 教程 準備…

【論文閱讀筆記】NeRF+Mip-NeRF+Instant-NGP

目錄 前言NeRF神經輻射場體渲染連續體渲染體渲染離散化 方法位置編碼分層采樣體渲染推導公式&#xff08;1&#xff09;到公式&#xff08;2&#xff09;部分代碼解讀相機變換&#xff08;重要&#xff01;&#xff09; Mip-NerfTo do Instant-NGPTo do 前言 NeRF是NeRF系列的…

DIP——邊緣提取與分割

1.使用canny算法進行邊緣提取 本實驗比較簡單&#xff0c;基本思路是對原圖像進行一個高斯模糊處理&#xff0c;用于去噪&#xff0c;之后轉換為灰度圖&#xff0c;直接調用cv庫中的canny記性邊緣提取。若想直接得到彩色邊緣&#xff0c;則通過按位與操作&#xff0c;將原始彩色…

SQLMap進階使用

預計更新SQL注入概述 1.1 SQL注入攻擊概述 1.2 SQL注入漏洞分類 1.3 SQL注入攻擊的危害 SQLMap介紹 2.1 SQLMap簡介 2.2 SQLMap安裝與配置 2.3 SQLMap基本用法 SQLMap進階使用 3.1 SQLMap高級用法 3.2 SQLMap配置文件詳解 3.3 SQLMap插件的使用 SQL注入漏洞檢測 4.1 SQL注入…

ingress介紹和ingress通過LoadBalancer暴露服務配置

目錄 一.ingress基本原理介紹 1.將原有用于暴露服務和負載均衡的服務的三四層負載均衡變為一個七層負載均衡 2.controller和ingress 3.通過下面這個圖可能會有更直觀的理解 二.為什么會出現ingress 1.NodePort存在缺點 2.LoadBalancer存在缺點 三.ingress三種暴露服務的…

7-6 通訊錄排序

輸入n個朋友的信息&#xff0c;包括姓名、生日、電話號碼&#xff0c;本題要求編寫程序&#xff0c;按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。 輸入格式: 輸入第一行給出正整數n&#xff08;<10&#xff09;。隨后n行&#xff0c;每行按照“…

基于JavaWeb+SSM+Vue微信小程序的科創微應用平臺系統的設計和實現

基于JavaWebSSMVue微信小程序的科創微應用平臺系統的設計和實現 源碼獲取入口Lun文目錄前言主要技術系統設計功能截圖訂閱經典源碼專欄Java項目精品實戰案例《500套》 源碼獲取 源碼獲取入口 Lun文目錄 1系統概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系統設計思想 1 2相關技術…