Git的純命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤銷更新,分支的創建/切換/更新/提交/合并,代碼沖突...

Git的純命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤銷更新,分支的創建/切換/更新/提交/合并,代碼沖突


這篇是接著上篇分布式版本庫——Windows下Git的環境部署以及在GitHub上開源自己的項目講的,上篇主要是說用GUI來圖形化界面操作,但是一般我們程序員也不會這么干,用命令又輕松又愉悅,所以,這里我就再開了一篇來專門說一下純命令是怎么去操作的,但是要注意哦,其實廖雪峰老師的網站就是非常贊的學習資源哦!

  • 廖雪峰老師:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

我們還是先從安裝開始吧,我上篇Ubuntu的配置博客也說了安裝,這里我就三個平臺一起講吧!

一.Install

安裝其實都是最簡單的方法了

  • Windows

    windows的安裝只要去下載一個協助工具就可以了,下載地址

    • https://git-for-windows.github.io/

安裝之后,我們在桌面右鍵有一個Git Bash Here

這里寫圖片描述

  • Ubuntu

    linux的安裝就是一條命令的事情了,我的這篇博客里也有講Android源碼淺析(二)——Ubuntu Root,Git,VMware Tools,安裝輸入法,主題美化,Dock,安裝JDK和配置環境


在終端輸入
sudo apt-get install git

如果你是#的root權限的話,可以不用加sudo

這里寫圖片描述

  • X OS

    mac的系統安裝雖說也是一條命令,但是他需要借助輔助的工具,當然,你也可以直接安裝XCode,它就集成了Git,不過需要配置一番,我們作為android開發人員,這個xcode其實看個人興趣吧,我們用另一種方式安裝

  • http://brew.sh/

只要下載安裝Homebrew,mac的終端就可以搜索安裝軟件了

輸入

sudo brew install git

等待安裝成功,檢查是否安裝成功的方式也很簡單,只要輸入

git version

查看他的版本就可以了

這里寫圖片描述

二.Clone

Clone就是從github上下載項目,我們在Github上新建一個項目,叫做GitTest吧!如果這一步不會操作的話,請移步:分布式版本庫——Windows下Git的環境部署以及在GitHub上開源自己的項目

這里寫圖片描述

我們把這個鏈接給記住了

https://github.com/LiuGuiLinAndroid/GitTest.git

這里,我先在D盤新建一個git的文件夾,然后進入這個目錄,直接右鍵打開Git Bash,然后輸入

git clone https://github.com/LiuGuiLinAndroid/GitTest.git

就可以下載下來代碼了

這里寫圖片描述

我們進入這個文件夾里面可以看到他只有一個文件README.md,我們輸入

vim README.md

去訪問他

這里寫圖片描述

這里vim是一個編輯的命令,我們推出這個vim環境只要輸入

q!

就可以了

三.Commit

提交代碼,我們先介紹一下Git的工作模式,其實吧,Git這么出名也是跟他的模式有關,而我們的章節,也是跟著他的模式走的

// add->commit->push

先是add,也就是把你要提交的代碼先提交到緩存區,然后commit提交到本地的倉庫,最后再push推送到遠程倉庫,也就是github上,這里,我們先對剛才那個README.md文件進行修改吧,我們編輯一下,加上一點文字

這里寫圖片描述

我們保存之后,剛才的綠色文件就變成了感嘆號,說明已經有修改了,這點和SVN一樣,我們回到命令行,這里,我們有一個很方便的命令

git status

來查看當前的狀態

這里寫圖片描述

這里就提示你這個文件已經是紅色的,改動了,需要提交嗎?

所以,我們就輸入

git add README.md

也就是添加到緩存區

這里寫圖片描述

他什么都沒提示說明add成功了,這個時候我們再次查看一下狀態,你就會發現

這里寫圖片描述

狀態是綠色的了,Ok,這個時候我們就需要commit了,輸入

git commit README.md

然后他會顯示這樣一個信息,這里是要你寫一些說明,我就寫了first commit

這里寫圖片描述

這里輸入

x

保存退出

然后我們再次查看一下狀態

這里寫圖片描述

果不其然,這里顯示你有一個commit,需要push,也就是推送

四.Push

既然他友好的提示我們可以push,那我們就直接推送吧,只要輸入

git push

即可,然后他會提示你輸入賬號和密碼

這里寫圖片描述

我們輸完之后,稍微等待一會兒,他們也自然會done的

這里寫圖片描述

到這里,我們的git的push就OK了,我們去github上看一下就明白了

