git學(xué)習(xí)

簡(jiǎn)介

Git是一個(gè)分布式版本控制系統(tǒng)迫淹。它可以很方便的記錄你的每一次變動(dòng)冀值,而不需要每次都備份伟端,還能讓你和他人很方便的協(xié)同開發(fā)。(分布式版本控制系統(tǒng)沒有“中央服務(wù)器”夹厌,版本庫分布在每個(gè)人的電腦里豹爹。)

創(chuàng)建版本庫

  1. 定位到項(xiàng)目所在的目錄
  2. 通過git init命令把這個(gè)目錄變成Git可以管理的倉庫(即版本庫)
    表現(xiàn)形式:在當(dāng)前目錄下隱藏著.git目錄

文件添加到版本庫(當(dāng)文件有修改時(shí))步驟

  1. 文件從工作區(qū)添加到暫存區(qū)
    用命令 git add告訴Git,把有文件將要提交到倉庫
    注意矛纹,可反復(fù)多次使用臂聋,添加多個(gè)文件
    git add 文件名: 把對(duì)該文件的修改添加到暫存區(qū)
    git add . : 把工作區(qū)的所有變化添加到暫存區(qū)
  2. 文件從暫存區(qū)提交到版本庫
    用命令git commit告訴Git,把文件提交到倉庫
    git commit -m "此次提交描述"

工作區(qū)或南、暫存區(qū)孩等、版本庫

工作區(qū)(Working Directory): 工作目錄
暫存區(qū)(stage,index): 版本庫里的一個(gè)臨時(shí)存儲(chǔ)的地方(即.git目錄下的index文件)采够。只有在暫存區(qū)的文件才能提交到版本庫肄方。
版本庫(Repository): 保存各種版本(用時(shí)間線的方式)

修改恢復(fù)

  1. 文件還在工作區(qū),未上傳到暫存區(qū)
    $ git checkout -- 文件名
  2. 文件已添加到暫存區(qū)蹬癌,未提交到版本庫
  • 先從暫存區(qū)打回到工作區(qū)
    git reset HEAD 文件名
  • 再恢復(fù)工作區(qū)
    $ git checkout -- 文件名
  1. 文件已經(jīng)提交到版本庫(可能有多個(gè)版本)
  • git reset --hard 版本號(hào)
  • git reset --hard HEAD[~|~~|~前幾個(gè)版本]

查看文件的修改內(nèi)容

git diff: 工作區(qū)的文件和版本庫的文件作比較权她,列出具體的修改內(nèi)容

查看整個(gè)修改過程狀態(tài)

git status:查看倉庫的狀態(tài)(修改在工作區(qū),暫存區(qū)還是已經(jīng)提交到版本庫)

查看歷史記錄

git log:列出之前提交的版本庫歷史記錄(十分詳細(xì))
git log 參數(shù) :簡(jiǎn)略地列出歷史版本庫
例如:git log --pretty=oneline : 每條log只顯示一行

刪除文件

  1. 工作區(qū)刪除文件后冀瓦,把該修改添加到暫存區(qū)
    git rm 文件名
  2. 從暫存區(qū)提交到版本庫
    git commit -m "此次提交說明"

如何和GitHub賬號(hào)關(guān)聯(lián)(已有GitHub賬號(hào))

  1. 創(chuàng)建SSH Key
    ssh-keygen -t rsa -C "郵件地址"
  2. 把SSH Key的公鑰添加到GitHub的Account settings中

添加遠(yuǎn)程庫(已有GitHub遠(yuǎn)程倉庫)

  • 現(xiàn)有本地版本庫伴奥,和GitHub遠(yuǎn)程倉庫關(guān)聯(lián)
  1. 關(guān)聯(lián)遠(yuǎn)程倉庫
    git remote add origin git@github.com: GitHub賬戶名/遠(yuǎn)程倉庫名稱.git
    遠(yuǎn)程庫的名字就是origin,這是Git默認(rèn)的叫法
  2. 把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上
    第一次時(shí) git push -u origin master
    Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支翼闽,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來
    之后 git push origin master
  • 先創(chuàng)建遠(yuǎn)程庫拾徙,然后,從遠(yuǎn)程庫克隆感局。(推薦尼啡。這樣就不用手動(dòng)關(guān)聯(lián),已自動(dòng)關(guān)聯(lián))
    git clone git@github.com: GitHub賬戶名/遠(yuǎn)程倉庫名稱.git

