Git介紹

Git簡單介紹

  • 什么是Git

    • Git是一款源代碼管理工具(版本控制工具)
  • 什么又是源代碼:凡是由我們手寫的代碼都稱之為源代碼

  • 源代碼有必要管理起嗎?

    • 有必要嘲玫,因為人工的去處理不同的版本悦施,做相應(yīng)備份會比較麻煩。

    • Git是linux之父當年為了維護linux---linus之前也是手動維護合并把文件發(fā)給Linus

  • 集中式和分布式

  • 集中式:Svn

  • 分布式:Git

Git命令使用

  • Git初次使用添加用戶名和郵箱

  • 配置用戶名:git config --global user.name "你的用戶名"

  • 配置郵箱 :git config --global user.email "你的郵箱"

  • 刪除錯誤配置 :git config --global --unset "錯誤的key刪除掉"

  • 查看配置 :git config --list

  • 去任何一家公司現(xiàn)完成上面的步驟

  • 初始化一個空的倉儲

  • 初始化空倉儲:git init

  • 這個命令會在當前目錄中新建一個隱藏的名為.git的文件夾,里面存儲的是項目的各個版本去团。

  • 千萬不要更改.git目錄里文件抡诞。

  • 查看當前目錄文件的狀態(tài)

  • 命令 : git status

    • 查看當前工作目錄的狀態(tài),是已經(jīng)放到暫存區(qū)土陪,還是提交到倉庫了昼汗。
  • 或命令: git status -s

    • 查看簡要的狀態(tài)信息
  • 將文件添加到暫存區(qū)

  • 命令: git add ./file.txt

    • 將當前目錄中的file.txt添加到暫存區(qū)
  • 或者: git add .

    • 表示將當前目錄所有文件都添加的暫存區(qū).

    • 這是批量添加.

