基礎學習-Git(分布式版本控制系統)

?學習視頻推薦

http://【黑馬程序員Git全套教程,完整的git項目管理工具教程,一套精通git】 https://www.bilibili.com/video/BV1MU4y1Y7h5/?p=5&share_source=copy_web&vd_source=2b85bd9be9213709642d908906c3d863

1、Git環境配置

安裝Git

Git下載鏈接

https://git-scm.com/downloads

點擊右鍵出現

Git GUI Here(Git提供的圖形界面工具)

Git Bash Here(Git提供的命令行工具)

則安裝成功

1.1 基本配置

打開Git Bash

1.1.1設置用戶信息

git config --global user.name "zhangfeifei"git config --global user.email "zhangfeifei@163.com"

1.1.2 查看配置信息

git config --global user.name
git config --global user.email

1.1.3 為常用指令配置別名

打開用戶目錄,創建.bashrc文件

部分windows系統不允許用戶創建點號開頭的文件,可以打開gitBash,執行 touch ~/.bashrc

在.bashrc中輸入以下內容

#用于輸出git提交日志
git log --pretty=oneline --all --graph --abbrev-commit
#用于輸出當前目錄所有文件及基本信息
alias ll='ls -al'#改完后利用以下命令生效source ~/.bashrc

1.2 獲取本地倉庫

要使用Git對我們的代碼進行版本控制,首先需要獲得本地倉庫

  • 1)在電腦的任意位置創建一個空目錄(例如test)作為我們的本地Git倉庫
  • 2)進入這個目錄中,點擊右鍵打開Git bash窗口
  • 3)執行命令git init
  • 4)如果創建成功后可在文件夾下看到隱藏的.git目錄。

1.3 基礎操作指令

Git工作目錄下對于文件的修改(增加、刪除、更新)會存在幾個狀態,這些修改的狀態會隨著我們執行Git的命令而發生變化。

  • git add (工作區——>暫存區)
  • git commit (暫存區——>本地倉庫)

1.3.1 未跟蹤提交相關案例

創建 file01.txt文件

touch file01.txt

?

?查看當前狀態

git status

?

?把所有的修改文件放入暫存區

git add .

?再次查看當前狀態,發現file01.txt文件已經被放置到暫存區

最后的目的是把修改的文件放置到倉庫進行版本控制

因此用?git commit -m "提示修改了什么" 命令提交暫存區修改的部分

git commit - "add file01.txt"

再次查看狀態,發現緩存區已經清空

利用git log 命令查看提交到了哪里

git log

1.3.2 修改提交相關案例

對file01.txt文件進行編輯修改?,i插入文字,esc退出編輯,:wq!保存退出

vim file01.txt

?查看文件當前狀態

?所有的修改放置緩存區

git add .

?查看狀態

?提交至倉庫

git commit -m "update file 01"

查看提交日志

git log

1.3.3 版本回退

git reset --hard commitID

commitID 用git log命令查看 (在命令行能看見commitID)

commitID 還能用git reflog查看(在命令行不能看見commitID)

只要不刪除文件夾,可以任意的往前往后調整版本

?1.3.4 用 .gitignore設置哪些文件無需Git管理

創建file02.a的文件

touch .file02.a

創建 .gitignore,在這個文件里列出哪些文件無需Git管理即可

touch .gitignore

編輯.gitignore,所有以.a結尾的文件均無需git管理

查看狀態

?發現file02.a文件沒有被提示

1.4 分支

分支是為了多個開發人員之間的開發工作互不影響,因此有了分支的概念?

1.4.1 查看有哪些分支

git branch

?1.4.2 創建分支

git branch dev01

?

1.4.3 切換分支,head指向誰,當前就在哪個分支

git checkout dev01

?以下命令分支不存在也能切換,即先創建再切換,用的更多

git checkout -b dev01

1.4.4 合并分支

