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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Git 笔记

發(fā)布時間:2023/12/13 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git 笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

三個區(qū)域

下面三個區(qū)域,是Git虛擬的區(qū)域,看不到,摸不著。

  • 工作區(qū)
    • 工作區(qū),指的是使用Git管理后的文件,這些文件顯示在磁盤上,供我們使用或修改的區(qū)域。所以,粗略的說,項目文件夾就是工作區(qū)。
  • 暫存區(qū)域
    • 執(zhí)行 git add .之后,文件由工作區(qū),添加到了暫存區(qū)。 暫存區(qū)保存了下次將提交的文件列表信息。
  • Git 倉庫區(qū)、本地倉庫
    • 執(zhí)行 git commit -m '提交說明' 之后,代碼會被提交到倉庫區(qū)。倉庫區(qū)是 Git 中最重要的部分,代碼只有提交到倉庫,才會形成一次歷史記錄,即才會形成一個版本。

工作區(qū)新建的文件和Git沒有任何關(guān)系;文件被添加到暫存區(qū),才叫做被Git管理過

記錄每次更新到倉庫

添加文件到暫存區(qū)

新文件,只有添加到暫存區(qū),才叫做被Git管理。否則和Git沒什么關(guān)系,即使文件在項目文件夾。

# 添加指定文件到暫存區(qū) $ git add 文件名# 以空格隔開可以一次 add 多個文件 $ git add [file1] [file2] ...# 添加指定目錄到暫存區(qū),包括子目錄 $ git add [dir] [file] [dir] [file] [file] ...# 添加當(dāng)前目錄的所有文件到暫存區(qū),包括子目錄 $ git add .

提交文件到倉庫

提交到倉庫的文件,是暫存區(qū)中的文件。

# 提交暫存區(qū)到倉庫區(qū) $ git commit -m [message]# 提交暫存區(qū)的指定文件到倉庫區(qū) $ git commit [file1] [file2] ... -m [message]# 提交工作區(qū)和暫存區(qū)自上次commit之后的變化,直接到倉庫區(qū)。 # 新文件,從未被Git管理過,是不能直接提交到倉庫區(qū)的 $ git commit -a -m "提交日志"

撤銷操作

撤銷操作,只能恢復(fù)暫存區(qū)或工作區(qū),與最近一次提交的代碼一致。

# 恢復(fù)暫存區(qū)的指定文件到工作區(qū) $ git checkout [file]# 恢復(fù)暫存區(qū)的所有文件到工作區(qū) $ git checkout .# 恢復(fù)某個commit的指定文件到暫存區(qū)和工作區(qū) $ git checkout [commit版本號] [file]# 重置暫存區(qū)的指定文件,與上一次 commit 保持一致,但工作區(qū)不變 $ git reset [file]# 重置暫存區(qū)與工作區(qū),與上一次commit保持一致。該命令后不能加文件或文件夾 $ git reset --hard

前文中,git checkout 版本號 能夠?qū)⒋a退回到歷史的任何版本,但不算是嚴(yán)格意義的回退,因為它叫做版本穿梭。具體見后文的分支管理。

分支管理

什么是分支

隨著git提交的次數(shù)越來越多,就會形成由各個版本連接而成的一條提交線。如下圖:

由Git提交而形成的提交線,稱為分支。默認(rèn)的分支是主分支,叫做 master,前面的學(xué)習(xí),一直是在 master 分支上提交。

我們也可以創(chuàng)建其他分支,新創(chuàng)建的分支,相當(dāng)于是原分支的一個拷貝

實際開發(fā)中

  • 為了保證代碼的安全性,不允許在主分支上進(jìn)行開發(fā)
  • 需要創(chuàng)建其他分支,在其他分支上進(jìn)行開發(fā),這樣不會影響主分支上的代碼
  • 其他分支開發(fā)完成后,可以選擇將其他分支代碼合并到主分支上

創(chuàng)建其他分支

