git簡(jiǎn)介
git是一個(gè)分布式版本控制系統(tǒng)帐萎,分布式的意思簡(jiǎn)單來(lái)說(shuō)大家可以在自己本地倉(cāng)庫(kù)各自操作娜庇。
coding是一個(gè)國(guó)內(nèi)的代碼托管平臺(tái)蛮粮,相似的還有碼云出吹。使用不同的平臺(tái)時(shí)也可以在相應(yīng)的平臺(tái)查看幫助。
git與coding配合可以實(shí)現(xiàn)代碼的云端保存掂名,成員之間的高效合作据沈,可以創(chuàng)建不同的分支來(lái)進(jìn)行不同模塊的開(kāi)發(fā),將自己的代碼更新到云端或者在云端下載他人更新的最新版本饺蔑,也可以使用版本回退等功能控制版本锌介。本文的一些命令以coding平臺(tái)的操作為例。
本文是git超簡(jiǎn)易使用教程猾警,初次使用者先按步驟完成“git初始化與遠(yuǎn)程關(guān)聯(lián)部分”孔祸,然后根據(jù)自己的身份(創(chuàng)建者或成員)使用push命令將自己的代碼推向云端或者使用pull命令將云端的代碼拉向本地,再進(jìn)行之后的開(kāi)發(fā)发皿。
如果需要更詳細(xì)的git教程崔慧,可以查看git的官方文檔(有中文的)
https://git-scm.com/book/zh/v2
也可以查看廖雪峰的git教程
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
git初始化與遠(yuǎn)程關(guān)聯(lián)
使用git
新建立一個(gè)文件夾,在文件夾中點(diǎn)擊右鍵穴墅,選擇Git Bash Here
初始化本地倉(cāng)庫(kù)
git init
將當(dāng)前的文件夾作為Git工作區(qū)惶室,并且建立Git版本庫(kù)(請(qǐng)不要修改或刪除.git文件夾里面的內(nèi)容),這時(shí)候會(huì)創(chuàng)建一個(gè)主分支
配置SSH Key
配置ssh key是為了和遠(yuǎn)程倉(cāng)庫(kù)建立聯(lián)系
$ ssh-keygen -t rsa -C <郵箱>
把最后的<郵箱>換成自己的郵箱,回車執(zhí)行命令后會(huì)叫選擇一個(gè)文件夾來(lái)放公鑰封救,可以直接回車選擇默認(rèn)的
然后打開(kāi)C盤拇涤,將用戶主目錄下的.ssh文件夾中id_rsa.pub中的內(nèi)容復(fù)制出來(lái)
然后打開(kāi)coding的頁(yè)面,賬戶->SSH公鑰->將剛才復(fù)制的內(nèi)容粘貼到公鑰內(nèi)容中誉结,點(diǎn)擊添加按鈕
$ ssh -T git@git.coding.net
yes
然后會(huì)出現(xiàn)什么什么successfully的字樣鹅士,這個(gè)命令是完成首次鏈接信任主機(jī)
關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
git remote add <遠(yuǎn)端倉(cāng)庫(kù)名> <遠(yuǎn)端倉(cāng)庫(kù)地址>
中間的遠(yuǎn)端倉(cāng)庫(kù)名是你在本地給遠(yuǎn)程倉(cāng)庫(kù)取個(gè)代號(hào),因?yàn)榭梢躁P(guān)聯(lián)多個(gè)遠(yuǎn)程倉(cāng)庫(kù)惩坑,所以代號(hào)用來(lái)區(qū)分掉盅,一般寫(xiě)為origin,后面的地址就是coding云端倉(cāng)庫(kù)的地址以舒,最好用SSH方式(前邊的SSH公鑰配置就是為了這個(gè))
git remote
查看自己關(guān)聯(lián)的遠(yuǎn)程倉(cāng)庫(kù)
git remote -v
查看自己關(guān)聯(lián)的遠(yuǎn)程倉(cāng)庫(kù)以及權(quán)限
git獲取遠(yuǎn)端更新
將遠(yuǎn)端的項(xiàng)目克隆到本地
git clone <地址>
會(huì)將遠(yuǎn)端倉(cāng)庫(kù)的內(nèi)容復(fù)制到本地趾痘,但是會(huì)在所有文件及文件夾的最外面設(shè)置一個(gè)文件夾,名字為遠(yuǎn)端的項(xiàng)目名蔓钟,第一次從遠(yuǎn)端獲取項(xiàng)目更推薦使用下面的pull命令
將遠(yuǎn)端的項(xiàng)目pull到本地
git pull <遠(yuǎn)端倉(cāng)庫(kù)名> <遠(yuǎn)端分支名>:<本地分支名>
取回遠(yuǎn)程主機(jī)某個(gè)分支的更新永票,再與本地的指定分支合并,第一次從遠(yuǎn)端獲取項(xiàng)目也可以用這個(gè),或者在遠(yuǎn)端有了更新時(shí)滥沫,可以用此操作來(lái)更新本地的分支
當(dāng)遠(yuǎn)端分支和本地分支名相同時(shí)侣集,可以寫(xiě)成下面這樣
git pull <遠(yuǎn)端倉(cāng)庫(kù)名> <分支名>
使用fetch+merge獲取遠(yuǎn)端更新
git fetch <遠(yuǎn)端倉(cāng)庫(kù)名> <遠(yuǎn)端分支名>
先獲取遠(yuǎn)端更新
git diff <本地分支名> <遠(yuǎn)端倉(cāng)庫(kù)名>/<遠(yuǎn)端分支名>
將獲取的更新與本地分支進(jìn)行比較
git merge <遠(yuǎn)端倉(cāng)庫(kù)名>/<遠(yuǎn)端分支名>
再將遠(yuǎn)端更新與本地當(dāng)前分支合并
git提交修改
將工作區(qū)的修改add到暫存區(qū)
git add <文件或文件夾的名字>
也可以直接使用以下命令add全部修改
git add .
此寫(xiě)法是在add后面空一格然后打一個(gè)點(diǎn)
查看status
git status
git status命令可以列出當(dāng)前目錄所有還沒(méi)有被git管理的文件和被git管理且被修改但還未提交(git commit)的文件
提交修改到倉(cāng)庫(kù)
git commit -m "引號(hào)中是此次提交修改的簡(jiǎn)單介紹"
將本地的項(xiàng)目push到遠(yuǎn)端
git push <遠(yuǎn)端倉(cāng)庫(kù)名> <本地分支名>:<遠(yuǎn)端分支名>
將本地的某個(gè)分支推到遠(yuǎn)端,當(dāng)遠(yuǎn)端沒(méi)有這個(gè)分支時(shí)兰绣,會(huì)被創(chuàng)建
當(dāng)遠(yuǎn)端分支和本地分支名相同時(shí)世分,可以寫(xiě)成下面這樣
git push <遠(yuǎn)端倉(cāng)庫(kù)名> <分支名>
git分支管理
創(chuàng)建新的分支
git branch <分支名>
創(chuàng)建一個(gè)新的分支,注意并不會(huì)切換到這個(gè)分支
查看已有的分支
git branch
上面這行命令是查看本地的分支
git branch -a
查看所有分支缀辩,其中綠色的是當(dāng)前分支臭埋,白色的是本地分支踪央,紅色的是遠(yuǎn)端的
切換分支
git checkout <分支名>
切換到另一個(gè)分支上進(jìn)行操作
刪除分支
git branch -d <分支名>
合并分支
git merge <另一個(gè)分支名>
將另一個(gè)分支和當(dāng)前分支合并
git版本控制
顯示提交日志
git log
顯示每次的提交記錄,按Q可以退出瓢阴,上下鍵翻頁(yè)(記錄太多的話)
版本回退
git reset --hard <某個(gè)版本號(hào)>
回退到某個(gè)版本畅蹂,版本號(hào)在git log中查看
回退反悔
當(dāng)回退到某個(gè)版本,然而又反悔了荣恐,想要回到未來(lái)的版本時(shí)
先使用git reflog查看之前的命令記錄魁莉,然后找到對(duì)應(yīng)commit記錄前面的序號(hào)
然后git reset --hard 記錄前面的序號(hào)就可以回退到未來(lái)的版本了
最后
其實(shí)這篇文章是去年項(xiàng)目用git時(shí)做的筆記,同時(shí)也分享給組員募胃,讓大家快速上手。沒(méi)相到這個(gè)暑假實(shí)習(xí)又用到它了畦浓,就把它整理出來(lái)痹束。
當(dāng)然它也僅僅適用于快速上手,想要用好git讶请,特別是版本控制和分支管理的部分祷嘶,還是得去看更高級(jí)的教程。
如果這篇文章能幫到你的話夺溢,我也會(huì)感到很高興的论巍。