<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5055字,需瀏覽 11分鐘

           ·

          2021-01-06 18:43


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




          導(dǎo)讀


          使用git 已不知好幾年,最近想著把常用的一些git 命令做個(gè)總結(jié),本文主要寫的是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)寫參數(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'

          如果我們最近一次的提交信息寫錯(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)寫;

          git?branch?-a

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

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

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

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

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

          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)寫,輸出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開始;注:0最新的一次保存,1上一次貯藏,以此類推;

          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ū)?和文章作者展開更多互動(dòng)和交流。

          -?END -

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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产激情在线网站 | 青青在操逼播放 | 亚洲综合在线婷婷 | 久久婷婷五月丁香 | 日本色情视频网站 |