git 學(xué)習(xí)

學(xué)習(xí)廖雪峰 Git 教程記錄

git 是一個(gè)分布式版本控制系統(tǒng)级历,更好的管理文件债蜜。但是其實(shí) Git 跟蹤管理的是修改,并非文件痕囱。
初始化一個(gè)倉庫,使用 git init

創(chuàng)建版本庫

添加文件到 Git 倉庫摊唇,分兩步:

  • git add <file> 可一次添加多個(gè)文件
  • git commit -m "說明" 提交并添加注釋

git staus 可以查看工作區(qū)的狀態(tài)
如果 git status 告訴你文件有被修改過咐蝇, 用 git diff 可以查看修改內(nèi)容

版本回退

HEAD 指向的版本是當(dāng)前版本,使用 git reset --hard commit_id 可以回退到指定版本
git log 可以查看提交歷史
git reflog 查看命令歷史

暫緩區(qū)

Git 的版本庫在工作區(qū)的隱藏目錄 .git 中巷查,里面有很多東西,最重要的是稱為 stage 的暫存區(qū)抹腿,還有 Git 為我們自動(dòng)創(chuàng)建的第一個(gè)分支 master岛请,以及指向 master 的一個(gè)指針 HEAD

來源于廖雪峰的 Git 教程

git diff HEAD -- <file> 查看工作區(qū)和版本庫里面最新版本的區(qū)別警绩。

撤銷修改

直接丟棄工作區(qū)的修改時(shí)崇败,可是使用 git checkout -- file 注意 -- 必須加。
當(dāng)文件已經(jīng)被添加到了暫存區(qū)時(shí),想丟棄修改后室,分兩步:

  • git reset HEAD file
  • git checkout -- file
    當(dāng)文件已經(jīng)被提交到了版本庫時(shí)缩膝,可以回退版本庫。使用 git reset --hard commit_id

刪除文件

git rm file 從版本庫和工作區(qū)中刪除文件岸霹,之后 git commit
git checkout -- file 用版本庫里的版本替換工作區(qū)的版本疾层。

遠(yuǎn)程倉庫

  1. 創(chuàng)建 SSH Key
ssh-keygen -t rsa -C "youremail@example.com"

之后會(huì)在目錄下生成 .ssh 目錄

ssh.png

  1. 在 GitHub 中打開 “SSH and GPG keys”,并且 “New SSH key”贡避,填寫 title痛黎, 將 id_rsa.pub 中的內(nèi)容復(fù)制進(jìn)去
    asd.png

當(dāng)然,也可以添加多個(gè) Key刮吧,GitHub 只要知道了你的公鑰湖饱,就可以確認(rèn)只有你自己才能推送。遠(yuǎn)程倉庫是為了方便你的硬盤杀捻。
將本地倉庫內(nèi)容推送到 GitHub 倉庫

git remote add origin git@github.com:MjSeven/learngit.git
git push -u origin master

關(guān)聯(lián)一個(gè)遠(yuǎn)程庫井厌,使用 git remote add origin git@server-name:path/repo-name.git
關(guān)聯(lián)后,使用 git push -u origin master 第一次推送master分支的所有內(nèi)容
之后就可以使用 git push origin master 推送最新修改

分支操作

查看分支 git branch
創(chuàng)建分支 git branch <name>
切換分支 git checkout <name>

快捷操作 git checkout -b <name>

合并某分支到當(dāng)前分支 git merge <name>
刪除分支 git branch -d <name>

分支策略

在實(shí)際開發(fā)中致讥,有幾個(gè)基本原則:
master 分支應(yīng)該是非常穩(wěn)定的旗笔,僅僅用來發(fā)布新版本
平時(shí)都應(yīng)該在一個(gè)新的分支 dev 上干活,它是不穩(wěn)定的拄踪,到時(shí)機(jī)成熟時(shí)蝇恶,把 dev 分支合并到 master 上,在 master 分支發(fā)布新版本惶桐。

圖片來自于廖雪峰 git 教程

合并分支時(shí)撮弧,加上 --no-ff 參數(shù)可以使用普通模式合并,合并后的歷史有分支

Bug 管理

修復(fù) bug 時(shí)姚糊,會(huì)通過創(chuàng)建新的 bug 分支進(jìn)行修復(fù)贿衍,然后合并,最后刪除
如果當(dāng)前分支還有未完成的工作時(shí)救恨,先 git stash 保存工作現(xiàn)場(chǎng)贸辈,然后去修復(fù) bug,修復(fù)后使用 git stash pop肠槽,回到工作現(xiàn)場(chǎng)擎淤。

如果是新加特性,最好新建一個(gè)分支
如果要丟棄一個(gè)沒有合并過的分支秸仙,可以使用 git branch -D <name> 強(qiáng)行刪除

本文所有內(nèi)容來自于以下網(wǎng)站學(xué)習(xí):
https://learngitbranching.js.org/?

初級(jí)篇

    git commit