分支管理

  • 查看分支
    git branch
  • 創(chuàng)建分支
    git branch 分支名稱
  • 切換到某分支
    git checkout 分支名稱
  • 創(chuàng)建并切換到該分支
    git checkout -b 分支名稱
  • 合并分支
    先切換到合并后還存在的分支询微,然后輸入merge 分支名稱
  • 刪除分支
    git branch -d 分支名稱

推送本地修改到遠(yuǎn)程版本庫

git push origin 分支名稱

從遠(yuǎn)程版本庫取回最新版本

  • 取回最新版本崖瞭,對(duì)你本地的開發(fā)代碼沒有影響。
    git fetch
  • 取回遠(yuǎn)程主機(jī)某個(gè)分支的更新撑毛,再與本地的指定分支合并书聚。
    git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>

解決沖突

遇到的場(chǎng)景:當(dāng)另一個(gè)用戶已推送到遠(yuǎn)程版本庫,遠(yuǎn)程版本庫已更新藻雌,當(dāng)你推送修改時(shí)雌续,就會(huì)報(bào)錯(cuò),因?yàn)檫h(yuǎn)程分支比你的本地更新胯杭。
解決方法:

  1. git pull試圖合并
  2. 如果合并有沖突驯杜,則解決沖突(把沖突的文件修改為正確),并在本地提交
  3. 沒有沖突或者解決掉沖突后做个,再用git push origin 分支名稱推送到遠(yuǎn)程版本庫

標(biāo)簽管理

用于保存里程碑似的版本

  • 創(chuàng)建標(biāo)簽
    git tag v編號(hào)git tag v1.0
  • 創(chuàng)建帶有說明的標(biāo)簽
    git tag -a v編號(hào) -m "說明" 版本號(hào)
  • 推送標(biāo)簽到遠(yuǎn)程
    git push origin v編號(hào)
  • 推送所有標(biāo)簽到遠(yuǎn)程
    git push origin --tags
  • 刪除標(biāo)簽
  1. 標(biāo)簽還未推送到遠(yuǎn)程
    git tag -d v編號(hào)

2.標(biāo)簽已經(jīng)推送到遠(yuǎn)程

  • 從本地刪除: git tag -d v編號(hào)
  • 從遠(yuǎn)程刪除:git push origin :refs/tags/v編號(hào)

配置別名

簡(jiǎn)化命令鸽心,用自己熟悉的命令名代替原命令名
git config --global alias.自定義命令名 原命令名

參考網(wǎng)站

廖雪峰的官方網(wǎng)站

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滚局,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子顽频,更是在濱河造成了極大的恐慌藤肢,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冲九,死亡現(xiàn)場(chǎng)離奇詭異谤草,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)莺奸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門丑孩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灭贷,你說我怎么就攤上這事温学。” “怎么了甚疟?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵仗岖,是天一觀的道長。 經(jīng)常有香客問我览妖,道長轧拄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任讽膏,我火速辦了婚禮檩电,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘府树。我一直安慰自己俐末,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布奄侠。 她就那樣靜靜地躺著卓箫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪垄潮。 梳的紋絲不亂的頭發(fā)上烹卒,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音弯洗,去河邊找鬼甫题。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涂召,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播敏沉,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼果正,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼炎码!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秋泳,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤潦闲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后迫皱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歉闰,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年卓起,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了和敬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡戏阅,死狀恐怖昼弟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奕筐,我是刑警寧澤舱痘,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站离赫,受9級(jí)特大地震影響芭逝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渊胸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一旬盯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蹬刷,春花似錦瓢捉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至迂卢,卻和暖如春某弦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背而克。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工靶壮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人员萍。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓腾降,卻偏偏與公主長得像,于是被迫代替她去往敵國和親碎绎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子螃壤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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

  • Git教程 一抗果、Git簡(jiǎn)介 1.1. Git的誕生1.2.集中式的vs分布式 二、安裝Git 三奸晴、創(chuàng)建版本庫 四冤馏、...
    曹淵說創(chuàng)業(yè)閱讀 938評(píng)論 0 2
  • 要開學(xué)了我好開心。我非常想念我們班的同學(xué)和老師們寄啼。這個(gè)假期在媽媽的監(jiān)督下我的電子產(chǎn)品玩的已經(jīng)很少啦逮光!每次...
    橄欖樹宸閱讀 213評(píng)論 0 0
  • 朋友的女兒出國留學(xué)已經(jīng)快五年了,因?yàn)楦叨臅r(shí)候成績突然從班上前幾名下降到中下墩划,這不能不令她萬分擔(dān)憂涕刚。 如果按照目前...
    寂寥雨巷7210閱讀 565評(píng)論 6 7