這里寫圖片描述

五.Pull

這個就很好理解了,開原作者對自己的項目進行了一次修改,有新的東西了,我們就去更新一下, 也就去把代碼拉下來,這樣,我們在github上修改一下

這里寫圖片描述

現在的樣子就是這樣的了

這里寫圖片描述

這個很明顯和我本地的不一樣,所以我們就需要去pusll,輸入

git pull

好的,下拉成功

這里寫圖片描述

我們可以用vim命令去查看一下
這里寫圖片描述

可以看到,代碼也是拉了下來

六.版本回退

寫代碼寫著寫著發現自己入坑了,怎么辦,而且代碼還提交了,在隊友還沒有pull之前,趕緊版本回退,那該怎么做呢?我們可以這樣,首先,我們輸入

git log

來查看我們提交代碼的記錄

這里寫圖片描述

這里我們可以看到,我們第一次是系統初始化的,第二次也就是我們認為的提交,第三次,也就是我們pull的時候在github上提交的,我現在演示一下怎么退回到first commit

但是我們要注意,上圖中,log日志黃色的一長串ID,這就是我們要注意的東西,我們只有通過這個ID才能版本回退,所以,這里我先拷貝一下first commit的ID:

 a0c401fcda58304938767820f35d6b4bcaad28db

好的,我們開始了,版本回退的命令是

git reset --hard a0c401fcda58304938767820f35d6b4bcaad28db

好的

這里寫圖片描述

他提示已經回退到first commit了,我們驗證一下,只要看一下README.md里面的信息就可以,我們用vim命令去看

這里寫圖片描述

這里果不其然是顯示第一次提交,說明我們已經成功的版本回退了,版本回退有風險,操作需謹慎哈!
如果你說要再回到原來的狀態,也是可以的,按照上面的方法再走一遍流程即可,不過要注意的是,這次想要獲取到的ID就不是輸入git log了,這里又出來一個新的命令了

git reflog

記錄的是所有的log,接下來,你就知道怎么去操作了
不過,這里也牽引出我們的撤銷操作出出來了

七.撤銷更新

前面已經說了這么多,這部分其實就是寫命令,所有就不實際演示了

//如果你寫代碼寫錯了之后想撤銷的話,也就是還原文件初始狀態
、git checkout --文件名
//如果你已經add了代碼到緩存區
git reset HEAD 文件名
//但是如果你已經commit了,就需要版本回退了
git reset --hard 版本號
//要是你推送到了遠程倉庫,比如github
.....你就很痛苦了

八.分支的創建和切換

我們都知道,默認是有一個主分支master分支,但是我們有時候如果需要測試某些功能或者怎么樣的時候,需要創建一個分支,當覺得分支的代碼可以了就合并到主分支,這樣的好處也是保證主分支的一個干凈性和安全性,好的,我們具體來看一下怎么操作的:

  • 查看分支
git branch 

這里寫圖片描述

  • 創建分支
git branch [分支名]
  • 切換分支
git checkout [分支名]

這樣就可以了,還有另一種比較方便的方法就是

  • 創建并且切換分支
git checkout -b [分支名]

這里寫圖片描述

這張圖,我們可以看到,我們先是查看了自己所在的分支,位于主分支,然后我創建了一個分支叫hello,接著我切換到hello這個分支,再次查看自己所在的分支,就是hello了,然后再切換回主分支,再用創建并切換的命令創建了android這個分支,然后查看分支,我們就位于android這個分支了

九.分支的更新和提交

分支的push和pull,其實和主分支的操作還是有些許區別的,就是命令

  • 分支push
git push origin 分支名

這里寫圖片描述

看,他可以提交,顯示要我們賬號密碼

這里寫圖片描述

這里,我們已經把android這個分支推送上去了,而hello這個分支沒有,所以我們輸入

git brnch -a

查看所以的分支

這里寫圖片描述

這里,白色的是本地分支,綠色的,是你所在的分支,紅色的,是遠程的分支


  • 分支pull

既然push要做處理,那pull肯定要咯,和push一樣
git pull origin 分支名

OK,這個是可以的

這里寫圖片描述

十.分支合并

這里,我們可以看到,我們所在的分支是android

這里寫圖片描述

我們對README.md進行修改
然后add commit

這里寫圖片描述

現在我們android分支已經修改了,但是主master分支病沒有,我們覺得android分支這段代碼可以用了,需要合并到主分支,那我們該怎么做呢?

這里寫圖片描述

