Git-讀了大神的文章后,記下

1.創(chuàng)建版本庫

? ?$ mkdir resname

? ? $ cd resname

? ? 此時(shí)文件夾里只有$ git init

? ? .git一個(gè)文件夾,不要隨意改動(dòng)。

2.文本添加到版本庫

? ? 編輯文本文件,推薦使用notepad++,設(shè)置成UTF-8 without BOM

? ? 首先創(chuàng)建文件保存在文件中,

? ? 然后添加到倉庫$ add filename

? ? 再然后提交到倉庫$ git commit -m本次改動(dòng)的簡(jiǎn)述

? ? 注:可以add多個(gè)文件,一次commit提交

3.查看

? ? $ git status查看當(dāng)前文件修改和提交的狀態(tài)

? ? $ git diff filename查看文件具體修改的內(nèi)容

? ? $ git log查看提交日志(由近及遠(yuǎn))

? ? $ git log --pretty oneline上一命令的簡(jiǎn)化

? ? $ git reflog查看歷史命令

? ? $ git diff HEAD -- filename查看工作區(qū)和版本庫里面最新版本的區(qū)別

4.版本回退

? ? $ git reset --hard HEAD^

? ? 可以直接寫版本號(hào)的前6位。$ git reset --hard commit_id

? ? 不知道本電腦為啥head^這個(gè)不好用,但是id還是好用的

5.工作區(qū)和暫存區(qū)

? ? 修改過后的文件先add到暫存區(qū),在提交到master分支。

7.撤銷修改

? ? 文件已修改但是沒有add

? ? $ git checkout -- filename

? ? 文件修改并add到暫存區(qū)

? ? $ git reset HEAD file

? ? $ git checkout -- filename

8.刪除文件

? ? $ git rm filename

? ? 如果刪錯(cuò)了

? ? $ git checkout -- filename用版本庫里的文件代替工作區(qū)的文件

9.遠(yuǎn)程倉庫

? ? 首先打開Git Bash,創(chuàng)建SSH Key

? ? $ ssh-keygen -t rsa -C“你自己的郵箱”。一路回車默認(rèn)

? ? 然后,打開Github -> Personal settings->SSH and GPG keys->new SSH Key

? ? title自己定義,key復(fù)制用戶主目錄下的admin/.ssh/id-rsa.pub

? ? 再然后Add SSH Key

? ? 然后創(chuàng)建一個(gè)新的倉庫,new repository

? ? 關(guān)聯(lián)遠(yuǎn)程倉庫

? ? ? ? $ git remote add origingit@github.com:zdning/learngit.git

? ? 將當(dāng)前分支master推送到遠(yuǎn)程庫

? ? ? ? $ git push -u origin master首次加-u,以后可以省略

GitHub需要識(shí)別出你推送的提交確實(shí)是你推送的,而不是別人冒充的,而Git支持SSH協(xié)議,所以,GitHub只要知道了你的公鑰,就可以確認(rèn)只有你自己才能推送。

10.克隆倉庫

先創(chuàng)建遠(yuǎn)程庫,再克隆到本地


創(chuàng)建遠(yuǎn)程庫

? ? 創(chuàng)建完成之后進(jìn)行克隆

? ? ? ? $ git clone git clone git@github.com:zdning/gitskills.git

? ? 使用https協(xié)議速度慢,每次輸入都必須輸入口令,

11.分支管理

? ? HEAD指向工作區(qū),master指向要提交的區(qū)。

? ? 首先創(chuàng)建分支$ git branch devname

? ? 切換分支$ git checkout ?devname

? ? 創(chuàng)建并切換分支$ git checkout -b devname

? ? 查看當(dāng)前分支$ git branch

? ? 當(dāng)前分支前面有*標(biāo)識(shí)

? ? 切換回master分支$ git checkout master

? ? 合并分支$ git merge devname

? ? 刪除分支$ git branch -d devname

12.解決沖突

? ? 沖突發(fā)生,會(huì)直接在文檔里顯示出來,需要手動(dòng)修改之后提交

? ? ? ? $ git log --graph --pretty=oneline --abbrev-commit查看合并情況

? ? ? ? $ git log --graph可以查看分支合并圖

13.分支管理策略

? ? ? ? master相當(dāng)于正式庫,一般情況下不能直接在master上工作,一般都在分支dev上工作,所有人的代碼也都往dev上合并,dev是不穩(wěn)定的,是測(cè)試庫

14.Bug分支

? ? ? ? 意思就是,我手里還有任務(wù)沒做完,boss說有個(gè)bug要我改,可是,我手里的任務(wù)沒做完,又不能提交,我就得先把沒提交的代碼保存起來,新建一個(gè)修復(fù)Bug的分支。

? ? ? ? 保存未提交的代碼$ git stash

? ? ? ? 在哪個(gè)分支修復(fù),就切換到哪個(gè)分支臨時(shí)創(chuàng)建分支。

? ? ? ? ? ? $ git checkout-b issue-101

? ? ? ?修改后提交,切換到主分支,合并,刪除臨時(shí)分支

? ? 恢復(fù)到上一個(gè)開發(fā)現(xiàn)場(chǎng)

? ? 查看$ git stash list

? ? 恢復(fù)$ git stash pop同時(shí)刪除了stash

14.Feature分支

? ? 準(zhǔn)備合并的時(shí)候,銷毀臨時(shí)分支$ git branch -d feature

? ? 強(qiáng)行刪除$ git branch -D feature

15.多人協(xié)作

? ? 查看遠(yuǎn)程庫信息$ git remote -v

? ? 推送分支$ git push origin master一般只推送master/dev

? ? 本地dev與遠(yuǎn)程dev連接$ git branch --set-upstream dev origin/dev

? ? 拉取最新的提交$ git pull

? ? 本地合并修改,在進(jìn)行添加、提交、推送$ git push origin dev

16.標(biāo)簽管理

? ? 自定義標(biāo)簽名來代替復(fù)雜的commit-id

? ? 切換到需要打標(biāo)簽的分支上$ git tag v2.1

? ? 查看標(biāo)簽$ git tag

? ? 命令git push origin 可以推送一個(gè)本地標(biāo)簽;

? ? 命令git push origin --tags可以推送全部未推送過的本地標(biāo)簽;

? ? 命令git tag -d 可以刪除一個(gè)本地標(biāo)簽;

? ? 命令git push origin :refs/tags/可以刪除一個(gè)遠(yuǎn)程標(biāo)簽。

最后編輯于
?著作權(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)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,843評(píng)論 4 54
  • 這一年終于過完了。 臨近年關(guān),卻覺不出和平時(shí)的區(qū)別。深圳的冬天依然溫暖,時(shí)不時(shí)的迎面就是穿著短裙光著大腿的姑娘和露...
    土土右閱讀 324評(píng)論 1 1

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