日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Git】git的基本使用

發(fā)布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Git】git的基本使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

      • Git
        • 一、git的基礎(chǔ)知識
          • 1.三種版本控制
          • 2.Git與SVN的主要區(qū)別
        • 二、git 創(chuàng)建倉庫
        • 三、git的必要配置
        • 四、git的基本原理
          • 1.三個區(qū)域
          • 2.工作流程
        • 五、git 基本操作
        • 六、git的提交文檔
          • 1.忽略文件
        • 七、配置ssh公鑰
        • 八、使用idea中集成Git
        • 九、git分支
        • 十、git查看提交歷史

Git

一、git的基礎(chǔ)知識

1.三種版本控制

本地版本控制

集中版本控制 SVN

分布式版本控制 Git

2.Git與SVN的主要區(qū)別

SVN是集中式版本控制系統(tǒng),版本庫是集中放在中央服務(wù)器的,而工作的時候,用的都是自己的電腦,所以首先要從中央服務(wù)器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服務(wù)器。集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作,對網(wǎng)絡(luò)帶寬要求較高。

Git是分布式版本控制系統(tǒng),沒有中央服務(wù)器,每個人的電腦就是一個完整的版本庫,工作的時候不需要聯(lián)網(wǎng)了,因為版本都在自己電腦上。協(xié)同的方法是這樣的:比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。Git可以直接看到更新了哪些代碼和文件!

二、git 創(chuàng)建倉庫

# 1-1 使用當(dāng)前目錄作為git倉庫,并初始化它,執(zhí)行完該命令后,目錄中會生成一個 .git目錄 git init# 1-2 選擇指定目錄作為git倉庫,若不存在就創(chuàng)建該目錄;執(zhí)行完該命令后,會在gitTest目錄中生成一個.git目錄 git init gitTest# 2 從git倉庫中clone項目 git clone [url|address]

三、git的必要配置

#查看配置的列表清單 git config -l #查看系統(tǒng)的配置 git config --system --list #查看本地配置(用戶自己配置的) git config --global --list #設(shè)置本地名和本地郵箱 git config --global user.name "FFIDEAL" git config --global user.email "1359975927@qq.com"

四、git的基本原理

1.三個區(qū)域

Git本地有三個工作區(qū)域:工作目錄(Working Directory)、暫存區(qū)(Stage/Index)、資源庫(Repository或Git Directory)。如果在加上遠程的git倉庫(Remote Directory)就可以分為四個工作區(qū)域。文件在這四個區(qū)域之間的轉(zhuǎn)換關(guān)系如下:

  • Workspace:工作區(qū),就是你平時存放項目代碼的地方
  • Index / Stage:暫存區(qū),用于臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息
  • Repository:倉庫區(qū)(或本地倉庫),就是安全存放數(shù)據(jù)的位置,這里面有你提交到所有版本的數(shù)據(jù)。其中HEAD指向最新放入倉庫的版本
  • Remote:遠程倉庫,托管代碼的服務(wù)器,可以簡單的認(rèn)為是你項目組中的一臺電腦用于遠程數(shù)據(jù)交換

本地的三個區(qū)域確切的說應(yīng)該是git倉庫中HEAD指向的版本:

  • Directory:使用Git管理的一個目錄,也就是一個倉庫,包含我們的工作空間和Git的管理空間。
  • WorkSpace:需要通過Git進行版本控制的目錄和文件,這些目錄和文件組成了工作空間。
  • .git:存放Git管理信息的目錄,初始化倉庫的時候自動創(chuàng)建。
  • Index/Stage:暫存區(qū),或者叫待提交更新區(qū),在提交進入repo之前,我們可以把所有的更新放在暫存區(qū)。
  • Local Repo:本地倉庫,一個存放在本地的版本庫;HEAD會只是當(dāng)前的開發(fā)分支(branch)。
  • Stash:隱藏,是一個工作狀態(tài)保存棧,用于保存/恢復(fù)WorkSpace中的臨時狀態(tài)。
2.工作流程

git的工作流程一般是這樣的:

1、在工作目錄中添加、修改文件;

2、將需要進行版本管理的文件放入暫存區(qū)域;

3、將暫存區(qū)域的文件提交到git倉庫。

因此,git管理的文件有三種狀態(tài):已修改(modified),已暫存(staged),已提交(committed)

五、git 基本操作

# 1.本地->遠程,本地代碼提交到暫存區(qū) git add .# 2.暫存區(qū)代碼提交到本地倉庫 git commit -m [message]# 3.本地倉庫提交到遠程倉庫 git push# 4.遠程->本地,遠程代碼直接下載到本地 git clone [url]# 5.查看倉庫當(dāng)前的狀態(tài),顯示有變更的文件。 git status# 6.比較文件的不同,即暫存區(qū)和工作區(qū)的差異。 git diff [file]# 7-1.回退上上個版本 git reset head^^ [file] # 7-2.回退上上個版本 git reset hard head^2 [file] # 7-3.回退到指定版本 git reset 56152

HEAD 說明:

  • HEAD 表示當(dāng)前版本
  • HEAD^ 上一個版本
  • HEAD^^ 上上一個版本
  • HEAD^^^ 上上上一個版本
  • 以此類推…

可以使用 ~數(shù)字表示

  • HEAD~0 表示當(dāng)前版本
  • HEAD~1 上一個版本
  • HEAD^2 上上一個版本
  • HEAD^3 上上上一個版本
  • 以此類推…
# 8.刪除指定文件 git rm [file]# 9-1.從遠程獲取代碼并合并本地的版本(git pull 其實就是 git fetch 和 git merge FETCH_HEAD 的簡寫) git pull origin master # 9-2.將遠程主機 origin 的 master 分支拉取過來,與本地的 brantest 分支合并。 git pull origin master:brantest # 9-3.如果遠程分支是與當(dāng)前分支合并,則冒號后面的部分可以省略。 git pull origin master# 10-1.命用于從將本地的分支版本上傳到遠程并合并(其實就是git fetch和git merge FETCH_HEAD的簡寫) git push <遠程主機名> <本地分支名>:<遠程分支名> git push origin master:master

六、git的提交文檔

版本控制就是對文件的版本控制,要對文件進行修改、提交等操作,首先要知道文件當(dāng)前在什么狀態(tài),不然可能會提交了現(xiàn)在還不想提交的文件,或者要提交的文件沒提交上。

  • Untracked: 未跟蹤, 此文件在文件夾中, 但并沒有加入到git庫, 不參與版本控制. 通過git add 狀態(tài)變?yōu)镾taged.
  • Unmodify: 文件已經(jīng)入庫, 未修改, 即版本庫中的文件快照內(nèi)容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變?yōu)镸odified. 如果使用git rm移出版本庫, 則成為Untracked文件
  • Modified: 文件已修改, 僅僅是修改, 并沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存staged狀態(tài), 使用git checkout 則丟棄修改過, 返回到unmodify狀態(tài), 這個git checkout即從庫中取出文件, 覆蓋當(dāng)前修改 !
  • Staged: 暫存狀態(tài). 執(zhí)行g(shù)it commit則將修改同步到庫中, 這時庫中的文件和本地文件又變?yōu)橐恢? 文件為Unmodify狀態(tài). 執(zhí)行g(shù)it reset HEAD filename取消暫存, 文件狀態(tài)為Modified

流程

# 11.查看文件狀態(tài) git status # 12.將本地代碼加在暫存區(qū) git add . # 13.將暫存區(qū)中的代碼加載到本地倉庫 git commit -m "new file hello.txt"
1.忽略文件

有些時候我們不想把某些文件納入版本控制中,比如數(shù)據(jù)庫文件,臨時文件,設(shè)計文件等