我們這里可以看到,我們先是切換到了主分支,然后輸入

git merge 分支名

去合并代碼,現在,我們查看一下

這里寫圖片描述

好的,這樣,代碼就合并成功了

十一.代碼沖突

這個代碼沖突,在SVN中也是精彩會碰到,還是自己對版本控制這一塊的不熟練,一般出現沖突Git的話是兩種情況

  • 在你push推代碼的時候發生代碼沖突
  • 合并分支的時候發生代碼沖突

比如你在分支中寫的代碼,主分支也有類似的,就極有可能發生沖突,我們來測試一下,我們不演示了,我講個大概的思路,當出現沖突的時候,命令行會告訴我們哪個文件合并出錯,找到這個文件的時候

vim 文件名

你可以看到有個特殊的箭頭包裹著一段代碼,那就是兩個代碼塊不一樣的地方,你需要自己手動修復

然后,需要重新提交,但是再commit的時候

git commit -i -m '更新說明' 文件名

這樣提交后就可以直接push了

好了,小伙伴們,Git的使用是否已經學會了

我的群,通往Android的神奇之旅 :555974449,歡迎大家進來交流技術!

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

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

相關文章

掌握jQuery插件開發

在實際開發工作中,總會碰到像滾動,分頁,日歷等展示效果的業務需求,對于接觸過jQuery以及熟悉jQuery使用的人來說,首先想到的肯定是尋找現有的jQuery插件來滿足相應的展示需求。目前頁面中常用的一些組件,都…

List 分頁加載數據控制機制

分頁加載是一種應用很廣泛的數據展示控制機制,相信絕大多數開發者對于這一套機制都非常熟悉。這篇文章的主要目的結合實際的使用場景,對以往在開發中遇到一些概念進行梳理,歸納的同時加深理解,也希望能幫助更多剛剛接觸到開發的同…

【QGIS入門實戰精品教程】3.3:QGIS如何打開ArcGIS創建的文件數據庫(GDB)?

在行業應用中,GIS地理空間數據往往存儲在ESRI ArcGIS的文件地理數據庫(File GeodataBase),因此,ArcGIS與QGIS的數據交互、共享就顯得非常重要。QGIS3可以直接打開File GDB數據,并對數據進行顯示、查看、處理等操作。具體的步驟如下: 相關閱讀:【QGIS入門實戰精品教程】3…

.NET 6 Linux 系統服務 Systemd (案例版)

.Net Core Windows 系統服務,之前已經寫過了,但是,對于Linux的系統服務,卻沒有寫過,主要是因為,大部分Linux的.Net服務都直接Docker了,當然,不排除有這種使用的,可能搞成…

封裝一個Array 數據 綁定 html select 方法