# 創(chuàng)建分支 git branch 分支名 # 比如 git branch dev# 切換分支到dev git checkout dev# 也可以創(chuàng)建并直接切換分支 git checkout -b dev

切換分支之前,需要把當(dāng)前分支的工作全部提交,否則不允許切換到其他分支。

實際開發(fā)中,鼓勵多使用分支。

快進(jìn)模式合并兩個分支

快進(jìn)模式合并

  • 兩個分支A和B
  • B分支包含A分支的最新版本,在合并的時候,叫做快進(jìn)模式合并。
  • 快進(jìn)模式合并,相當(dāng)于使用B分支的代碼覆蓋A分支的代碼;同時版本也會更新到A分支

兩個分支合并,比如把 B 分支 合并到A分支上

  • 需要先切換到A分支
  • 然后執(zhí)行 git merge B ,表示把B分支的代碼合并到A分支上。
# 切換到A分支 git checkout A# 把B分支的代碼合并到A分支 git merge B

合并模式合并兩個分支

合并模式

  • 兩個分支A和B
  • A分支有獨立的提交,B分支也有獨立的提交,在合并的時候,叫做合并模式的合并。
  • 合并模式,有可能會產(chǎn)生沖突;如果出現(xiàn)沖突,需要解決沖突,然后需要添加、提交一次,從而完成合并。

兩個分支合并,比如把 B 分支 合并到A分支上

  • 需要先切換到A分支
  • 然后執(zhí)行 git merge B ,表示把B分支的代碼合并到A分支上。
  • 如果看到 CONFLICT,則表示有沖突,需要打開有沖突的文件,手動解決沖突,然后添加、提交即可。
# 切換到A分支 git checkout A# 把B分支的代碼合并到A分支 git merge B

如果有沖突,會顯示如下提示:


手動打開有沖突的文件,解決沖突,保存文件。(手動解決)

再次添加(add操作)提交(commit),即可完成合并。

其他相關(guān)命令

# 查看所有分支(本地分支) git branch# 查看所有分支(包括遠(yuǎn)程分支) git branch -a# 刪除分支(需要先切換到其他分支,然后在執(zhí)行刪除) git branch -d 分支名# 創(chuàng)建并直接切換分支 git checkout -b dev

如果要切換分支,必須把當(dāng)前分支的代碼全部提交到本地倉庫。

穿梭到歷史后,如何使用歷史版本中的代碼

  • 穿梭到歷史的一個版本后,根據(jù)該版本創(chuàng)建一個分支,比如 B 分支
  • 在分支B中,修改需要使用的文件,然后提交(提交之后,后面的合并就會有沖突)
  • 回到之前的分支的最后一次提交的位置(切換回原來的分支)
  • 合并剛剛創(chuàng)建的新分支(B)即可

實際上就是為了練習(xí)分支。

遠(yuǎn)程倉庫

說明

目前,我們的操作都是一個人開發(fā),如果涉及到多人開發(fā)呢?大家的代碼如何合并到一起呢?這個時候就需要公網(wǎng)上的一臺服務(wù)器了,大家可以把代碼提交到這臺服務(wù)器上,也可以從服務(wù)器上拉取所有的代碼。這個公網(wǎng)上的服務(wù)器就叫做遠(yuǎn)程倉庫。

完全可以自己搭建一臺運(yùn)行Git的服務(wù)器,不過現(xiàn)階段,為了學(xué)Git先搭個服務(wù)器絕對是小題大作。好在這個世界上有個叫 GitHub 的神奇的網(wǎng)站,從名字就可以看出,這個網(wǎng)站就是提供Git倉庫托管服務(wù)的,所以,只要注冊一個GitHub賬號,就可以免費獲得Git遠(yuǎn)程倉庫。

實際上,除了GitHib,還有很多第三方遠(yuǎn)程倉庫托管服務(wù):

  • GitHub(這個網(wǎng)站有時很難打開)
  • 碼云(gitee)(打開速度快)
  • coding
  • Gitlab

創(chuàng)建遠(yuǎn)程賬號