倉庫中的提交記錄保存的是你的目錄下所有文件的快照嘴拢,git 希望記錄盡可能地輕量,在每次提交時(shí)寂纪,它并不會(huì)盲目復(fù)制整個(gè)目錄席吴,在條件允許下赌结,它會(huì)將當(dāng)前版本于倉庫中的上一個(gè)版本進(jìn)行對(duì)比,并把所有差異打包到一起作為一個(gè)提交記錄

    git branch

使用分支相當(dāng)于在說:“我想基于這個(gè)提交以及它所有的父提交進(jìn)行新的工作”

git 創(chuàng)建再多的分支也不會(huì)造成存儲(chǔ)或內(nèi)存上的開銷

    git checkout <name>

切換工作分支

    git checkout -b <your-branch-name>

創(chuàng)建一個(gè)新的分支同時(shí)切換到新創(chuàng)建的分支

    git merge <name>

將 name 的分支合并到當(dāng)前分支
git rebase
Rebase 實(shí)際上就是取出一系列的提交記錄孝冒,“復(fù)制”它們柬姚,然后再另外一個(gè)地方逐個(gè)放下去

高級(jí)篇

    HEAD

HEAD 是一個(gè)對(duì)當(dāng)前檢出記錄的符號(hào)引用 -- 也就是指向逆正在其基礎(chǔ)上進(jìn)行工作的提交記錄。

HEAD 總是指向當(dāng)前分支最近一次提交記錄庄涡。

^

相對(duì)引用量承,向上提交一個(gè)記錄,如 git checkout master^ ,就是切換到 master 的父節(jié)點(diǎn)。 另外也可以將 HEAD 作為相對(duì)引用的參照啼染。例如: git checkout HEAD^

~ 

如果你想在提交樹上移動(dòng)很多步的話宴合,敲很多 ^ 非常煩人,所以引入了操作符 ~ ,該操作符后可以跟一個(gè)數(shù)字迹鹅,不跟時(shí)與 ^ ,相同卦洽。

git branch -f master HEAD~3

將 master 分支強(qiáng)制指向 HEAD 的第 3 級(jí)父提交

git reset  /  git revert

撤銷變更 通過 HEAD^ 提交, 撤銷本地分支

當(dāng) Git 無法自動(dòng)合并分支時(shí),就必須首先解決沖突斜棚。解決沖突后阀蒂,在提交,合并完成弟蚀。
git log --graph 可查看分支合并圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蚤霞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子义钉,更是在濱河造成了極大的恐慌昧绣,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捶闸,死亡現(xiàn)場(chǎng)離奇詭異夜畴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)删壮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門贪绘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人央碟,你說我怎么就攤上這事税灌。” “怎么了亿虽?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵菱涤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我经柴,道長(zhǎng)狸窘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任坯认,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘牛哺。我一直安慰自己陋气,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布引润。 她就那樣靜靜地躺著巩趁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淳附。 梳的紋絲不亂的頭發(fā)上议慰,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音奴曙,去河邊找鬼别凹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛洽糟,可吹牛的內(nèi)容都是我干的炉菲。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼坤溃,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼拍霜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起薪介,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤祠饺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后汁政,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體道偷,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年烂完,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了试疙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抠蚣,死狀恐怖祝旷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嘶窄,我是刑警寧澤怀跛,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站柄冲,受9級(jí)特大地震影響吻谋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜现横,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一漓拾、第九天 我趴在偏房一處隱蔽的房頂上張望阁最。 院中可真熱鬧,春花似錦骇两、人聲如沸速种。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽配阵。三九已至,卻和暖如春示血,著一層夾襖步出監(jiān)牢的瞬間棋傍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工难审, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瘫拣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓剔宪,卻偏偏與公主長(zhǎng)得像拂铡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子葱绒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

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

  • 逛帖子的時(shí)候偶爾發(fā)現(xiàn)了一篇lambda很容易入門的帖子,轉(zhuǎn)載于30分鐘入門Java8之lambda表達(dá)式 前言 G...
    噬魂Miss閱讀 713評(píng)論 0 3
  • 這幾天都很忙感帅,所以斷更了一天,后面幾天還很遲才有時(shí)間寫地淀,今天趁這個(gè)空擋寫一下吧失球,這樣晚上就不用連睡覺也記著,今天...
    晴冰閱讀 288評(píng)論 0 0
  • UISlider滑動(dòng)不靈敏的話給他的height加大一點(diǎn)就可以帮毁!
    小小葉閱讀 738評(píng)論 0 0
  • (一)未來 這是我來到這里的第三天实苞。 我之所以能確定我進(jìn)來了幾天是因?yàn)槌舐牧_伯特都會(huì)...
    Notail閱讀 282評(píng)論 0 1
  • 報(bào)過語姐課的人都知道黔牵,以前我也是語姐的粉絲。2016年10月爷肝,語姐開設(shè)第一期“生活邏輯課”猾浦,果斷報(bào)名參加,在學(xué)習(xí)課...
    十七碎碎念閱讀 431評(píng)論 1 2