GIT

Git

什么是Git

  • Git是一款免費(fèi)、開(kāi)源的分布式 版本控制軟件 VCS - Version Control System
  • 最初目的是為更好地管理 Linux內(nèi)核 開(kāi)發(fā)而設(shè)計(jì)

Git的優(yōu)勢(shì)

  • Git的速度快,性能好
  • 有效、高速的處理從很小到非常大的項(xiàng)目版本管理
  • 采用分布式存儲(chǔ)方式,不需要服務(wù)器就可以運(yùn)行
  • 使得源代碼的發(fā)布和交流極其方便

兩種版本控制工具

  • 集中式版本控制工具: SVN
  • 分布式版本控制工具: Git

集中式和分布式的區(qū)別

  • 1 集中式依賴(lài)于遠(yuǎn)程服務(wù)器,在沒(méi)有網(wǎng)絡(luò)的情況下無(wú)法提交
  • 2 所有開(kāi)發(fā)者都共享一個(gè)遠(yuǎn)程服務(wù)器
  • 3 分布式直接進(jìn)行本地存儲(chǔ),不依賴(lài)與遠(yuǎn)程服務(wù)器(可有可無(wú))
  • 4 沒(méi)有網(wǎng)絡(luò)的情況下,也可以工作,有網(wǎng)了,將本地修改內(nèi)容全部提交到遠(yuǎn)程服務(wù)器

Git的基本使用

  • 查看幫助:git --help
  • 查看某一命令幫助:git add -h

基礎(chǔ)配置

  • 需要配置:user.name 和 user.email
  • 作用:每次 Git 提交時(shí)都會(huì)引用這兩條信息,記錄是誰(shuí)提交了更新
  • 配置用戶(hù)名: git config --global user.name "用戶(hù)名"
  • 配置郵箱: git config --global user.email "郵箱地址"
  • 查看配置信息: git config --list
  • 使用 --global 實(shí)現(xiàn)全局配置,任何位置使用git都有效

初始化倉(cāng)庫(kù)

  • 命令:git init 一般是在項(xiàng)目的根目錄執(zhí)行這個(gè)命令

  • 作用:使用Git管理項(xiàng)目的初始化操作,會(huì)創(chuàng)建一個(gè)名為.git的隱藏目錄

    該目錄非常重要,每次克隆鏡像倉(cāng)庫(kù)的時(shí)候,實(shí)際拷貝的就是這個(gè)目錄里面的數(shù)據(jù)。

跟蹤文件

  • 作用:將文件由 工作區(qū) 添加到 暫存區(qū)(Index),暫存文件
  • 命令:git add文件路徑
    • 例如: git add ./README.md
  • git add --all 或者 git add -A(簡(jiǎn)寫(xiě)) 添加所有文件
  • git add a.txt b.txt 同時(shí)添加兩個(gè)文件
  • git add *.js 添加當(dāng)前目錄下的所有js文件

提交更新

  • 作用:將文件由 暫存區(qū) 添加到 倉(cāng)庫(kù)(HEAD)
  • git commit -m "提交說(shuō)明"

查看文件狀態(tài)

  • 命令:git status
  • 命令:git stauts -s 簡(jiǎn)化日志輸出格式

提交代碼

  • 三個(gè)存儲(chǔ)分區(qū)的說(shuō)明:
1 工作區(qū):開(kāi)發(fā)者的工作目錄
2 暫存區(qū):臨時(shí)存放工作目錄中變更的文件
3 倉(cāng)庫(kù)  :存儲(chǔ)提交之后的文件目錄
  • 文件的三種狀態(tài): ``` 已修改(modified)=> 已暫存(staged)=> 已提交(committed)

已修改表示修改了某個(gè)文件,但還沒(méi)有提交保存 已暫存表示把已修改的文件放在下次提交時(shí)要保存的清單中 已提交表示該文件已經(jīng)被安全地保存在本地git倉(cāng)庫(kù)中了

Git工作流程

  • 1 在工作目錄中修改某些文件。
  • 2 對(duì)修改后的文件進(jìn)行快照,然后保存到暫存區(qū)域。
  • 3 提交更新,將保存在暫存區(qū)域的文件快照永久轉(zhuǎn)儲(chǔ)到.git目錄中。

查看提交日志

  • 命令:git log 查看詳細(xì)的提交信息
  • 命令:git log --oneline 簡(jiǎn)潔的日志信息
  • 命令:git reflog 查看所有提交變更操作

版本回退

  • 作用:恢復(fù)到已經(jīng)提交的某一個(gè)版本中
  • 命令:git reset --hard [版本號(hào)]
    • 作用:回退到指定的版本號(hào)
  • 其他方式:git reset --hard head~1
    • ~1 表示回到上一次提交
    • ~2 表示上上一次提交
    • ~0 表示當(dāng)前提交

忽略文件

  • 作用:忽略一些不需要被git管理的文件

    1 在與 .git 隱藏目錄同級(jí)的目錄中創(chuàng)建 .gitignore 文件

    2 打開(kāi) .gitignore 文件,加入忽略文件,例如:/test.html

    3 路徑是相對(duì)于當(dāng)前 .gitignore文件 的路徑

  • 1 使用 # 表示注釋?zhuān)纾?code># 這是注釋內(nèi)容

  • 2 使用 * 表示通配符,匹配所有文件,例如:/css/*.css

.DS_Store
node_modules/
dist/
npm-debug.log
yarn-error.log

# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln

分支

  • 查看分支:git branch,當(dāng)前分支會(huì)標(biāo)有一個(gè)*
  • 創(chuàng)建分支:git branch [分支名稱(chēng)]
    • 分支中的代碼,與創(chuàng)建那一刻主分支中的內(nèi)容完全相同
  • 切換分支:git checkout [分支名稱(chēng)]
  • (簡(jiǎn)寫(xiě))創(chuàng)建并切換分支:git checkout -b [分支名稱(chēng)]
  • 合并分支:git merge [分支名稱(chēng)],即:將其他分支合并到當(dāng)前分支
  • 刪除分支:git branch -d [分支名稱(chēng)]

合并分支沖突

  • 注意:合并分支時(shí)出現(xiàn)沖突只能手動(dòng)處理文件,然后,再次提交

分支的說(shuō)明

  • 1 公司開(kāi)發(fā)的項(xiàng)目都是由多個(gè)分支組成:主分支 + dev分支
  • 2 項(xiàng)目經(jīng)理新建項(xiàng)目倉(cāng)庫(kù),所有的程序員都從這個(gè)倉(cāng)庫(kù)中獲取代碼,完成開(kāi)發(fā)任務(wù)
  • 3 項(xiàng)目經(jīng)理:搭建設(shè)計(jì)倉(cāng)庫(kù),創(chuàng)建master分支,以及dev分支(以及 debug分支等)
  • 4 所有的程序員在 dev分支 上進(jìn)行開(kāi)發(fā),并且還有自己維護(hù)的分支
  • 5 程序員在分支上完成開(kāi)發(fā)任務(wù)后,會(huì)提交合并請(qǐng)求
  • 6 項(xiàng)目經(jīng)理安排測(cè)試,如果沒(méi)有問(wèn)題了,最后才會(huì)與 master 分支合并

獲取遠(yuǎn)程倉(cāng)庫(kù)內(nèi)容

  • 命令:git pull [倉(cāng)庫(kù)地址] [分支名稱(chēng)] 獲取遠(yuǎn)程倉(cāng)庫(kù)最新內(nèi)容
  • 命令:git clone [倉(cāng)庫(kù)地址] [自定義本地倉(cāng)庫(kù)名] 將整個(gè)倉(cāng)庫(kù)克隆到本地
    • 實(shí)例:git clone git://github.com/jquery/jquery.git myJQ

將代碼提交到遠(yuǎn)程倉(cāng)庫(kù)(HTTPS)

  • 1 在本地創(chuàng)建倉(cāng)庫(kù)
    • git init
  • 2 新建 README.md 文件,并輸入任意內(nèi)容
  • 3 將 README.md 提交到本地
    • git add
    • git commit
  • 4 在github中新建倉(cāng)庫(kù),并拿到倉(cāng)庫(kù)地址
  • 5 使用命令 git push [倉(cāng)庫(kù)地址] master 提交內(nèi)容到github的默認(rèn)分支
  • 6 刷新github倉(cāng)庫(kù)頁(yè)面,在線修改 README.md 文件,并提交
  • 7 使用命令 git pull [倉(cāng)庫(kù)地址] master 獲取倉(cāng)庫(kù)中的最新內(nèi)容
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 安裝Git Git的下載地址:Git官網(wǎng)下載地址 Git本地倉(cāng)庫(kù)和命令 配置用戶(hù) 下載完Git后,右鍵會(huì)有一個(gè)Gi...
    TokyoZ閱讀 4,637評(píng)論 1 7
  • Git 是目前最流行的分布式版本控制系統(tǒng)之一。 版本控制指的是,記錄每次版本變更的內(nèi)容和時(shí)間等細(xì)節(jié),保留各版本之間...
    神齊閱讀 1,515評(píng)論 0 7
  • (預(yù)警:因?yàn)樵敿?xì),所以行文有些長(zhǎng),新手邊看邊操作效果出乎你的預(yù)料) 一:Git是什么? Git是目前世界上最先進(jìn)的...
    axiaochao閱讀 2,008評(píng)論 1 8
  • 一、基本概念: 注:對(duì)于git的分布式概念及其優(yōu)點(diǎn),不重復(fù)說(shuō)明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大廠offer閱讀 1,559評(píng)論 0 3
  • 說(shuō)一件令我開(kāi)心到起飛的事情,我!成功的!影響到!一個(gè)戰(zhàn)友!加入!007大家庭啦!喲吼~有點(diǎn)爽~ 你好,我是七月,一...
    七月喲閱讀 312評(píng)論 2 0

友情鏈接更多精彩內(nèi)容