Git的使用

git的安裝

由于我已經(jīng)使用git將近有大半年的時間了封字,早已安裝過败京,就沒法上圖說明辅搬,這里就不細說了

版本庫(倉庫Repo)相關(guān)

  • 概念:版本庫(倉庫)其實就是一個由git管理的文件夾小腊,你在該文件夾
    中創(chuàng)建修改刪除文件都有g(shù)it監(jiān)控
  • 創(chuàng)建方法:
  • 創(chuàng)建一個空的文件夾 $ mkdir testGit
  • 查看文件夾中現(xiàn)在沒有任何文件 $ ls -a testGit
  • 把該文件夾轉(zhuǎn)變成一個由git監(jiān)管的文件夾:$testGit git init
  • 此時在查看該文件夾中就會有一個.git文件夾,說明此刻該文件夾就開始由git跟蹤監(jiān)控了
git倉庫的創(chuàng)建
  • 對倉庫內(nèi)容修改:
向倉庫中添加.gitignore文件
  • .gitignore文件作用:其中寫了那些文件不需要有g(shù)it追蹤監(jiān)控揍庄,git可以完全不管這些文件咆蒿,并且你也沒辦法把這些文件push的遠端倉庫
  • .gitignore文件創(chuàng)建:在你的倉庫中touch一個名字是.gitignore(千萬不要忘記前面的. 這說明這個文件是一個隱藏文件不用ls -a是沒辦法看到的)
  • 向.gitignore文件中寫入你想忽略的文件:兩個方法
    1.在webstrom中安裝.ignore插件,選中你寫的項目類型自動添加內(nèi)容到.gitignore文件中
    mac的使用方法:
    使用快捷建:ctrl + N :
    選定第一個

    在以下菜單中選中你的項目類型插件會自動為你添加.gitignore文件中的內(nèi)容
    Paste_Image.png

    舉個例子:你向創(chuàng)建一個node項目
    首先你得選中jetBrains:因為我是用的是IDEA的編譯器币绩,而 jetBrains是生產(chǎn)IDEA各種編譯器的公司蜡秽,這些編譯器在都會自動在你的項目中添加如同.idea這一類的文件,幫助你運行你的項目缆镣,選中后就會自動幫你在.gitignore文件中添加.idea這種文件
    Paste_Image.png

    然后你要選中node:因為我這是node項目
    Paste_Image.png

    ps:我經(jīng)常寫js項目使用npm包管理器芽突,其中有一個巨大的node-modules文件夾一定不能上傳到git遠端庫中,因此必須有.gitignore文件中添加node-module讓他被git忽略
    此時我的倉庫使用npm init有npm包管理器管理

    Paste_Image.png

    2

倉庫修改相關(guān)

  • 你在本地的所有修改只要沒有做過任何add.commit.push所有的內(nèi)容現(xiàn)在都在工作區(qū)董瞻,git監(jiān)管你現(xiàn)在工作區(qū)的操作寞蚌,通過git status可以查看工作區(qū)有哪些修改,現(xiàn)在紅色字樣的文件都是你在工作區(qū)的修改
Paste_Image.png

發(fā)現(xiàn).idea竟然也被git監(jiān)管了田巴,趕緊在.gitignore文件中添加.idea

  • 這些修改通過git add 文件路徑/.就可以被添加到暫存區(qū),一下綠色字樣的文件就是已經(jīng)添加到暫存區(qū)的文件
Paste_Image.png

Paste_Image.png

此時暫存區(qū)有兩個文件

  • 現(xiàn)在你就可以把暫存區(qū)中的所有內(nèi)容作為一次commit一并添加入你當前分支生成一個commit節(jié)點
Paste_Image.png
  • 接著你好想把你的項目放到遠端庫中讓很多人可以瀏覽
  • 你得先將本地倉庫和你的遠端倉庫關(guān)聯(lián),但是你遠端的倉庫并不知道想跟他關(guān)聯(lián)的主機是不是被允許的,此時你需要在你使用的這臺電腦上產(chǎn)生一個秘鑰挟秤,標志你這臺電腦壹哺,并且用這個秘鑰在遠端配置,這樣遠端倉庫就可以允許你這臺電腦對他進行操作啦

