Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突...
Git的純命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤銷更新,分支的創(chuàng)建/切換/更新/提交/合并,代碼沖突
這篇是接著上篇分布式版本庫——Windows下Git的環(huán)境部署以及在GitHub上開源自己的項(xiàng)目講的,上篇主要是說用GUI來圖形化界面操作,但是一般我們程序員也不會這么干,用命令又輕松又愉悅,所以,這里我就再開了一篇來專門說一下純命令是怎么去操作的,但是要注意哦,其實(shí)廖雪峰老師的網(wǎng)站就是非常贊的學(xué)習(xí)資源哦!
- 廖雪峰老師:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
我們還是先從安裝開始吧,我上篇Ubuntu的配置博客也說了安裝,這里我就三個平臺一起講吧!
一.Install
安裝其實(shí)都是最簡單的方法了
-
Windows
windows的安裝只要去下載一個協(xié)助工具就可以了,下載地址
- https://git-for-windows.github.io/
安裝之后,我們在桌面右鍵有一個Git Bash Here
- Ubuntu
linux的安裝就是一條命令的事情了,我的這篇博客里也有講Android源碼淺析(二)——Ubuntu Root,Git,VMware Tools,安裝輸入法,主題美化,Dock,安裝JDK和配置環(huán)境
在終端輸入 sudo apt-get install git
如果你是#的root權(quán)限的話,可以不用加sudo
-
X OS
mac的系統(tǒng)安裝雖說也是一條命令,但是他需要借助輔助的工具,當(dāng)然,你也可以直接安裝XCode,它就集成了Git,不過需要配置一番,我們作為android開發(fā)人員,這個xcode其實(shí)看個人興趣吧,我們用另一種方式安裝
http://brew.sh/
只要下載安裝Homebrew,mac的終端就可以搜索安裝軟件了
輸入
sudo brew install git等待安裝成功,檢查是否安裝成功的方式也很簡單,只要輸入
git version查看他的版本就可以了
二.Clone
Clone就是從github上下載項(xiàng)目,我們在Github上新建一個項(xiàng)目,叫做GitTest吧!如果這一步不會操作的話,請移步:分布式版本庫——Windows下Git的環(huán)境部署以及在GitHub上開源自己的項(xiàng)目
我們把這個鏈接給記住了
https://github.com/LiuGuiLinAndroid/GitTest.git這里,我先在D盤新建一個git的文件夾,然后進(jìn)入這個目錄,直接右鍵打開Git Bash,然后輸入
git clone https://github.com/LiuGuiLinAndroid/GitTest.git就可以下載下來代碼了
我們進(jìn)入這個文件夾里面可以看到他只有一個文件README.md,我們輸入
vim README.md去訪問他
這里vim是一個編輯的命令,我們推出這個vim環(huán)境只要輸入
q!就可以了
三.Commit
提交代碼,我們先介紹一下Git的工作模式,其實(shí)吧,Git這么出名也是跟他的模式有關(guān),而我們的章節(jié),也是跟著他的模式走的
// add->commit->push先是add,也就是把你要提交的代碼先提交到緩存區(qū),然后commit提交到本地的倉庫,最后再push推送到遠(yuǎn)程倉庫,也就是github上,這里,我們先對剛才那個README.md文件進(jìn)行修改吧,我們編輯一下,加上一點(diǎn)文字
我們保存之后,剛才的綠色文件就變成了感嘆號,說明已經(jīng)有修改了,這點(diǎn)和SVN一樣,我們回到命令行,這里,我們有一個很方便的命令
git status來查看當(dāng)前的狀態(tài)
這里就提示你這個文件已經(jīng)是紅色的,改動了,需要提交嗎?
所以,我們就輸入
git add README.md也就是添加到緩存區(qū)
他什么都沒提示說明add成功了,這個時候我們再次查看一下狀態(tài),你就會發(fā)現(xiàn)
狀態(tài)是綠色的了,Ok,這個時候我們就需要commit了,輸入
git commit README.md然后他會顯示這樣一個信息,這里是要你寫一些說明,我就寫了first commit
這里輸入
x保存退出
然后我們再次查看一下狀態(tài)
果不其然,這里顯示你有一個commit,需要push,也就是推送
四.Push
既然他友好的提示我們可以push,那我們就直接推送吧,只要輸入
git push即可,然后他會提示你輸入賬號和密碼
我們輸完之后,稍微等待一會兒,他們也自然會done的
到這里,我們的git的push就OK了,我們?nèi)ithub上看一下就明白了
五.Pull
這個就很好理解了,開原作者對自己的項(xiàng)目進(jìn)行了一次修改,有新的東西了,我們就去更新一下, 也就去把代碼拉下來,這樣,我們在github上修改一下
現(xiàn)在的樣子就是這樣的了
這個很明顯和我本地的不一樣,所以我們就需要去pusll,輸入
git pull好的,下拉成功
我們可以用vim命令去查看一下
可以看到,代碼也是拉了下來
六.版本回退
寫代碼寫著寫著發(fā)現(xiàn)自己入坑了,怎么辦,而且代碼還提交了,在隊(duì)友還沒有pull之前,趕緊版本回退,那該怎么做呢?我們可以這樣,首先,我們輸入
git log來查看我們提交代碼的記錄
這里我們可以看到,我們第一次是系統(tǒng)初始化的,第二次也就是我們認(rèn)為的提交,第三次,也就是我們pull的時候在github上提交的,我現(xiàn)在演示一下怎么退回到first commit
但是我們要注意,上圖中,log日志黃色的一長串ID,這就是我們要注意的東西,我們只有通過這個ID才能版本回退,所以,這里我先拷貝一下first commit的ID:
a0c401fcda58304938767820f35d6b4bcaad28db好的,我們開始了,版本回退的命令是
git reset --hard a0c401fcda58304938767820f35d6b4bcaad28db好的
他提示已經(jīng)回退到first commit了,我們驗(yàn)證一下,只要看一下README.md里面的信息就可以,我們用vim命令去看
這里果不其然是顯示第一次提交,說明我們已經(jīng)成功的版本回退了,版本回退有風(fēng)險(xiǎn),操作需謹(jǐn)慎哈!
如果你說要再回到原來的狀態(tài),也是可以的,按照上面的方法再走一遍流程即可,不過要注意的是,這次想要獲取到的ID就不是輸入git log了,這里又出來一個新的命令了
記錄的是所有的log,接下來,你就知道怎么去操作了
不過,這里也牽引出我們的撤銷操作出出來了
七.撤銷更新
前面已經(jīng)說了這么多,這部分其實(shí)就是寫命令,所有就不實(shí)際演示了
//如果你寫代碼寫錯了之后想撤銷的話,也就是還原文件初始狀態(tài) 、git checkout --文件名 //如果你已經(jīng)add了代碼到緩存區(qū) git reset HEAD 文件名 //但是如果你已經(jīng)commit了,就需要版本回退了 git reset --hard 版本號 //要是你推送到了遠(yuǎn)程倉庫,比如github .....你就很痛苦了八.分支的創(chuàng)建和切換
我們都知道,默認(rèn)是有一個主分支master分支,但是我們有時候如果需要測試某些功能或者怎么樣的時候,需要創(chuàng)建一個分支,當(dāng)覺得分支的代碼可以了就合并到主分支,這樣的好處也是保證主分支的一個干凈性和安全性,好的,我們具體來看一下怎么操作的:
- 查看分支
- 創(chuàng)建分支
- 切換分支
這樣就可以了,還有另一種比較方便的方法就是
- 創(chuàng)建并且切換分支
這張圖,我們可以看到,我們先是查看了自己所在的分支,位于主分支,然后我創(chuàng)建了一個分支叫hello,接著我切換到hello這個分支,再次查看自己所在的分支,就是hello了,然后再切換回主分支,再用創(chuàng)建并切換的命令創(chuàng)建了android這個分支,然后查看分支,我們就位于android這個分支了
九.分支的更新和提交
分支的push和pull,其實(shí)和主分支的操作還是有些許區(qū)別的,就是命令
- 分支push
看,他可以提交,顯示要我們賬號密碼
這里,我們已經(jīng)把a(bǔ)ndroid這個分支推送上去了,而hello這個分支沒有,所以我們輸入
git brnch -a查看所以的分支
這里,白色的是本地分支,綠色的,是你所在的分支,紅色的,是遠(yuǎn)程的分支
- 分支pull
OK,這個是可以的
十.分支合并
這里,我們可以看到,我們所在的分支是android
我們對README.md進(jìn)行修改
然后add commit
現(xiàn)在我們android分支已經(jīng)修改了,但是主master分支病沒有,我們覺得android分支這段代碼可以用了,需要合并到主分支,那我們該怎么做呢?
我們這里可以看到,我們先是切換到了主分支,然后輸入
git merge 分支名去合并代碼,現(xiàn)在,我們查看一下
好的,這樣,代碼就合并成功了
十一.代碼沖突
這個代碼沖突,在SVN中也是精彩會碰到,還是自己對版本控制這一塊的不熟練,一般出現(xiàn)沖突Git的話是兩種情況
- 在你push推代碼的時候發(fā)生代碼沖突
- 合并分支的時候發(fā)生代碼沖突
比如你在分支中寫的代碼,主分支也有類似的,就極有可能發(fā)生沖突,我們來測試一下,我們不演示了,我講個大概的思路,當(dāng)出現(xiàn)沖突的時候,命令行會告訴我們哪個文件合并出錯,找到這個文件的時候
vim 文件名你可以看到有個特殊的箭頭包裹著一段代碼,那就是兩個代碼塊不一樣的地方,你需要自己手動修復(fù)
然后,需要重新提交,但是再commit的時候
git commit -i -m '更新說明' 文件名這樣提交后就可以直接push了
好了,小伙伴們,Git的使用是否已經(jīng)學(xué)會了
我的群,通往Android的神奇之旅 :555974449,歡迎大家進(jìn)來交流技術(shù)!
總結(jié)
以上是生活随笔為你收集整理的Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python2 与 Python3 的常
- 下一篇: 计算机c盘如何扩大,C盘太小怎么办?教你