實(shí)習(xí)-git

2018/07/11

參考:git-廖雪峰的官方網(wǎng)站

版本回退:

從最近到最遠(yuǎn)的提交日志:git log
?如果嫌輸出信息太多,可以加上--pretty=oneline

git使用HEAD表示當(dāng)前版本,上一個(gè)版本就是HEAD^,上上個(gè)版本就是HEAD^^,很多個(gè)版本就是HEAD~n;
?命令:git reset --hard HEAD^

從過(guò)去回到未來(lái):git reset --hard 版本號(hào)(版本號(hào)不需要寫全,寫前幾位即可)

git reflog用來(lái)記錄每一次命令

撤銷修改:

撤銷工作區(qū):git checkout --filename
?撤銷提交到暫存區(qū)的:git reset HEAD filename

刪除文件:

刪掉提交到版本庫(kù)的文件:git rm filename;
?然后:git commit -m "remove filename"

工作區(qū)誤刪:
?從版本庫(kù)替換工作區(qū):git checkout --filename

分支管理:

創(chuàng)建dev分支,然后切換:
?git checkout -b dev
?相當(dāng)于以下兩條命令:
??git branch dev
??git checkout dev

查看分支:
?git branch;當(dāng)前分支前面會(huì)標(biāo)一個(gè)*
?git branch -a:查看遠(yuǎn)程分支

切換回master分支:git checkout master

把dev分支的工作成果合并到master分支上:git merge dev

刪除分支:git branch -d dev

查看分支合并圖:git log --graph

分支合并策略:合并分支時(shí)加上--no-off就可以使用普通模式合并合并后的歷史有分支

BUG分支:
?工作途中需要修復(fù)bug,可以把當(dāng)前工作儲(chǔ)藏起來(lái)git stash
?恢復(fù):兩種方式
??git stash apply:stash內(nèi)容沒有刪除:git stash drop
??git stash pop恢復(fù)的同時(shí)把stash內(nèi)容刪除

feature分支:添加新功能
?丟棄一個(gè)沒有合并的分支(強(qiáng)行刪除):git branch -D name

多人協(xié)作:遠(yuǎn)程倉(cāng)儲(chǔ)的默認(rèn)名稱是origin
?查看遠(yuǎn)程倉(cāng)庫(kù)的信息:git remote或者git remote -v
?推送分支:把該分支上的所有本地提交到遠(yuǎn)程庫(kù),推送時(shí)要指定本地分支

推送master分支:git push origin master
如果要推送其他分支,比如dev:git push origin dev
那些需要推送到遠(yuǎn)程:
?master是主分支,要時(shí)刻與遠(yuǎn)程同步
?dev是開發(fā)分支,團(tuán)隊(duì)成員都需要在上面工作,需要同步
?bug分支只用于本地修復(fù)bug,不需要
?freature分支是否需要,取決于自己

因此,多人協(xié)作的工作模式通常是這樣:
?首先,可以試圖用git push origin <branch-name>推送自己的修改;
?如果推送失敗,則因?yàn)檫h(yuǎn)程分支比你的本地更新,需要先用git pull試圖合并;
?如果合并有沖突,則解決沖突,并在本地提交;
?沒有沖突或者解決掉沖突后,再用git push origin <branch-name>推送就能成功!
?如果git pull提示no tracking information,則說(shuō)明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒有創(chuàng)建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

標(biāo)簽管理:

創(chuàng)建標(biāo)簽:git tag name
?查看所有標(biāo)簽:git tag
對(duì)某一個(gè)commit id打標(biāo)簽:git tag name id
?標(biāo)簽不是按時(shí)間順序的,而是按字母順序
查看標(biāo)簽信息:git show tagname
創(chuàng)建帶有說(shuō)明的標(biāo)簽:-a制定標(biāo)簽名,-m指定說(shuō)明文字:git tag -a name -m "info" id
刪除標(biāo)簽:git tag -d name
推送:git push origin tagname
刪除遠(yuǎn)程標(biāo)簽(先刪本地):git push origin:/addr/tagname

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來(lái)。這樣一來(lái),任何一處協(xié)同...
    __silhouette閱讀 16,212評(píng)論 5 147
  • Git常用語(yǔ)法 [TOC] Git簡(jiǎn)介 描述 ? Git(讀音為/g?t/。)是一個(gè)開源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,957評(píng)論 0 13
  • 我是怎么知道007的?因?yàn)榭匆妱?chuàng)始人搞事情。我是怎么認(rèn)識(shí)創(chuàng)始人的?因?yàn)槲覀兌际亲笃沧?,我們?cè)谧笃沧尤弘S意加了個(gè)好...
    烏龜大俠閱讀 465評(píng)論 2 0
  • 小姨吃飽飯后,把碗筷往桌上一扔,從女傭手上抱過(guò)小孩,然后便回房間睡覺,隨即小姨父和藹地對(duì)凡宜笑說(shuō):“有沒有吃飽?”...
    云竹chen閱讀 249評(píng)論 0 0
  • 說(shuō)每一個(gè)說(shuō)“江湖再見,前程似錦”的男人,是不是都有一個(gè)柔軟的心,在說(shuō)那句話的時(shí)候眼淚是否已經(jīng)悄然到了眼角兒? 這是...
    二剛的軌跡閱讀 336評(píng)論 1 0

友情鏈接更多精彩內(nèi)容