配置SSH

在本地命令行,執(zhí)行下面的命令,可以生成SSH秘鑰(包含一個公鑰一個私鑰)

ssh-keygen -t rsa -C "你的郵箱地址" # 執(zhí)行完這個命令之后,后面有一些詢問,我們直接一路回車即可

最后生成的秘鑰在:

Windows: C:\Users\用戶名\.ssh // Users--用戶 GaoWei--我的計算機(jī)用戶名mac: 你的用戶名那個文件夾中。 按shift+Commend+. 可以顯示隱藏文件,然后就可以看到 .ssh文件夾了

找到 .ssh/id_rsa.pub,用vscode打開,復(fù)制里面全部的內(nèi)容,配置到遠(yuǎn)程倉庫

  • GitHub右上角的三角號
  • Settings
  • 左側(cè)有 SSH and GPG keys
  • 在顯示的界面中,點擊右上角的 New SSH key,然后完成添加公鑰操作

新建遠(yuǎn)程倉庫

將本地倉庫中的代碼推送到遠(yuǎn)程倉庫

推送的是本地倉庫的代碼。工作區(qū)和暫存區(qū)的代碼不會被推送到遠(yuǎn)程倉庫

  • 復(fù)制遠(yuǎn)程倉庫的 ssh 地址

  • 本地倉庫中,執(zhí)行

    # 添加遠(yuǎn)程倉庫地址,讓我們的本地倉庫和遠(yuǎn)程倉庫建立關(guān)聯(lián) # origin 可以自定義 git remote add origin 遠(yuǎn)程倉庫的ssh地址
  • 首次推送之前,需要先拉取遠(yuǎn)程倉庫的代碼(README.md)到本地

    git pull origin master --rebase
  • 完成首次推送

    # 如果遠(yuǎn)程沒有本地的 分支,第一次推送,需要加 -u git push -u origin master
  • 后續(xù)繼續(xù)開發(fā)

    # 改動了代碼,先添加到暫存區(qū) git add . # 提交到本地倉庫 git commit -m 'xxxx'# 推送到遠(yuǎn)程倉庫 git push

注意事項

  • 什么時候需要先拉取,然后在推送
    • 遠(yuǎn)程倉庫的提交比本地倉庫的要新,或者不一樣,都需要先拉取,然后在推送
  • 如果提示 “Are you sure you want to continue connecting (yes/no/[fi…])”
    • 輸入yes,回車

克隆遠(yuǎn)程倉庫到本地

  • 實際開發(fā)中,有些時候,我們需要把別人倉庫的代碼克隆到本地

    • 下載別人的代碼的時候,可以選擇克隆
    • 多人合作開發(fā)的時候,需要克隆合作伙伴的代碼到本地
  • 克隆命令

    git clone 遠(yuǎn)程倉庫的ssh地址
  • 克隆別人的倉庫到你的電腦中

    • 克隆,相當(dāng)于下載。可以克隆下來,但是不能向別人的倉庫推送
  • 克隆的是自己的倉庫

    • 克隆下來,也可以推送

多人協(xié)作

  • 可以先創(chuàng)建遠(yuǎn)程倉庫
  • 【可選】我先把基礎(chǔ)的代碼推送到遠(yuǎn)程倉庫
  • 合作者,需要把遠(yuǎn)程倉庫的代碼,克隆到你的計算機(jī)中
  • 管理員邀請合作者共同來開發(fā)
  • 合作者,需要同意
  • 然后,管理員和合作者,都可以向遠(yuǎn)程倉庫推送代碼
    • 推送之前,必須先拉取。拉取之后,如果有沖突,解決沖突。然后推送。

如果遇到:

點擊 “i” ,按上下左右鍵,調(diào)整光標(biāo)的位置,然后刪除里面所有的內(nèi)容,隨便寫一點也可以,但是不能太多。按esc,退出編輯模式,繼續(xù)按 “:wq” ,表示保存,并退出的意思。

后續(xù),可以push。

總結(jié)

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

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