Ubuntu系統(tǒng)中Git客戶(hù)端的安裝與基本命令使用教程

安裝git
sudo apt-get install git
git config命令的--global參數(shù),用了這個(gè)參數(shù),表示你這臺(tái)機(jī)器上所有的Git倉(cāng)庫(kù)都會(huì)使用這個(gè)配置,當(dāng)然也可以對(duì)某個(gè)倉(cāng)庫(kù)指定不同的用戶(hù)名和Email地址
git config --global user.name "Your name"
git config --global user.email "email@XX.com"
創(chuàng)建版本庫(kù)repository
首先找一個(gè)地方,創(chuàng)建一個(gè)空目錄,然后使用git init 命令
git init
將文件放到建好的倉(cāng)庫(kù)目錄下使用如下命令
用add將文件添加到倉(cāng)庫(kù)
git add filename
用commit告訴git, 把文件提交到倉(cāng)庫(kù)
git commit -m "input something "
git commit命令執(zhí)行成功后會(huì)告訴你,文件被改動(dòng)的情況。commit可以一次提交很多文件
查看倉(cāng)庫(kù)歷史
git status命令可以讓我們時(shí)刻掌握倉(cāng)庫(kù)當(dāng)前的狀態(tài)
git status
git diff filename 可以查看該文件時(shí)如何被修改的
版本回退
用git log 命令查看歷史記錄
git reset --hard +版本號(hào)
其中**HEAD表示當(dāng)前版本,HEAD^表示上一個(gè)版本,HEAD^^表示上上一個(gè)版本 也可寫(xiě)成HEAD~100上一百個(gè)版本。版本號(hào)不用全寫(xiě),寫(xiě)前幾位就行。git會(huì)自動(dòng)幫你找到
用git reflog 可以查看你每一次的操作記錄
撤銷(xiāo)修改
使用
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區(qū)的修改全部撤銷(xiāo),這里有兩種情況:
一種是readme.txt自修改后還沒(méi)有被放到暫存區(qū),現(xiàn)在,撤銷(xiāo)修改就回到和版本庫(kù)一模一樣的狀態(tài);
一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷(xiāo)修改就回到添加到暫存區(qū)后的狀態(tài)。
總之,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)
使用git reset HEAD +filename可以把暫存區(qū)的修改撤銷(xiāo)掉,重新放回工作區(qū)。git reset命令既可以回退版本,也可以把暫存區(qū)的修改撤銷(xiāo)掉
刪除文件
** 使用git rm filename**刪除文件
若刪錯(cuò)了,可用 git checkout -- filename進(jìn)行恢復(fù)
查看、切換、創(chuàng)建和刪除分支
git br -r # 查看遠(yuǎn)程分支
git br <new_branch> # 創(chuàng)建新的分支
git br -v # 查看各個(gè)分支最后提交信息
git br --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支
git br --no-merged # 查看尚未被合并到當(dāng)前分支的分支
git co <branch> # 切換到某個(gè)分支
git co -b <new_branch> # 創(chuàng)建新的分支,并且切換過(guò)去
git co -b <new_branch> <branch> # 基于branch創(chuàng)建新的new_branch
git co $id # 把某次歷史提交記錄checkout出來(lái),但無(wú)分支信息,切換到其他分支會(huì)自動(dòng)刪除
git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來(lái),創(chuàng)建成一個(gè)分支
git br -d <branch> # 刪除某個(gè)分支
git br -D <branch> # 強(qiáng)制刪除某個(gè)分支 (未被合并的分支被刪除的時(shí)候需要強(qiáng)制)
分支合并和rebase
git merge <branch> # 將branch分支合并到當(dāng)前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交
git rebase master <branch> # 將master rebase到branch,相當(dāng)于:
git co <branch> && git rebase master && git co master && git merge <branch>
Git暫存管理
git stash # 暫存
git stash list # 列所有stash
git stash apply # 恢復(fù)暫存的內(nèi)容
git stash drop # 刪除暫存區(qū)
遠(yuǎn)程倉(cāng)庫(kù)
創(chuàng)建SSH key
ssh-keygen -t rsa -C "email@xx.com"
如果一切順利的話(huà),可以在用戶(hù)主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個(gè)文件,這兩個(gè)就是SSH Key的秘鑰對(duì),id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人
登陸GitHub,打開(kāi)“Account settings”,“SSH Keys”頁(yè)面:
然后,點(diǎn)“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容
將本地倉(cāng)庫(kù)推送到GitHub倉(cāng)庫(kù)
git remote add origin git@github.com:pastqing/wangdao.git
git push -u origin mastercd
由于遠(yuǎn)程庫(kù)是空的,我們第一次推送master分支時(shí),加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái),在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
從遠(yuǎn)程倉(cāng)庫(kù)克隆
git clone git@github.com:pastqing/wangdao.git
查看提交記錄
git log
git log <file> # 查看該文件每次提交記錄
git log -p <file> # 查看每次詳細(xì)修改內(nèi)容的diff
git log -p -2 # 查看最近兩次詳細(xì)修改內(nèi)容的diff
git log --stat #查看提交統(tǒng)計(jì)信息
相關(guān)文章
Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步的教程
這篇文章主要介紹了Linux操作Git遠(yuǎn)程倉(cāng)庫(kù)與本地倉(cāng)庫(kù)同步的教程,本文以當(dāng)下最熱門(mén)的GitHub上的項(xiàng)目同步為例進(jìn)行講解,需要的朋友可以參考下2016-05-05CentOS系統(tǒng)中GitLab客戶(hù)端的安裝教程
這篇文章主要介紹了CentOS系統(tǒng)中GitLab客戶(hù)端的安裝教程,要安裝Ruby環(huán)境作為依賴(lài),同時(shí)以MySQL為例講解了數(shù)據(jù)庫(kù)的協(xié)同,需要的朋友可以參考下2016-04-26CentOS系統(tǒng)上搭建Git版本控制服務(wù)器的教程
這篇文章主要介紹了CentOS系統(tǒng)上搭建Git版本控制服務(wù)器的教程,包括創(chuàng)建SSH key以及打開(kāi)RSA認(rèn)證等遠(yuǎn)程連接的相關(guān)配置方法講解,需要的朋友可以參考下2016-04-26CentOS中Git客戶(hù)端的安裝和基礎(chǔ)配置教程
這篇文章主要介紹了CentOS中Git客戶(hù)端的安裝和基礎(chǔ)配置教程,這里的配置簡(jiǎn)單講解了生成公鑰和克隆倉(cāng)庫(kù)的方法,需要的朋友可以參考下2016-04-26Linux系統(tǒng)中ps命令和gitps命令的使用教程
這篇文章主要介紹了Linux系統(tǒng)中ps命令和gitps命令的使用教程,兩個(gè)命令都被用來(lái)查看系統(tǒng)中所運(yùn)行的進(jìn)程狀況,需要的朋友可以參考下2016-03-03Android studio怎么使用git獲取最新內(nèi)容然后合并?
Android studio怎么使用git獲取最新內(nèi)容然后合并?在Android studio中進(jìn)行導(dǎo)入的項(xiàng)目與github中導(dǎo)入的項(xiàng)目是一致的,就需要進(jìn)行合并分之的,下面分享詳細(xì)的解決辦法2016-03-01在Ubuntu系統(tǒng)中使用Git客戶(hù)端來(lái)操作GitHub代碼
這篇文章主要介紹了在Ubuntu系統(tǒng)中使用Git客戶(hù)端來(lái)操作GitHub代碼的方法,文中總結(jié)了一些常用的Git代碼版本操作命令,歡迎收藏查閱,需要的朋友可以參考下2016-02-22SAE上應(yīng)用的Git代碼倉(cāng)庫(kù)管理基本操作講解
這篇文章主要介紹了SAE上應(yīng)用的Git代碼倉(cāng)庫(kù)管理基本操作講解,由于Github的絕對(duì)人氣,Git版本控制方式已然是當(dāng)下的主流,需要的朋友可以參考下2016-02-16- 這篇文章主要介紹了使用Git或SVN方式上傳代碼文件到SAE的教程,SVN在Windows下的客戶(hù)端操作較為平易近人,但當(dāng)下Git形式的代碼管理儼然是大勢(shì)所趨,需要的朋友可以參考下2016-02-15
使用SAE和GitCafe搭建網(wǎng)站的過(guò)程講解
這篇文章主要介紹了使用SAE和GitCafe搭建網(wǎng)站的過(guò)程講解,GitCafe可以設(shè)置自動(dòng)將代碼推送到新浪云上,這樣開(kāi)源合作時(shí)修改代碼便可以更加方便,需要的朋友可以參考下2016-02-14