1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        一學(xué)就會(huì)的git命令

        共 5055字,需瀏覽 11分鐘

         ·

        2021-01-06 18:43


        作者:FishStudy520
        來(lái)源:SegmentFault 思否社區(qū)




        導(dǎo)讀


        使用git 已不知好幾年,最近想著把常用的一些git 命令做個(gè)總結(jié),本文主要寫(xiě)的是git常用的命令。




        幾個(gè)常用的命令


        mkdir folder_name ?//?創(chuàng)建文件夾?[folder_name:?文件夾名稱,舉個(gè)栗子:git-demo]
        cd??folder_name????//?進(jìn)入文件夾
        touch file_name ???//?創(chuàng)建一個(gè)文件?[file_name:文件名稱,舉個(gè)栗子:index.js]
        vim file_name ?????//?編輯一個(gè)文件?[舉個(gè)栗子:vim index.js]
        rm?-rf?file_name???//?刪除文件或者文件夾?[rm?-rf?file_name]
        ls???????//?顯示工作目錄
        clear????//?清除屏幕




        獲取git 倉(cāng)庫(kù)


        1.第一種方式,將本地項(xiàng)目轉(zhuǎn)換成git 倉(cāng)庫(kù), 生成一個(gè).git文件;


        mkdir?git-demo?//創(chuàng)建一個(gè)文件
        cd?git-demo
        git?init??//?創(chuàng)建一個(gè)名為?.git?的子目錄


        2.第二種方式,拉取(克隆)遠(yuǎn)程已存在的git倉(cāng)庫(kù);


        git?clone???//?url?倉(cāng)庫(kù)地址
        git?clone?https://github.com/FishStudy520/git-demo.git




        git config (配置用戶信息)


        配置用戶信息(用戶名和郵箱);


        git?config?user.name?'your?name'?????//?配置用戶名
        git?config?user.email??'your?email'??//配置用戶郵箱


        查看配置信息 (顯示配置信息);


        git?config?--list


        全局配置用戶只需要加?--global;

        git?config?--global?user.name?'your?name'?//?全局配置用戶名




        git help (查看文檔)


        查看常見(jiàn)的命令;


        git?help


        查看git全部的命令;


        git?help?-a


        查看git命令某個(gè)文檔, 舉個(gè)栗子:


        git?help?add




        git status (查看狀態(tài))


        查看狀態(tài)


        git?status


        主要用于查看工作區(qū)與保存區(qū)的狀態(tài);文件狀態(tài)如以下三種:


        • Untracked files: 未跟蹤的文件,新創(chuàng)建的文件 (未跟蹤的文件);

        • Changes to be committed:保存已修改的文件,該文件運(yùn)行在git add 的版本歷史記錄中,但還沒(méi)有commit ;

        • Changes not staged for commit: 保存已修改的文件;



        1. 未跟蹤的文件(Untracked)和已修改的文件(Modified)通過(guò)git add .提交到暫存區(qū)區(qū),使用git reset HEAD ?還原到git add .時(shí)的狀態(tài);
        2. 已修改的文件(Modified)使用git checkout .將以跟蹤所有已修改的文件,還原到修改前的狀態(tài)(Unmodifed);
        3. 以跟蹤未修改的文件(Unodified)通過(guò)本地倉(cāng)庫(kù)切換出新分支所得;

        查看狀態(tài),簡(jiǎn)寫(xiě)參數(shù):-s

        git?status?-s



        git add(添加到暫存區(qū))


        將文件/文件夾提交到暫存區(qū),添加單個(gè)或者多個(gè);

        git?add?file?file1?...

        將當(dāng)前目錄下的所有文件添加到暫存區(qū)(包含修改的文件以及新增文件);

        git?add?.

        將已經(jīng)監(jiān)控的文件添加到暫存區(qū)(不包含新增的文件);

        git?add?-u

        將當(dāng)前項(xiàng)目下的所有變化都添加到暫存區(qū);

        git?add?-A



        git commit(提交本地倉(cāng)庫(kù))


        Git commit將工作區(qū)的內(nèi)容提交到本地倉(cāng)庫(kù),每次提交生成一個(gè)commit-id,在版本回退起了重要的位置。

        將工作區(qū)內(nèi)容提交到本地倉(cāng)庫(kù);

        git?commit?-m?'message'

        將暫存區(qū)已修改的文件提交到本地倉(cāng)庫(kù),注:已版本控制的文件;

        git?commit?-a?-m?'messgae'

        如果我們最近一次的提交信息寫(xiě)錯(cuò)了,可以使用下面命令修改;

        git?commit?--amend



        git 分支


        查看本地倉(cāng)庫(kù)下的分支,標(biāo)記“*”的是當(dāng)前工作區(qū)分支;

        git?branch

        查看所有的分支(本地倉(cāng)庫(kù)以及遠(yuǎn)程倉(cāng)庫(kù)分支),-a 是?--all的簡(jiǎn)寫(xiě);

        git?branch?-a

        創(chuàng)建一個(gè)新分支;

        git?branch??//branch_name:?新分支名稱

        切換分支,比如你現(xiàn)在在master分支上,切換到develop分支;

        git?checkout?develop?//?切換到develop分支

        刪除某個(gè)分支,-d 是?--delete的簡(jiǎn)寫(xiě);

        git branch -d ???// branch_name:需要?jiǎng)h除的分支名
        //?舉個(gè)栗子:刪除develop 分支
        git?branch?-d?develop
        //?強(qiáng)制刪除某個(gè)分支,分支未合并,如果想刪除,就使用下面命令;
        git?branch?-D?develop

        打印當(dāng)前分支名稱;

        git?branch?--show-current

        顯示與工作區(qū)分支已合并的分支;

        git?branch?--merged

        顯示與工作區(qū)分支未合并的分支;

        git?branch?--no-merged



        git checkout (檢出)


        git checkout主要的作用是切換分支或者還原工作區(qū)文件的變更。
        切換分支;

        git?checkout??//?branch_name:分支名稱
        git?checkout?develop?//切換到develop?分支

        創(chuàng)建新分支并且切換到這個(gè)分支上;

        git?checkout?-b??//??branch_name:新增分支名稱
        git?checkout?-b?develop???//?創(chuàng)建develop?分支并切換到develop分支上

        忽略工作區(qū)的修改,切換分支;

        git?checkout?-f??//?忽略修改切換到?branch_name?上



        git merge(合并)


        git merge的作用就是將指定的分支合并到當(dāng)前分支;
        合并分支;

        git?merge??//?branch_name:?分支名稱

        在合并分支時(shí),產(chǎn)生合并沖突,退回到合并前的狀態(tài);

        git?merge?--abort



        git log(提交記錄)


        查看所有的提交記錄;

        git?log?//?按?字母?q?退出查看

        參數(shù)
        --oneline: git log 的簡(jiǎn)寫(xiě),輸出7個(gè)commit hash 的前7個(gè)字符,以及提交說(shuō)明;

        git?log?--oneline

        -p:查看每次提交改變的差異,這個(gè)很詳細(xì);

        git?log?-p????????//??查看每次提交改變的差異
        git?log?-p??//?查看指定文件的提交記錄

        --stat:查看每次提交的簡(jiǎn)略信息,可以快速查看每次提交的差異,比-p簡(jiǎn)潔;

        git?log?--stat

        --prettry:這個(gè)參數(shù)用于自定義輸出格式信息;比如:oneline[單行],format[定制時(shí)間格式]

        git?log?--prettry=oneline

        -n: n代表限制輸出的數(shù)量,最近的n條提交信息;

        git?log?-2?//?最近兩條的提交信息

        --graph:查看在日志旁以 ASCII 圖形顯示分支與合并歷史;

        git?log?--graph



        git diff(查看差異)


        查看當(dāng)前工作區(qū)與保存區(qū)文件修改了哪些內(nèi)容(不包含新文件);

        git?diff

        查看當(dāng)前工作區(qū)與上一個(gè)版本的差異;

        git?diff?HEAD
        git diff commit-id //?與commit-id版本比較差異,commit-id:對(duì)應(yīng)提交的版本號(hào)

        查看當(dāng)前工作區(qū)與另一個(gè)分支的差異;

        git?diff?master?//?與master?分支比較差異

        查看對(duì)比兩個(gè)分支間的差異;

        git?diff?master...develop?//?對(duì)比master分支與develop?分支的差異

        查看哪些文件改動(dòng)了,有多少,可以使用--stat參數(shù);

        git?diff?--stat



        git tag(打標(biāo)簽)


        git tag用來(lái)標(biāo)記git 版本的標(biāo)記;
        查看所有的tag 標(biāo)記;

        git?tag

        創(chuàng)建一個(gè)tag標(biāo)記;

        git?tag?v0.0.1

        查看某個(gè)tag的詳情內(nèi)容;

        git?tag???//?tag_name:?tag名稱
        //?比如:查看v0.0.1 標(biāo)記
        git?tag?v0.0.1

        刪除某個(gè)tag;

        git?tag?-d?v0.0.1

        推送本地tag到遠(yuǎn)倉(cāng)庫(kù);

        git?push?origin?--tags

        查看遠(yuǎn)程倉(cāng)庫(kù)的所有tag;

        git?ls-remote?--tags?origin

        以某個(gè)tag 創(chuàng)建新分支;

        git checkout -b ??// branch_name:新分支名,tag_name:tag名




        git 遠(yuǎn)端倉(cāng)庫(kù)


        查看遠(yuǎn)程倉(cāng)庫(kù);

        git?remote?-v

        添加遠(yuǎn)程倉(cāng)庫(kù);

        git remote add ???// short_name:?簡(jiǎn)短的名稱,url:遠(yuǎn)程倉(cāng)庫(kù)地址

        //?舉個(gè)栗子:
        git?remote?add??fishStudy520??https://github.com/FishStudy520/git-demo.git

        從遠(yuǎn)程倉(cāng)庫(kù)拉取和抓取到本地倉(cāng)庫(kù),但未合并(同步遠(yuǎn)程倉(cāng)庫(kù)數(shù)據(jù));

        git fetch ?//remote:遠(yuǎn)程地址

        從遠(yuǎn)程倉(cāng)庫(kù)拉取和抓取到本地倉(cāng)庫(kù),并且合并數(shù)據(jù)(同步遠(yuǎn)程倉(cāng)庫(kù)數(shù)據(jù));

        git?pull?origin?master?//?拉去遠(yuǎn)程倉(cāng)庫(kù)數(shù)據(jù)

        刪除遠(yuǎn)程倉(cāng)庫(kù)的某個(gè)分支;

        git?push?origin?--delete??//?branch_name:?遠(yuǎn)端分支名

        推送到遠(yuǎn)程倉(cāng)庫(kù);

        git?push?origin?master?//?推送到遠(yuǎn)程倉(cāng)庫(kù)的master分支

        查看某個(gè)遠(yuǎn)程倉(cāng)庫(kù);

        git?remote?show?origin

        修改遠(yuǎn)程倉(cāng)庫(kù)名稱;

        ?git?remote?rename?old_name?new_name?
        ?//?舉個(gè)栗子:
        ?git?remote?rename?fishStudy520?fish001

        移除遠(yuǎn)程倉(cāng)庫(kù);

        git?remote?remove?fishStudy520?//移除遠(yuǎn)程倉(cāng)庫(kù)?fishStudy520

        git pull 與 git fetch 的區(qū)別:

        git?pull?=?git?fetch?+?git?merge



        貯藏與清理


        執(zhí)行貯藏操作,是將修改暫時(shí)存儲(chǔ)到堆棧中
        場(chǎng)景:當(dāng)你在項(xiàng)目上修改一些內(nèi)容,而現(xiàn)在臨時(shí)線上有個(gè)緊急bug 需要修復(fù),但是你不想這么一會(huì)就創(chuàng)建一次提交,這時(shí)使用stash,將修改保存。等Bug 修改完后,再次切回原分支,從堆棧中恢復(fù)剛剛貯藏的內(nèi)容。
        貯藏內(nèi)容,添加備注信息,方便以后查找;

        git stash save ?// message:備注信息(可選參數(shù)下)
        or
        git?stash?//不添加備注信息

        查看貯藏列表;

        git?stash?list

        查看貯藏的內(nèi)容變更,默認(rèn)顯示第一個(gè),如果查看其他的貯藏,在stash${num},num代表哪個(gè)貯藏;

        git?show?stash??????//默認(rèn)第一個(gè),索引為0,
        git?show?stash@{1}??//?查看第二次貯藏的內(nèi)容有哪些

        應(yīng)用某個(gè)貯藏,但不會(huì)在堆棧列表中刪除,這里的索引從0開(kāi)始;注:0最新的一次保存,1上一次貯藏,以此類(lèi)推;

        git?stash?apply?//?默認(rèn)使用最近一次的貯藏,相當(dāng)于?git?stash?apply?stash${0}?
        git?stash?apply?stash${1}??//?使用第二個(gè)貯藏

        應(yīng)用某個(gè)貯藏,并且從堆棧列表中刪除;

        git?stash?pop?stash@{2}?//?使用第3個(gè)貯藏,并且刪除從緩存中刪除

        將之前的某次貯藏從列表中刪除;

        git?stash?drop?stash@{2}?//?丟棄列表中的第3次貯藏

        刪除所有貯藏的stash;

        git?stash?clear



        總結(jié)





        點(diǎn)擊左下角閱讀原文,到?SegmentFault 思否社區(qū)?和文章作者展開(kāi)更多互動(dòng)和交流。

        -?END -

        瀏覽 54
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            把美女日出白浆 | 91aiai| 女侠被下药糟蹋呻吟 | 国产乌鸦传媒性色αv在线 | 91无码人妻一区二区成人AⅤ | 屄无码| 手机免费黄色视频 | 男人添女荫道口视频77分集 | 久久羞羞tr3.tv.com | 精品国产免费无码久久噜噜噜AV |