2018-01-27

git的一些基礎(chǔ)命令

Git常用命令

請確保已經(jīng)安裝里git客戶端

一般配置

git --version//查看git的版本信息git config --global user.name//獲取當(dāng)前登錄的用戶git config --global user.email//獲取當(dāng)前登錄用戶的郵箱

登錄git

/* 如果剛沒有獲取到用戶配置链沼,則只能拉取代碼,不能修改? 要是使用git抢肛,你要告訴git是誰在使用*/git config --global user.name'userName'//設(shè)置git賬戶,userName為你的git賬號铁追,git config --global user.email'email'

創(chuàng)建一個文件夾

mkdir nodejs//創(chuàng)建文件夾nodejscd nodejs//切換到nodejs目錄下

初始化git倉庫

git init //在nodejs文件夾下初始化一個倉庫俏蛮,此時文件里會到一個.git的隱藏文件夾

創(chuàng)建忽略文件

touch .gitignore//不需要服務(wù)器端提交的內(nèi)容可以寫到忽略文件里/*

? ? ? ? .git

? ? ? ? .idea

? ? */

查看目錄

ls -al

創(chuàng)建文件并寫入內(nèi)容

如果文件不存在則會創(chuàng)建文件

echo"hello git" >index.html? ? ? //將'hello git' 寫入到index.html中

單個>箭頭表示寫入, >>表示追加

查看文件內(nèi)容

catindex.html

增加到暫存區(qū)中

git addindex.htmlgit add -A//全部添加到緩存區(qū)

增加到版本庫中

gitcommit -m'備注信息'

查看版本

gitlog --oneline

比較差異

比較的是暫存區(qū)和工作區(qū)的差異

git diff

比較的是暫存區(qū)和歷史區(qū)的差異

git diff--cached

比較的是歷史區(qū)和工作區(qū)的差異(修改)

git diff master

撤回內(nèi)容

(如果修改了工作區(qū)的文件后發(fā)現(xiàn)改錯了挠说,可以用暫存區(qū)或者版本庫里的文件替換掉工作區(qū)的文件)

用暫存區(qū)中的內(nèi)容或者版本庫中的內(nèi)容覆蓋掉工作區(qū)

git checkoutindex.html

取消增加到暫存區(qū)的內(nèi)容(添加時)

gitresetHEADindex.html

//顯示目錄的狀體 有沒有添加或者修改文件

gitstatus

刪除本地文件

rm fileName

刪除暫存區(qū)

保證當(dāng)前工作區(qū)中沒有index.html

git rmindex.html --cached

使用--cached 表示只刪除緩存區(qū)中的內(nèi)容

回滾版本

回滾最近的一個版本 git log

gitreset--hard HEAD/commit_id

回滾到未來

git reflog

分支管理

創(chuàng)建分支

git branch dev

切換分支

git checkout dev

創(chuàng)建分支并切換分支

git checkout -b dev

刪除分支

git branch-d dev

在分支上提交新的版本

gitcommit -a -m'dev1'

合并分支

gitmerge dev

分支的合并后顯示log

gitlog --oneline --graph --decorate

在分支開發(fā)的過程中遇到其他問題需要切換其他分支

保留寫好的內(nèi)容在切換到主干

保留內(nèi)容

git stash

在次切換分之后需要應(yīng)用一下保留的內(nèi)容

git stash apply

丟掉保存的內(nèi)容

git stash drop

使用并丟掉

git stashpop

最佳分支

-有的時候開發(fā)需要合并指定的內(nèi)容,而不是合并所有的提交愿题,所以我們需要挑選最好的损俭,自己生產(chǎn)版本

合并分支把樹杈掰到主干上

git rebase

添加遠(yuǎn)程的倉庫

push -u

-u參數(shù) upstream

git push origin master -u//獲取最新代碼

連接遠(yuǎn)程倉庫

git remote add origin 倉庫的地址

查看遠(yuǎn)程倉庫

git remote -v

刪除遠(yuǎn)程倉庫

git remote rm origin

git常用命令

安裝及配置:

Ubuntu下安裝:sudo apt-get install git

配置用戶名:git config --global user.name "你的名字"

配置e-mail:git config --global user.email "你的郵箱@xx.com"

與添加有關(guān)的:

將當(dāng)前目錄變?yōu)閭}庫:git init

將文件添加到暫存區(qū):git add 文件名 [可選:另一個文件名]

將暫存區(qū)提交到倉庫:git commit –m "描述"

與查詢有關(guān)的:

查詢倉庫狀態(tài):git status

比較文件差異(請在git add之前使用):git diff 文件名

查看倉庫歷史記錄(詳細(xì)):git log

查看倉庫歷史記錄(單行):git log --pretty=online或git log --online

查看所有版本的commit ID:git reflog

與撤銷有關(guān)的:

撤銷工作區(qū)的修改:git checkout -- 文件名

撤銷暫存區(qū)的修改:git reset HEAD 文件名

回退到歷史版本:git reset --hard 該版本ID

回退到上個版本:git reset --hard HEAD^

上上版本是HEAD^^,也可用HEAD~2表示潘酗,以此類推

與標(biāo)簽有關(guān)的:

為當(dāng)前版本打標(biāo)簽:git tag 標(biāo)簽名

為歷史版本打標(biāo)簽:git tag 標(biāo)簽名 該版本ID

指定標(biāo)簽說明:git tag –a 標(biāo)簽名 –m "標(biāo)簽說明" [可選:版本ID]

查看所有標(biāo)簽:git tag

查看某一標(biāo)簽:git show 標(biāo)簽名

刪除某一標(biāo)簽:git tag –d 標(biāo)簽名

與GitHub有關(guān)的:

先有本地庫杆兵,后有遠(yuǎn)程庫,將本地庫push到遠(yuǎn)程庫

關(guān)聯(lián)本地倉庫和GitHub庫:git remote add origin 網(wǎng)站上的倉庫地址

第一次將本地倉庫推送到GitHub上:git push –u origin master

先有遠(yuǎn)程庫崎脉,后有本地庫拧咳,從遠(yuǎn)程庫clone到本地庫

從遠(yuǎn)程庫克隆到本地:git clone 網(wǎng)站上的倉庫地址