向遠程庫提交本地倉庫中的代碼

  • 在你的遠端github上創(chuàng)建一個新的Repo


    Paste_Image.png
  • 選定SSh地址進行copy


    Paste_Image.png
  • ssh和http克隆區(qū)別
    這兩種方式的主要區(qū)別在于:使用https url克隆對初學(xué)者來說會比較方便艘刚,復(fù)制https url然后到git Bash里面直接用clone命令克隆到本地就好了管宵,但是每次fetch和push代碼都需要輸入賬號和密碼,這也是https方式的麻煩之處攀甚。而使用SSH url克隆卻需要在克隆之前先配置和添加好SSH key箩朴,因此,如果你想要使用SSH url克隆的話秋度,你必須是這個項目的擁有者炸庞。否則你是無法添加SSH key的,另外ssh默認是每次fetch和push代碼都不需要輸入賬號和密碼荚斯,如果你想要每次都輸入賬號密碼才能進行fetch和push也可以另外進行設(shè)置

  • git remote add origin <你的遠端倉庫地址>

    Paste_Image.png

  • 這是我想push代碼埠居,把本地倉庫放到遠端

  • 第一次push需要設(shè)置好遠程庫的名字以及push的代碼放到遠程庫的哪一個分支上 origin是遠程庫的默認倉庫名字,因此第一次push需要寫成如下樣子

    push

    git remote -v:查看你現(xiàn)在關(guān)聯(lián)的遠程倉庫
    git remote add origin(可以起別的名字是遠程倉庫名字) master(也可以識別的分支):吧當前的本地庫關(guān)聯(lián)到遠端倉庫事期,給遠端倉庫起名字是origin滥壕,并且在遠端創(chuàng)建一個master分支把這一次push的所有commit全部按照時間順序加到master分支上
    git remote rm origin(可以是別的遠程倉庫):移除當前本地庫關(guān)聯(lián)的名字是origin的遠程倉庫(一個本地庫可以關(guān)聯(lián)多個遠端倉庫)

  • 以后的每一次push可以直接git push就是把代碼push到origin 的master分支上,或者使用git push origin master每次push都設(shè)置好要push的位置

從遠程庫拉取

  • 如果你看到一個很好的項目想拿下來git clone <項目的http/ssh地址>刑赶,如果你clone項目的github配過你這臺電腦的秘鑰捏浊,那么你可以采用ssh地址clone懂衩,這樣你就具有修改代碼并且push代碼的權(quán)利撞叨,如果沒有配過秘鑰,你只能使用http地址clone浊洞,但是這種clone方式不能像遠程倉庫中push代碼
    • 這是從我的倉庫使用ssh方式clone代碼


      Paste_Image.png
  • 這是從別人的倉庫使用ssh


    Paste_Image.png

    Paste_Image.png
  • 從別人的倉庫中使用http地址clone


    你需要有別人的github密碼才能push
  • 如果此時你和別人一起開發(fā)牵敷,當你在寫代碼的時候,別人已經(jīng)向倉庫中提交了一次代碼法希,這是master分支上多了一個節(jié)點枷餐,但是你本地卻停留在上一個節(jié)點,這是你本地代碼就跟遠端代碼不一樣了苫亦,如果此時你push毛肋,git就會提醒你當前代碼不是最新的,你要使用git pull --reb把遠端代碼拉下屋剑,和本地代碼在工作區(qū)合并在一起
  • git pull=git fetch+git merge:使用git fetch吧遠端的origin master整個拿到本地润匙,然后使用git merge:把本地master上沒有的節(jié)點+這次commit的節(jié)點合并解決沖突在本地成為一個新的commit節(jié)點,此時你可以push到遠端
  • git pull --reb=git fetch+git rebase:使用git fetch吧遠端的origin master整個拿到本地唉匾,然后使用git rebase:把遠端有但是本地沒有的節(jié)點先加到本地mater中孕讳,然后把這次的第一個commit節(jié)點加到master中如果有沖突解決沖突匠楚,然后在使用git rebase --continue把下一個commit節(jié)點加進來在解決沖突,直到git rebase --continue沒有錯誤沖突厂财,此時你就可以push代碼了

