Git學(xué)習(xí)

什么是Git?

  • Git是一款源代碼管理工具(版本控制工具)
    • 我們寫的代碼需要使用Git進(jìn)行管理锦聊。

分布式,集中式版本管理工具

  • git屬于分布式
  • svn集中式

git安裝

git初始化一個(gè)倉庫

  • 創(chuàng)建一個(gè).git隱藏目錄
  • 命令:git init;
    • 想在哪個(gè)目錄創(chuàng)建.git目錄,就是哪個(gè)目錄打開工具然后寫命令.
    • 一般是在項(xiàng)目的根目錄執(zhí)行這個(gè)命令.

自報(bào)家門

  • 配置用戶名 : git config user.name "testName"
  • 配置郵箱 : git config user.email "test@sina.com"
  • 查看配置信息: git config --list

把代碼提交到倉庫中

  • 1.先把代碼添加到暫存區(qū)(就相當(dāng)于放到倉庫門口)

    • 命令:git add 文件路徑
    • 示例:git add ./reademe.md
    • 可以使用git add .這個(gè)命令,批量把當(dāng)前目錄下所有修改過的文件添加到暫存區(qū)谍肤。
  • 2.把暫存區(qū)的文件提交倉庫里

    • 命令: git commit -m "注釋"
    • 示例: git commit -m "我們添加了一個(gè)新的功能"
    • -m 表示指定一個(gè)字符串,作為提交的說明(相當(dāng)于注釋);
  • 合并add 與commit 命令

    • git commit -a -m "這是使用合并添加與提交的操作";
    • 這里-a參數(shù)表明把所有修改后的文件一起添加到暫存區(qū).(只是對(duì)修改后的文件有效哗伯,對(duì)于新添加的文件沒有作用)

查看工作區(qū)狀態(tài)

  • 命令:git status