網(wǎng)站地址可以選擇HTTPS協(xié)議(https://github.com...)、SSH協(xié)議(git@github.com...)囚灼。

如果選擇SSH協(xié)議骆膝,必須將Ubuntu的公鑰添加到GitHub上。見下一步

SSH Key

生成SSH Key:ssh-keygen –t rsa –C "你的郵箱@xx.com"

生成Key時彈出選項灶体,回車選擇默認(rèn)即可阅签。

Key保存位置:/root/.ssh

登陸GitHub,創(chuàng)建new SSH key蝎抽,其內(nèi)容為/root/.ssh/id_rsa.pub中文本

已經(jīng)有了本地庫和遠(yuǎn)程庫政钟,二者實現(xiàn)同步

本地庫的改動提交到遠(yuǎn)程庫:git push origin master

更新本地庫至遠(yuǎn)程庫的最新改動:git pull

Git常用命令

請確保已經(jīng)安裝里git客戶端

一般配置

git --version//查看git的版本信息git config --global user.name//獲取當(dāng)前登錄的用戶git config --global user.email//獲取當(dāng)前登錄用戶的郵箱

登錄git

/* 如果剛沒有獲取到用戶配置路克,則只能拉取代碼,不能修改? 要是使用git养交,你要告訴git是誰在使用*/git config --global user.name'userName'//設(shè)置git賬戶精算,userName為你的git賬號,git config --global user.email'email'

創(chuàng)建一個文件夾

mkdir nodejs//創(chuàng)建文件夾nodejscd nodejs//切換到nodejs目錄下

初始化git倉庫

git init //在nodejs文件夾下初始化一個倉庫碎连,此時文件里會到一個.git的隱藏文件夾

創(chuàng)建忽略文件

touch .gitignore//不需要服務(wù)器端提交的內(nèi)容可以寫到忽略文件里/*

? ? ? ? .git

? ? ? ? .idea

? ? */

查看目錄

ls -al

創(chuàng)建文件并寫入內(nèi)容

如果文件不存在則會創(chuàng)建文件

echo"hello git" >index.html? ? ? //將'hello git' 寫入到index.html中

單個>箭頭表示寫入灰羽, >>表示追加

查看文件內(nèi)容

catindex.html

增加到暫存區(qū)中

git addindex.htmlgit add -A//全部添加到緩存區(qū)

增加到版本庫中

gitcommit -m'備注信息'

查看版本

gitlog --oneline

比較差異

比較的是暫存區(qū)和工作區(qū)的差異

git diff

比較的是暫存區(qū)和歷史區(qū)的差異

git diff--cached

比較的是歷史區(qū)和工作區(qū)的差異(修改)

git diff master

撤回內(nèi)容

(如果修改了工作區(qū)的文件后發(fā)現(xiàn)改錯了,可以用暫存區(qū)或者版本庫里的文件替換掉工作區(qū)的文件)

用暫存區(qū)中的內(nèi)容或者版本庫中的內(nèi)容覆蓋掉工作區(qū)

git checkoutindex.html

取消增加到暫存區(qū)的內(nèi)容(添加時)

gitresetHEADindex.html

//顯示目錄的狀體 有沒有添加或者修改文件

gitstatus

刪除本地文件

rm fileName

刪除暫存區(qū)

保證當(dāng)前工作區(qū)中沒有index.html

git rmindex.html --cached

使用--cached 表示只刪除緩存區(qū)中的內(nèi)容

回滾版本

回滾最近的一個版本 git log

gitreset--hard HEAD/commit_id

回滾到未來

git reflog

分支管理

創(chuàng)建分支

git branch dev

切換分支

git checkout dev

創(chuàng)建分支并切換分支

git checkout -b dev

刪除分支

git branch-d dev

在分支上提交新的版本

gitcommit -a -m'dev1'

合并分支

gitmerge dev

分支的合并后顯示log

gitlog --oneline --graph --decorate

在分支開發(fā)的過程中遇到其他問題需要切換其他分支

保留寫好的內(nèi)容在切換到主干

保留內(nèi)容

git stash

在次切換分之后需要應(yīng)用一下保留的內(nèi)容

git stash apply

丟掉保存的內(nèi)容

git stash drop

使用并丟掉

git stashpop

最佳分支

-有的時候開發(fā)需要合并指定的內(nèi)容鱼辙,而不是合并所有的提交廉嚼,所以我們需要挑選最好的,自己生產(chǎn)版本

合并分支把樹杈掰到主干上

git rebase

添加遠(yuǎn)程的倉庫

push -u

-u參數(shù) upstream

git push origin master -u//獲取最新代碼

連接遠(yuǎn)程倉庫

git remote add origin 倉庫的地址

查看遠(yuǎn)程倉庫

git remote -v

刪除遠(yuǎn)程倉庫

git remote rm origin

免密碼登錄git

1. 創(chuàng)建ssh無密碼登錄步驟

進入用戶目錄(c盤/用戶/?自己設(shè)置的用戶名比如admin)的.ssh文件夾 如果沒有就創(chuàng)建一個? 在用戶目錄打開黑窗 輸入 mkdir .ssh

進入.ssh的目錄 右鍵打開git的黑窗

運行生成公鑰的代碼ssh-keygen -t rsa -C "xxxxxxxx@qq.com"

復(fù)制你的公鑰代碼 打開id_rsa.pub 文件? 復(fù)制里面的所有代碼

去github的個人設(shè)置綁定你的公鑰

點擊頭像的設(shè)置 settings

點擊 SSH and GPG keys

點擊 new ssh key

把公鑰粘貼在key里面 title名任意寫(英文)

點擊add ssh key

可能會要輸入密碼? ? 輸入密碼登錄就行了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末倒戏,一起剝皮案震驚了整個濱河市怠噪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杜跷,老刑警劉巖傍念,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異葛闷,居然都是意外死亡捂寿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門孵运,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蔓彩,你說我怎么就攤上這事治笨。” “怎么了赤嚼?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵旷赖,是天一觀的道長。 經(jīng)常有香客問我更卒,道長等孵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任蹂空,我火速辦了婚禮俯萌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘上枕。我一直安慰自己咐熙,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布辨萍。 她就那樣靜靜地躺著棋恼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上爪飘,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天义起,我揣著相機與錄音,去河邊找鬼师崎。 笑死默终,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抡诞。 我是一名探鬼主播穷蛹,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昼汗!你這毒婦竟也來了肴熏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤顷窒,失蹤者是張志新(化名)和其女友劉穎蛙吏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞋吉,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡鸦做,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谓着。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泼诱。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赊锚,靈堂內(nèi)的尸體忽然破棺而出治筒,到底是詐尸還是另有隱情,我是刑警寧澤舷蒲,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布耸袜,位于F島的核電站,受9級特大地震影響牲平,放射性物質(zhì)發(fā)生泄漏堤框。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一纵柿、第九天 我趴在偏房一處隱蔽的房頂上張望蜈抓。 院中可真熱鬧,春花似錦藐窄、人聲如沸资昧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽格带。三九已至撤缴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叽唱,已是汗流浹背屈呕。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棺亭,地道東北人虎眨。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像镶摘,于是被迫代替她去往敵國和親嗽桩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容