在主目錄下建立".gitignore"文件,此文件有如下規(guī)則:

  • 忽略文件中的空行或以井號(#)開始的行將會被忽略。
  • 可以使用Linux通配符。例如:星號(*)代表任意多個字符,問號(?)代表一個字符,方括號([abc])代表可選字符范圍,大括號({string1,string2,…})代表可選的字符串等。
  • 如果名稱的最前面有一個感嘆號(!),表示例外規(guī)則,將不被忽略。
  • 如果名稱的最前面是一個路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略。
  • 如果名稱的最后面是一個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非文件(默認(rèn)文件或目錄都忽略)。
  • #為注釋*.txt #忽略所有 .txt結(jié)尾的文件,這樣的話上傳就不會被選中! !lib.txt #但lib.txt除外 /temp #僅忽略項目根目錄下的TODO文件,不包括其它目錄 tempbuild/ #忽略build/目錄下的所有文件 doc/*.txt #會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

    七、配置ssh公鑰

    1.使用GitHub或碼云注冊一個賬號,我這里以github為例。與github相連

    $ ssh-keygen #在c/Users/dell/.ssh生成文件 加密算法ssh-keygen -t rsa

    2.設(shè)置本機綁定SSH公鑰,實現(xiàn)免密碼登錄!(免密碼登錄,這一步挺重要的,碼云是遠程倉庫,我們是平時工作在本地倉庫!)

    在c/Users/dell/.ssh找到id_rsa.pub,將里面的公鑰復(fù)制到

    3.使用github新建一個自己的倉庫


    通過

    git clone https://github.com/dflion/MyFirstGit.git

    將該倉庫下載下來

    八、使用idea中集成Git

    1.將遠程下載的代碼copy到當(dāng)前項目中(高效方便)


    2.修改文件,使用idea操作git提交

    可以在命令行中提交

    #提交三部曲 #1.將本地文件上傳到暫存區(qū) $ git add . #2.將暫存區(qū)文件上傳到本地倉庫中 $ git commit #3.將本地倉庫中的文件上傳到遠程倉庫中 $ git push#在Github上創(chuàng)建好Git倉庫之后我們就可以和本地倉庫進行關(guān)聯(lián)了, #根據(jù)創(chuàng)建好的Git倉庫頁面的提示,可以在本地test倉庫的命令行輸入: $ git remote add origin https://github.com/dflion/-SpringBoot-.git#關(guān)聯(lián)好之后我們就可以把本地庫的所有內(nèi)容推送到遠程倉庫(也就是Github)上了,通過: $ git push -u origin master#如果新建遠程倉庫不是空的,例如你勾選了 Initialize this repository with a README。那么你通過命令 $ git push -u origin master是會報錯,這是由于你新創(chuàng)建的那個倉庫里面的README文件不在本地倉庫目錄中,這時我們可以通過以下命令先將內(nèi)容合并以下: $ git pull --rebase origin master 再輸入$ git push origin master。等遠程倉庫里面有了內(nèi)容之后,下次再從本地庫上傳內(nèi)容的時候只需下面這樣就可以了: $ git push origin master。 至此就完成了將本地項目上傳到Github的整個過程。

    九、git分支

    # 14-1.查看分支 git branch # 14-2.查看遠程的分支 git branch -r # 14-3.新建一個分支,但停留在當(dāng)前分支 git branch dev # 14-4.新建一個分支,并切換分支 git checkout -b [branch] # 14-5.已有的兩個分支之間的切換 git checkout [branch] # 14-6.合并指定分支到當(dāng)前分支 git merge [branch] # 14-7.刪除分支 git branch -d [branch-name] # 14-8.刪除遠程分支 git push origin --delete [branch-name] git branch -dr [remote/branch]

    多個分支如果并行執(zhí)行,就會導(dǎo)致版本不沖突,也就是同時存在多個版本

    如果同一個文件在合并分支時都被修改了則會引起沖突:解決的辦法是我們可以修改沖突文件后重新提交!選擇要保留他的代碼還是你的代碼!

    十、git查看提交歷史

    # 15-1.查看歷史提交記錄。 git log # 15-2.查看歷史記錄的簡潔的版本 git log --oneline# 16.-a 選項意為"創(chuàng)建一個帶注解的標(biāo)簽"。 git tag -a v1.0 de54f7

    總結(jié)

    以上是生活随笔為你收集整理的【Git】git的基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。