/** * * param {} select select控件 * param {} nodes Array數據 * param {} value value綁定項 * param {} text text綁定項 * param {} prompt 選擇提示信息 * returns {} */ function bindSelect(select, nodes, value, text, prompt) {select.empty();if (prom…

XmlParser和HtmlParser

經常要用的Xml和Html解決,實際上這個領域也有非常好的解決方案。 相對來說現在各種開源的Xml解析功能比較豐富,機制也比較靈活,但是由于他功能比較完善,干的事情比較多,所以性能方面也慢一點;另外&#xff…

【QGIS入門實戰精品教程】3.2:QGIS如何打開ArcGIS創建的個人數據庫(MDB)?

文章目錄 1. 下載并安裝Microsoft Access 2010數據庫引擎2. 配置系統環境變量3. 打開mdb數據庫【相關閱讀】 【QGIS入門實戰精品教程】005:QGIS如何打開ArcGIS創建的文件數據庫(GDB)? 1. 下載并安裝Microsoft Access 2010數據庫引擎 https://www.microsoft.com/zh-cn/down…

SharedPreferences操作數據

SharedPreferences是一個簡單輕量的android存儲數據類。適合保存配置信息等。是以XML方式存儲的。 存儲數據 SharedPreferences sharedPreferencesgetSharedPreferences("test", Context.MODE_PRIVATE);sharedPreferences.edit().putString("userName",&qu…

[轉]IaaS、PaaS、SaaS、CaaS、MaaS五者的區別

云計算構架圖 很明顯,這五者之間主要的區別在于第一個單詞,而aaS都是as-a-service(即服務)的意思,這五個模式都是近年來興起的,且這五者都是云計算的落地產品,所以我們先來了解一下云…

使用java開發簡單的mis系統所需的技術

開發mis系統用到的技術 1. b/s架構:就broser/server,瀏覽器/服務器的說法。服務器端要運行tomcat,提供鏈接數據庫服務供java代碼讀寫數據,這個可以在eclipse中配置運行。瀏覽器則解釋jsp或html格式中的標記元素,用于顯…

聊聊 C++ 中的四種類型轉換符

一:背景 在玩 C 的時候,經常會用 void* 來指向一段內存地址開端,然后再將其強轉成尺度更小的 char* 或 int* 來丈量一段內存,參考如下代碼:int main() {void* ptr malloc(sizeof(int) * 10);int* int_ptr (int*)ptr;…

【QGIS入門實戰精品教程】3.1:QGIS如何連接SQL Server數據庫?

文章目錄 軟件必備測試SQL Server服務是否啟動QGIS與SQL Server建立連接軟件必備 SQL Server 2008 R2QGIS 3.22.3測試SQL Server服務是否啟動 打開SQL Server配置管理器,查看MSSQLSERVER服務的啟動情況。

開源重量級的流程引擎或UI引擎

關注這兩個方面的同學個踴躍加粉了~~同時在下面回復期望開源哪一個&#xff0c;將先開源呼聲高的一個。 好吧&#xff0c;先小秀一下UI&#xff1a; 增加下面的pom依賴&#xff0c;表示此工程需要org.tinygroup.aerowindow ?12345<dependency> <groupId>org.tinyg…

阿里云網盤內測開啟 填寫申請表獲取邀請碼 附最新申請地址

日前有相關報道顯示&#xff0c;阿里方面推出了一款名為“阿里云網盤”的獨立App&#xff0c;并且其是由阿里云團隊開發&#xff0c;定位則是為C端用戶提供可靠安全的存儲備份及智能相冊等功能。據了解&#xff0c;目前這款APP尚未正式上線&#xff0c;暫時還在邀請制測試階段。…

02 JRE與JDK

JRE (Java Runtime Environment) JAVA 運行環境 包括JAVA虛擬機和JAVA程序所需要的核心類庫&#xff0c;如查想要運行一個開發好的JAVA程序&#xff0c;計算機只需要安裝JRE即可 JDK&#xff08;JAVA Development Kit &#xff09;JAVA開發工具包 JDK是提供給JAVA開發人員使用…

第 133 章 FAQ

133.1. Haproxy 與 Nginx Haproxy 與 Nginx 都能實現負載均衡&#xff0c;那么 Haproxy 與 Nginx proxy 有什么差異&#xff0c;我們怎樣選擇兩種方案。 如果是用于 HTTP 負載均衡我建議使用 Nginx&#xff0c;它可以SSL證書掛載&#xff0c;緩存定制&#xff0c;實現各種復雜的…

跟我做?個?德地圖的 iOS / Android MAUI控件(Android 原?庫綁定)

我們已經介紹了如何通過 .NET 綁定 iOS 原?庫 &#xff0c;本篇開始介紹?下如何通過 .NET 綁定 Android 原?庫。Android的庫Android 的庫以 .jar 做打包&#xff0c; 通過?具你可以將多個 .jar 完成綁定&#xff0c;然后通過 C# 調?原?的 Java 庫。對?起 iOS &#xff0…

【QGIS入門實戰精品教程】4.6:QGIS實現柵格(影像、DEM)的拼接與掩膜提取

參考閱讀:ArcGIS實驗教程——實驗十一:影像拼接與提取 加載實驗數據 本實驗所采用的柵格數據為兩個dem數據和一個矢量范圍數據,加載如下圖所示: 柵格數據信息如下: 柵格拼接 點擊下拉菜單【柵格】→【雜項】→【合并(merge)】,如下所示:

ReSharper 2020.2 補丁

ReSharper 是一個JetBrains公司出品的著名的代碼生成工具。其能幫助Microsoft Visual Studio成為一個更佳的IDE&#xff0c;它包括一系列豐富的能大大增加C#和Visual Basic .net開發者生產力的特征。使用ReSharper&#xff0c;你可以進行深度代碼分析&#xff0c;智能代碼協助…

【轉】【公司調查】車來了APP

http://blog.sina.com.cn/s/blog_83b10acc0102vk7k.html【APP簡介】"車來了"是武漢元光科技有限公司開發的一款查詢公交車實時位置的手機軟件。不僅能提供公交車的到站距離、預計到站時間&#xff0c;還能顯示整條線路的實時通行狀況&#xff0c;讓人們不再盲目等待&…