剛剛在master分支提交了一個.gitignore文件,現在在dev01創建file02.txt文件,并且提交,如下(還是用上面的簡寫配置后看上去清晰!!!,不然就要記憶這么多的命令,git log --pretty=oneline --all --graph --abbrev-commit

  • 對于master分支,有.gitignore文件
  • 對于dev01分支,有file02.txt文件

兩個分支對應兩個開發人員開發的功能,下一步要對這兩個分支功能進行合并,那應該怎么樣做呢?

一般是把其他的分支合并到master分支上去

首先切換到master分支上

git checkout master

然后把需要合并的dev01分支合并至master分支上去

git merge dev01

隨后進入該界面,按ESC,再按:WQ退出即可

查看日志

可以發現在master分支上,dev01分支指向了master分支,代表合并成功。

1.4.5 刪除分支

如果有的分支不需要了,就需要對其進行刪除

命令如下

#刪除分支時進行檢查
git branch -d dev01#強制刪除分支,不進行檢查
git branch -D dev01

查看當前分支

刪除分支dev01

1.4.5 合并沖突

設想一下,如果有兩分支對同一個文件的同一行進行了修改,那么在合并的時候,就會有沖突,那應該如何解決呢?

當前有一個master分支,有一個file01.txt文件,文件中內容如下

現在創建一個dev分支對file01.txt文件進行修改,修改后的內容如下

再把master分支上對file01.txt文件進行修改,修改后的內容如下

現在打印日志如下

這時如何把dev分支合并到master上會發生什么呢?

直接找到出問題的文件進行處理,再重新提交即可

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

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

相關文章

wireshark_概念

ARP (Address Resolution Protocol)協議,即地址解析協議。該協議的功能就是將IP地址解析成MAC地址。 混雜模式 抓取經過網卡的所有數據包,包括發往本網卡和非發往本網卡的。 非混雜模式 只抓取目標地址是本網卡的數據包,對于發往…

《控制系統實驗與綜合設計》綜合四至六(含程序和題目)

1.電機模型辨識實驗 1.1 實驗目的 (1)掌握一階系統階躍響應的特點,通過實驗加深對直流電解模型的理解; (2)掌握系統建模過程中參數的整定,體會參數變化對系統的影響; &#xff0…

單片機開發板上外設資源講解

單片機開發電路板上簡單外設 開發板上各基礎外設LED燈按鍵:數碼管介紹液晶屏矩陣鍵盤掃描的概念LED點陣屏實時時鐘蜂鳴器存儲器 溫度傳感器&單總線 開發板上各基礎外設 LED燈 中文名:發光二極管 外文名:Light Emitting Diode 簡稱&…

楊校老師項目之基于單片機STC89C52的智能環境監測系統【嵌入式】

獲取全套資料: 有償獲取:mryang511688 技術:C語言、單片機等 摘要: 此設計可分為三個主要部分。此中的溫度和濕度的檢測功能,通過操縱單總線型溫濕度傳感器DHT11以數字形式顯示,實現了切確測得溫濕度的功能…

如何管理多個版本的Node.js

我們如何在本地管理多個版本的Node.js,有沒有那種不需要重新安裝軟件再修改配置文件和環境變量的方法?經過我的查找,還真有這種方式,那就是nvm(Node Version Manager)。 下面我就給大家介紹下NVM的使用 1…

vs2019 c++中模板 enable_if_t 的使用

&#xff08;1&#xff09; 該模板的定義如下&#xff1a; template <bool _Test, class _Ty void> struct enable_if {}; // no member "type" when !_Testtemplate <class _Ty> struct enable_if<true, _Ty> { // type is _Ty for _Testusing …

Golang | Leetcode Golang題解之第89題格雷編碼

題目&#xff1a; 題解&#xff1a; func grayCode(n int) []int {ans : make([]int, 1<<n)for i : range ans {ans[i] i>>1 ^ i}return ans }

MSR810-LM快速配置通過LTE模塊上網

正文共&#xff1a;1111 字 13 圖&#xff0c;預估閱讀時間&#xff1a;1 分鐘 之前買了一個無線版本的MSR810-W&#xff08;淘了一臺二手的H3C企業路由器&#xff0c;就用它來打開網絡世界的大門&#xff09;&#xff0c;并整理了一份快速配置&#xff08;腳本案例來了&#x…

三菱FX3U-4AD模擬量電壓輸入采集實例

硬件&#xff1a;&#xff30;&#xff2c;&#xff23;模塊 &#xff26;&#xff38;&#xff13;&#xff27;&#xff21;-&#xff12;&#xff14;&#xff2d;&#xff34; &#xff1b;&#xff21;&#xff0f;&#xff24;模塊&#xff26;&#xff38;&#xff13…

SQL——SERVER的建表主要操作

目錄 一&#xff1a;數據存儲問題 1.表的相關數據 2.表&#xff0c;字段&#xff0c;記錄 二&#xff1a;建表 1.創建表頭 2. 數據類型 3.保存數據 4.數據冗余 5.使用命令重置表 7.設置主鍵 一&#xff1a;數據存儲問題 1.表的相關數據 表是數據庫的基本單位&…

交互原型設計工具 Axure RP 9 for Mac 正式激活版

Axure RP 9 Pro Mac版是Mac平臺上的一款專為快速原型設計而生的應用&#xff0c;Axure RP 9 Pro Mac版可以輔助產品經理快速設計完整的產品原型&#xff0c;并結合批注&#xff0c;說明以及流程圖&#xff0c;框架圖等元素&#xff0c;將產品完整地表述給各方面設計人員&#x…

Android Studio(AS)使用別人的項目與gradle包并運行項目

一、問題描述 在進行AS開發時&#xff0c;我們可能會使用到別人的項目&#xff0c;但發現別人把項目發給我們后會發現gradle項目同步失敗o(≧口≦)o&#xff0c;此時計有三&#xff1a; 1.橫行霸道、豪取搶奪&#xff1a;直接空降到項目人那里&#xff0c;強他的電腦占為己有…

Numpy的數組操作

文章目錄 數組的創建創建全0的二維數組a(3,3)全1的二維數組b&#xff08;3,4&#xff09;隨機數二維數數組c&#xff08;2,3&#xff09;效果截圖 數組的屬性查看b數組的維度查看b數組元素的個數效果截圖 數組的維度操作將數組c的行變列&#xff0c;返回最后一個元素返回數組c第…

python 虛擬環境-最簡單的教程

查看當前 python 的安裝路徑 which python 1、Anaconda創建虛擬環境 (1)執行命令&#xff1a;conda create --name env_name python3.10&#xff0c; 命令中我制定了環境名稱是env_name&#xff0c;指定了Python版本是3.10&#xff0c;執行命令后&#xff0c;Conda會自動下…

【回溯】1240. 鋪瓷磚

本文涉及知識點 回溯 LeetCode1240. 鋪瓷磚 你是一位施工隊的工長&#xff0c;根據設計師的要求準備為一套設計風格獨特的房子進行室內裝修。 房子的客廳大小為 n x m&#xff0c;為保持極簡的風格&#xff0c;需要使用盡可能少的 正方形 瓷磚來鋪蓋地面。 假設正方形瓷磚的…

前端面試題復習 - 性能優化

圖片加載優化 很多修飾類圖片完全可以用css代替對于移動端來說&#xff0c;很多圖片都可以用CDN加載小圖使用base64格式使用雪碧圖能夠顯示WebP格式的瀏覽器盡量使用WebP格式。因為WebP格式具有更好的圖像數據壓縮算法&#xff0c;能帶來更小的圖片體積&#xff0c;而且擁有肉…

3、用Vue快雕塑搭建一個管理系統的頁面布局框架

3.2.頂部欄header 在el-header標簽里對標簽欄header進行樣式定義 <template><div id"app"><el-container><el-header style"background-color: #4c535a"><img src"/assets/logo.png" alt"" style"w…

貪心+數學

一、題目 1、題目描述 給你一個下標從 0 開始的整數數組 tasks &#xff0c;其中 tasks[i] 表示任務的難度級別。在每一輪中&#xff0c;你可以完成 2 個或者 3 個 相同難度級別 的任務。 返回完成所有任務需要的 最少 輪數&#xff0c;如果無法完成所有任務&#xff0c;返回 …

運維別卷系列 - 云原生監控平臺 之 05.prometheus alertManager 實踐

文章目錄 [toc]Alertmanager 簡介Alertmanager 實現的核心概念GroupingInhibitionSilencesClient behaviorHigh Availability Alertmanager 配置文件globaltemplatesrouteinhibit_rulesreceivers Alertmanager 部署創建 cm創建 svc創建 stsPrometheus 配置告警Prometheus 配置文…

Frida-RPC 調用

demo frida-rpc通過調用已加載到內存中的函數,直接獲取到結果: import fridardev = frida.get_remote_device() session = rdev.attach("大姨媽")scr = """rpc.exports = { encrypt(j2, str){var res;Java.perform(function () {var Crypt = Ja…