添加忽略文件

  • 在項(xiàng)目中有一些文件是不需要提交的,我們需要把它忽略掉
  • 需要在.git文件夾所在目錄新建一個(gè)名為.gitignore的文件
    然后在這個(gè)文件中寫上需要被忽略的文件的路徑。
    示例: /css/a.css
    : /css/*.css
    : /a.html

對(duì)比文件差異

  • 命令: git diff
    • 用來比較暫存區(qū)文件內(nèi)容與工作區(qū)文件內(nèi)容的區(qū)別
    • 如果暫存區(qū)沒有文件篷角,就會(huì)將工作與代碼與最近一次提交對(duì)比
  • 命令:git diff --cached 比較暫存區(qū)的文件和倉庫中文件的區(qū)別
  • 對(duì)比之前某兩次提交的文件的差異
    • 命令:git diff [版本號(hào)1] [版本號(hào)2] [想比較的文件路徑]

查看日志

  • 命令:git log,可以查看每一次提交的日志
  • 命令:git log --oneline 表示使用簡潔的形式輸出提交日志

版本回退

  • 命令:git reset --hard Head~1

    • 這是將代碼回退到上上一次提交時(shí)的狀態(tài)
  • 命令:git reset --hard Head~2

    • 回退到上上上次
  • 命令:git reset --hard Head~0

    • 回退到上次提交時(shí)的狀態(tài),~0可以省略
  • 命令:git reset --hard 版本號(hào)

    • 通過每次提交時(shí)生成的版本號(hào)來回退版本
  • 通過git reflog命令可以查看之前所有版本切換的操作記錄焊刹,可以通過這個(gè)命令得到的版本號(hào)回退到指定的版本。

創(chuàng)建分支

  • 命令:git branch [分支名]
    • 創(chuàng)建一個(gè)新分支
  • 命令:git branch
    • 查看當(dāng)前所有的分支

切換分支

  • 命令:git checkout [分支名]
    • 切換分支后可以在切換后的分支中進(jìn)行正常的操作

合并分支

  • 命令:git merge [分支名]
    • git會(huì)將指定的分支合并到當(dāng)前分支.

刪除分支

  • 命令:git branch -d [分支名]
    • 刪除指定分支恳蹲,-d參數(shù)表示要執(zhí)行刪除操作

git提交中的沖突

  • 如果git不能自動(dòng)合并分支虐块,就會(huì)有沖突,我們需要手動(dòng)解決沖突嘉蕾,然后再次提交

github

github與git

  • git 版本管理工具
  • github 就是一個(gè)網(wǎng)站贺奠,只是這個(gè)網(wǎng)站提供git服務(wù)器的功能

上傳代碼到git服務(wù)器(push)

  • 命令:git push [遠(yuǎn)程服務(wù)器地址] [遠(yuǎn)程服務(wù)器的分支]

    • 示例:git push https://github.com/huoqishi/test002.git master
  • 上傳時(shí)可以使用一些簡化的命令

    • 將遠(yuǎn)程服務(wù)器地址寫成變量的形式
      • git remote add [變量名] [遠(yuǎn)程服務(wù)器地址]
      • 示例:git remote add origin https://github.com/huoqishi/test002.git
      • 這樣之后就可以直接使用origin來代替git push 后面寫的地址了
        git push origin master
  • 還可以盡一步簡化

    • 在push時(shí)加上-u參數(shù),就會(huì)默認(rèn)建立本地當(dāng)前分支與遠(yuǎn)程指定分支的關(guān)聯(lián),下一次push時(shí)就不需要輸入分支名了git push origin;

git使用ssh方式上傳代碼與github

  • git生成公鑰和私鑰
    • 命令:ssh-keygen -t rsa生成的公鑰與私鑰文件會(huì)在當(dāng)用戶目錄的.ssh目錄下.
    • 找到生成的ssh鑰匙文件的地址:C盤/用戶/用戶名/.ssh/id_rsa.pub 找到公鑰
    • 在github右上角 --> setting --> ssh設(shè)置選項(xiàng)
    • 把我們的公鑰拷貝到github當(dāng)中
    • 以后push代碼倉庫的時(shí)候错忱,使用ssh協(xié)議儡率,也就是去使用git開頭的那個(gè)鏈接

拉取github服務(wù)器上的代碼及多人協(xié)作沖突處理

  • 從服務(wù)器拉取代碼的方式
    • 方式一:'git clone git url'
    • 方式二:'git init'
      + 'git pull url'
  • git pull和git clone這二種拉取方式的區(qū)別:
    • 用git pull的話默認(rèn)沒有設(shè)置origin這個(gè)變量,必須自己手動(dòng)設(shè)置(git remote add .....),而用了git clone則不需要了以清,默認(rèn)origin這個(gè)變量就存在了

把代碼push到服務(wù)器時(shí)需要先pull一下

  • 在pull之后如果遠(yuǎn)程的代碼與本地的代碼有沖突儿普,git會(huì)先自動(dòng)合并沖突,如果不能自動(dòng)合并掷倔,就必需我們手動(dòng)去處理沖突眉孩。
  • 解決拒絕提交代碼
    • 執(zhí)行g(shù)it pull origin master
    • 手動(dòng)更改代碼,解決沖突
    • 執(zhí)行:'git add'
    • 執(zhí)行:'git commit
    • 執(zhí)行:'git pull origin master'
    • 執(zhí)行:'git push origin master'
  • 如何避免盡量不會(huì)出現(xiàn)沖突勒葱?
    • 在每次push之前執(zhí)行一次git pull
    • git pull的作用:
      • 更新本地倉庫至最新改動(dòng)浪汪,相當(dāng)于先從遠(yuǎn)程服務(wù)器獲取最新代碼,接著進(jìn)行自動(dòng)合并(merge)凛虽,如果有沖突會(huì)提示你沖突死遭,讓你在本地手動(dòng)解決掉沖突之后,再推送到服務(wù)器上面

多人共同使用同一個(gè)github服務(wù)器倉庫

  • 第一步涩维、建立好一個(gè)github上面的倉庫
  • 第二步殃姓、點(diǎn)擊setting
  • 第三步袁波、點(diǎn)擊add collaborator,在里面找到你的小伙伴的用戶名
  • 第四步蜗侈、生成一個(gè)邀請鏈接
  • 第五步篷牌、把這個(gè)鏈接發(fā)給你的小伙伴,他同意之后就可以把自己寫的代碼提交到這個(gè)倉庫了

gh-pages分支-搭建博客.

  • 需要把自已博客的網(wǎng)頁代碼上傳到github上的gh-pages分支
  • 然后就直接訪問了
    • 訪問的url形式: [github用戶名].github.io/[倉庫的名字]/[具體的頁面]

使用hexo + github創(chuàng)建博客

  • 第一步踏幻、執(zhí)行npm install hexo-cli -g 安裝hexo
  • 第二步枷颊、找到你想寫博客的文件夾,執(zhí)行hexo init blog
  • 第三步该面、在生成的文件blog中執(zhí)行hexo server夭苗,訪問http://localhost:4000/
  • 第四步、我們只需要關(guān)心source里面的_posts里面的markdown文件隔缀,這就是寫博客的文件
    • 生成新的博客文件hexo new 博客標(biāo)題
  • 第五步题造、當(dāng)我們的博客里的文章寫好的時(shí)候,我們執(zhí)行hexo generate 生成靜態(tài)的html文件
  • 第六步猾瘸、我們把public里面的發(fā)布到github上面即可
    • 在創(chuàng)建github倉庫是取名一定要去[github用戶名].github.io 例子:saber-tgb.github.io
    • 用git發(fā)送到githoub是一定要發(fā)送到master分支
    • 不用更改生成的博客html文件的css界赔,js的路徑 傳上去后路徑就會(huì)正確
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市牵触,隨后出現(xiàn)的幾起案子淮悼,更是在濱河造成了極大的恐慌,老刑警劉巖揽思,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袜腥,死亡現(xiàn)場離奇詭異,居然都是意外死亡钉汗,警方通過查閱死者的電腦和手機(jī)羹令,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來儡湾,“玉大人特恬,你說我怎么就攤上這事⌒炷疲” “怎么了癌刽?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長尝丐。 經(jīng)常有香客問我显拜,道長,這世上最難降的妖魔是什么爹袁? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任肴焊,我火速辦了婚禮显拳,結(jié)果婚禮上蝇刀,老公的妹妹穿的比我還像新娘。我一直安慰自己档址,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布邻梆。 她就那樣靜靜地躺著守伸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浦妄。 梳的紋絲不亂的頭發(fā)上尼摹,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音剂娄,去河邊找鬼蠢涝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛阅懦,可吹牛的內(nèi)容都是我干的和二。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼耳胎,長吁一口氣:“原來是場噩夢啊……” “哼儿咱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起场晶,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎怠缸,沒想到半個(gè)月后诗轻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揭北,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年扳炬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搔体。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡恨樟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出疚俱,到底是詐尸還是另有隱情劝术,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布呆奕,位于F島的核電站养晋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏梁钾。R本人自食惡果不足惜绳泉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姆泻。 院中可真熱鬧零酪,春花似錦冒嫡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛔琅,卻和暖如春胎许,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背罗售。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工辜窑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寨躁。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓穆碎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親职恳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子所禀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,656評(píng)論 9 163
  • 概述 定位 戰(zhàn)略:針對(duì)競爭對(duì)手,確定最具優(yōu)勢的位置放钦。定位是戰(zhàn)略的核心色徘。 定位,實(shí)際確定是自己在實(shí)現(xiàn)目標(biāo)的局勢中操禀,最...
    馬騁閱讀 815評(píng)論 0 4
  • 人生褂策,說長了很漫長,說短了就像那煙火一般颓屑,一瞬即過…… 煙火斤寂,是璀璨,也是短暫的揪惦。被放射到天空的那一瞬遍搞,表現(xiàn)出了最...
    芷葶閱讀 247評(píng)論 0 0
  • 星爺?shù)拇笤捨饔纬删土撕芏嘌輪T,也塑造了一個(gè)時(shí)代的經(jīng)典器腋,這毋庸置疑溪猿。無論是里面紫霞仙子的明眸善睞還是至尊寶的經(jīng)典愛情...
    家有果寶閱讀 193評(píng)論 0 0
  • 我們很難揣測彼此的內(nèi)心 但是恍惚間我好像發(fā)現(xiàn) 我變成了當(dāng)初的那個(gè)他 我和他說話 他就搖尾巴 現(xiàn)在的我是不是呢 搖搖...
    葉游神啦啦啦啦閱讀 217評(píng)論 0 0