版本回退相關(guān)

  • 你工作區(qū)做了某些修改芋簿,這是你不想要工作取得修改了,你可以使用
    git checkout <文件路徑>一旦checkout你的修改一定絕對完全找不回來了AПァ与斤!曾經(jīng)寫過好多代碼你不小心checkout的我好辛酸!荚恶!
    此時工作區(qū)的代碼會被checkout到:
  • 1.如果現(xiàn)在暫存區(qū)有沒有commit的代碼幽告,那么回到暫存區(qū)狀態(tài)
  • 2.如果暫存區(qū)沒有代碼,回到最近的一次commit狀態(tài)

  • 新添加的文件是沒辦checkout掉的裆甩,你可以直接手動刪除這個文件


    Paste_Image.png
  • git checkout:你可一看到紅色字樣沒有了

    Paste_Image.png

  • 如果此時你把某些修改add后放進了暫存區(qū)冗锁,但是你不想要這些修改了,你可以使用git reset HEAD <文件路徑>:從暫存區(qū)撤銷這個文件的這次add,讓這次修改回到工作區(qū)

    Paste_Image.png

    Paste_Image.png

  • 撤銷某次commit嗤栓,你可以使用git log查看那次commit的號碼冻河,
    然后直接使用git reset --hard <commit號碼>HEAD指針指向最近的一次commit,HEAD^代表上一次commit茉帅,HEAD^^上上次叨叙,因此你也可以采用git reset --hard HEAD^:會退到上一次commit

    git log

    git reset --hard commitID

    git log new

  • 撤銷某次commit還可以使用git reset --soft <commit Id>,這種方式會使得你的回到上次commit但是把這次commit的內(nèi)容放進stage中堪澎,就是出現(xiàn)綠色字樣

  • git reflog和git log前者你可以看到你所有的commit(包含被reset掉的commit)并且是按照操作順序排序的擂错。后者你只能看到當前有的commit

評論相關(guān)

  • 如果你想向別人的倉庫提交一次pull request
  • 從github上fork別人的倉庫,此時你的倉庫中就會多一個你剛剛從別人倉庫中拿過來的倉庫】在你的遠程倉庫中


    Paste_Image.png

    Paste_Image.png
  • 如果你想給別人的代碼提交一個issue樱蛤,進入到別人的倉庫中點擊new issue


    Paste_Image.png

    Paste_Image.png

    寫好提交即可

  • 如果你想給某一次pull request評論


    Paste_Image.png
  • 如果你想給某一次commit評論
  • 你可以點開某一次commit然后會在你鼠標經(jīng)過的的每一行有一個小加號


    Paste_Image.png

    點擊一個就可以評論了

分支相關(guān)

未完待續(xù)钮呀。。昨凡。

林老師教育我們討論一個問題的時候不要沒事拉分支爽醋,所以我就沒怎么擴展以后遇到問題再慢慢補充吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市便脊,隨后出現(xiàn)的幾起案子蚂四,更是在濱河造成了極大的恐慌,老刑警劉巖哪痰,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遂赠,死亡現(xiàn)場離奇詭異,居然都是意外死亡晌杰,警方通過查閱死者的電腦和手機跷睦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乎莉,“玉大人送讲,你說我怎么就攤上這事奸笤。” “怎么了哼鬓?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵监右,是天一觀的道長。 經(jīng)常有香客問我异希,道長健盒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任称簿,我火速辦了婚禮扣癣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘憨降。我一直安慰自己父虑,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布授药。 她就那樣靜靜地躺著士嚎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悔叽。 梳的紋絲不亂的頭發(fā)上莱衩,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音娇澎,去河邊找鬼笨蚁。 笑死,一個胖子當著我的面吹牛趟庄,可吹牛的內(nèi)容都是我干的括细。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岔激,長吁一口氣:“原來是場噩夢啊……” “哼勒极!你這毒婦竟也來了是掰?” 一聲冷哼從身側(cè)響起虑鼎,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎键痛,沒想到半個月后炫彩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡絮短,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年江兢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丁频。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡杉允,死狀恐怖邑贴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叔磷,我是刑警寧澤拢驾,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站改基,受9級特大地震影響繁疤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秕狰,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一稠腊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸣哀,春花似錦架忌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至低飒,卻和暖如春许昨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背褥赊。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工糕档, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拌喉。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓速那,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尿背。 傳聞我的和親對象是個殘疾皇子端仰,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

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

  • 1,https://git-for-windows.github.io/ 下載windows 版 git 2田藐,安裝...
    loveqin閱讀 5,050評論 1 3
  • 1.設(shè)置 初次使用需要設(shè)置姓名和郵箱git config --global user.name "git用戶名"g...
    jrg陳咪咪sunny閱讀 758評論 0 1
  • 版本庫 什么是版本庫呢荔烧?版本庫又名倉庫,英文名repository汽久,你可以簡單理解成一個目錄鹤竭,這個目錄里面的所有文...
    破曉霜林閱讀 301評論 0 1
  • 來到新公司了,代碼管理由SVN切換到了git景醇,于是學(xué)習(xí)了一下git臀稚。發(fā)現(xiàn)一篇不錯的文章,特意clone寫來三痰,以供參...
    久林的技術(shù)隨筆閱讀 909評論 1 9
  • 昨天微峰,我沒有發(fā)送文章,深表歉意抒钱,不僅僅是對你們蜓肆,更是對自己。 “文章寫的好了谋币,自然就有人看了”仗扬,一個同學(xué)這樣對我說...
    摳腳小姐姐閱讀 290評論 2 0