可以對文件執(zhí)行多次add命令,都會把最新的修改添加到暫存鬼雀,但是顷窒,后頁面執(zhí)行add命令,會把前面執(zhí)行add命令添加到暫存區(qū)的文件覆蓋(相同的文件會覆蓋)

  • 將文件添加到倉儲中

  • 命令 : git commit -m "這次我添加了一個變量"

    • -m 表示需要指定一個字符串源哩,表示本次提交的代碼與上一次相比多了哪些功能鞋吉,或者是做了哪些修改。

    • 每次提交時都需要寫上相應(yīng)的字符串以做出說明

  • 或命令: git commit -m -c

  • -c 表示可以在提交時励烦,不提供說明谓着。

  • 不推薦這么做,不利于后期代碼維護

  • 提交時只是提交暫存區(qū)的代碼坛掠,沒有添加到暫存區(qū)的代碼不會提交

  • 查看日志

  • 命令:git log

  • 或命令:git log --oneline

  • 以圖形化查看:git log –graph

  • 忽略文件

  • 不要省略/ 除非有必要

  • 需要新建一個名為: .gitignore 的文件

  • 這個文件話.git同級目錄.

    • 該文件用來告訴我們的git哪些文件不要被添加一倉儲中赊锚。

    • 忽略某個目錄: /node_modules

    • 忽略某個文件: /css/my.css

    • 忽略某一類文件: /css/*.css

    • 忽略目錄下所有文件: .

    • 忽略所有名為node_modules的目錄: node_modules

    • ‘#’號表示注釋

  • 版本回退

  • 命令:git reset --hard Head

    • 回到最近一次提交的版本的文件狀態(tài)

    • git指向的是上一次提交

    • 'git reset --hard Head^^ 表示回到最近往前第二次的提交'

    • Head后面的^表示回退到第幾次

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

    • 表示回到最近一次提交的前一次提交.

    • Head~2,回退到最近一次提交的前2次提交.

  • 命令: git reset --hard [版本號]

    • 示例: git reset --hard 12dad211

    • 回退到某個具體的版本治筒。

    • 可以配合git reflog命令查看歷史操作來進行回退

  • 這里進行版本回退,并不會對文件進行真實的刪除

  • 通過git reflog 可以查看到每一次對版本的切換來提交舷蒲。

  • 創(chuàng)建Git分支耸袜,并切換分支

    • 正在做功能呢,才做了一半牲平,但是為了不丟失代碼要提交堤框,又不能影響別人工作。
  • 查看有多少分支

    • git branch
  • 命令: git branch dev

    • 創(chuàng)建了一個名為dev的分支
  • 命令: git checkout dev

    • 切換到dev分支
  • 創(chuàng)建并切換到指定分支

    • git checkout -b dev
  • 合并Git分支

  • 畫圖

  • 命令: git merge dev

    • 表示將當前分支與dev分支合并

    • 在主分支下執(zhí)行合并命令.

  • 命令: git branch -d dev

    • 表示刪除dev分支,當合并分支后欠拾,如果不需要再使用dev分支胰锌,則可以直接刪除骗绕。

    • 不要在dev分支執(zhí)行這個命令藐窄,在別的的分支執(zhí)行.

  • 解決沖突

    • 應(yīng)該是如何合并沖突。

    • 沖突是不可避免的酬土。

  • 當在新功能完成后合并前荆忍,修改并提交了主分支對應(yīng)的文件,合并時兩個分支中的文件有沖突撤缴。

  • 手動修改文件刹枉,然后提交

Git原理以及常用步驟

  • Git內(nèi)部結(jié)構(gòu)

  • 為了更好的學(xué)習(xí)Git,我們們必須了解Git管理我們文件的3種狀態(tài)屈呕,分別是已提交(committed)微宝、已修改(modified)和已暫存(staged)
    ,由此引入 Git 項目的三個工作區(qū)域的概念:Git 倉庫虎眨、工作目錄以及暫存區(qū)域蟋软。 Git倉庫目錄是Git用來保存項目的元數(shù)據(jù)和對象數(shù)據(jù)庫的地方。 這是Git 中最重要的部分嗽桩,從其它計算機克隆倉庫時岳守,拷貝的就是這里的數(shù)據(jù)。 工作目錄是對項目的某個版本獨立提取出來的內(nèi)容碌冶。 這些從Git倉庫的壓縮數(shù)據(jù)庫中提取出來的文件湿痢,放在磁盤上供你使用或修改。 暫存區(qū)域是一個文件扑庞,保存了下次將提交的文件列表信息譬重,一般在Git倉庫目錄中。有時候也被稱作“索引”(Index)罐氨,不過一般說法還是叫暫存區(qū)域害幅。

  • 基本的Git工作流程如下:

    • 1、在工作目錄中修改文件岂昭。

    • 2以现、暫存文件狠怨,將文件的快照放入暫存區(qū)域。

    • 3邑遏、提交更新佣赖,找到暫存區(qū)域的文件,將快照永久性存儲到Git倉庫目錄记盒。

  • git本地基本操作步驟

  • 1.新建一個項目文件夾憎蛤,進行文件夾中,打git bash執(zhí)行命令: git init

    • 初始化一個git倉儲,其實就是一個隱藏的.git文件夾

    • 不要輕易改變里面文件

  • 2.開始新文件,寫我們的代碼纪吮,寫完一個功能俩檬,執(zhí)行命令:git add [文件路徑]

    • 示例:git add ./READEME.md

    • 表示要把相應(yīng)的文件添加到暫存區(qū),暫存區(qū)和倉儲其實都在.git目錄中

    • 批量添加 git add . 或者 git add *

  • 3.把添加到暫存區(qū)的文件提交到倉儲中.

    • 命令: git commit -m "這時寫類似注釋的東西"

    • 注意:在提交之前需要配置個人信息 git config --global user.name "xiaoming"
      git config --global user.email "xiaoming@sina.cn"

  • 4.所有需要備份或者提交的文件及目錄都必須在.git所在目錄。不要超出.git所在目錄

x: 在這幾步前后碾盟,都可以執(zhí)行命令:git status

  • 撤銷操作
  • 撤銷已修改狀態(tài) git checkout -- 文件路徑
    • 撤銷addgit status 先看一下add 中的文件 git reset HEAD 如果后面什么都不跟的話 就是上一次add 里面的全部撤銷了 git reset HEAD XXX/XXX/XXX.html 就是對某個文件進行撤銷了

    • 撤銷 commitgit reset HEAD

Git網(wǎng)上操作

  • gitHub棚辽、gitLab和國內(nèi)的git網(wǎng)站

    • 這些托管網(wǎng)站就相當于 百度云盤、360云盤 只不過這里上傳的是源代碼而不是其他東西

    • gitHub大部分收費 官網(wǎng)地址

    • gitLab大部分免費 官網(wǎng)地址

  • git clone

    • 命令:'git clone [倉儲地址]'

    • 會把指定倉儲的整個下載來

    • 如果不需要下載整個倉儲冰肴,只需要最新的一次提交,加上參數(shù)--depth

  • 登錄

  • 直接通過賬號密碼登錄屈藐,太麻煩了

  • 通過SSH登錄,不用在輸入用戶名和密碼

    • 1.在任意位置輸入 ssh-keygen -t rsa 創(chuàng)建rsa密鑰

    • 2.將rsa密鑰給網(wǎng)站

    • 3.選clone路徑的時候選擇ssh登錄

  • push(推送)

  • 命令:git push [地址] master

  • 或命令:git push origin master

  • pull(拉回)

  • 命令:git pull [地址] master

  • 或命令:git pull origin master

  • remote命令使用

  • git remote add “主機名稱” “遠程倉庫地址”添加遠程主機熙尉,即給遠程主機起個別名联逻,方便使用

  • git remote rm“主機名稱” 命令用于刪除遠程主機。

  • git remote 可以查看已添加的遠程主機

  • git remote show “主機名稱”可以查看遠程主機的信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末检痰,一起剝皮案震驚了整個濱河市包归,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铅歼,老刑警劉巖公壤,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谭贪,居然都是意外死亡境钟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門俭识,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慨削,“玉大人,你說我怎么就攤上這事套媚「刻” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵堤瘤,是天一觀的道長玫芦。 經(jīng)常有香客問我,道長本辐,這世上最難降的妖魔是什么桥帆? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任医增,我火速辦了婚禮,結(jié)果婚禮上老虫,老公的妹妹穿的比我還像新娘叶骨。我一直安慰自己,他們只是感情好祈匙,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布忽刽。 她就那樣靜靜地躺著,像睡著了一般夺欲。 火紅的嫁衣襯著肌膚如雪跪帝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天些阅,我揣著相機與錄音伞剑,去河邊找鬼。 笑死扑眉,一個胖子當著我的面吹牛纸泄,可吹牛的內(nèi)容都是我干的赖钞。 我是一名探鬼主播腰素,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雪营!你這毒婦竟也來了弓千?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤献起,失蹤者是張志新(化名)和其女友劉穎洋访,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谴餐,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡姻政,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岂嗓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汁展。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖厌殉,靈堂內(nèi)的尸體忽然破棺而出食绿,到底是詐尸還是另有隱情,我是刑警寧澤公罕,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布器紧,位于F島的核電站,受9級特大地震影響楼眷,放射性物質(zhì)發(fā)生泄漏铲汪。R本人自食惡果不足惜熊尉,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掌腰。 院中可真熱鬧帽揪,春花似錦、人聲如沸辅斟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽士飒。三九已至查邢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酵幕,已是汗流浹背扰藕。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芳撒,地道東北人邓深。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像笔刹,于是被迫代替她去往敵國和親芥备。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

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

  • 一:Git是什么舌菜? Git是目前世界上最先進的分布式版本控制系統(tǒng)萌壳。 二:SVN與Git的最主要的區(qū)別? SVN是集...
    2015哈哈哈閱讀 458評論 1 3
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git日月,從https:/...
    落魂灬閱讀 12,663評論 4 54
  • Git是目前最流行的版本管理系統(tǒng)袱瓮,也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,700評論 1 17
  • 逐漸走進了七月,我卻還沉醉在我五月的春風(fēng)里爱咬,的確尺借,時光荏苒,夏天他來了精拟。 坐在教室里燎斩,聽到第一聲蟬鳴,不由感嘆時光...
    迷之深閱讀 180評論 0 101
  • “這條動態(tài)好有趣谨读!我要把它發(fā)到朋友圈上讓朋友們看√秤酰” “哇劳殖,鹿晗的微博又發(fā)動態(tài)啦铐尚!這次一定要搶個沙發(fā)!” …………...
    新華仔閱讀 201評論 0 0