Git安裝使用教程

# 《Git 操作使用教程》

一、Git 簡介

????????Git 是一個分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。它讓開發者可以輕松地跟蹤代碼的更改、與團隊成員協作,并管理項目的不同版本。

二、安裝 Git

  1. 在 Windows 系統上,可以從 Git 官方網站下載安裝程序進行安裝。
  2. 在 Linux 系統上,可以使用包管理器(如 Ubuntu 上的 `apt-get` )來安裝 Git。
  3. 在 macOS 上,可以通過 Homebrew 或者從 Git 官方網站下載安裝。

????????下載地址:Git - Downloads (git-scm.com)

三、?Git 中一些常見的概念

  • 1. 工作區(Working Directory)

????????這是您日常進行項目開發和編輯文件的地方,就是您電腦上能看到和操作的本地目錄。例如,您正在編寫的代碼文件所在的文件夾就是工作區。

  • 2. 暫存區(Staging Area 或 Index)

????????當您對工作區中的文件進行修改后,可以將這些修改添加到暫存區。暫存區就像是一個臨時的緩沖區,您可以選擇將哪些修改納入下一次的提交。比如說,您修改了多個文件,但只想先提交其中一部分的修改,就可以把要提交的部分放入暫存區。

  • 3. 本地倉庫(Local Repository)

????????這是在您本地計算機上存儲項目完整版本歷史的地方。每次提交都會在本地倉庫中創建一個新的版本。比如,您在項目開發過程中多次進行提交,這些提交的記錄都保存在本地倉庫中。

  • 4. 分支(Branch)

????????分支允許您在項目的不同版本或功能開發線上獨立工作。常見的分支有主分支(通常是?master?或?main?)以及各種功能分支。例如,您可以創建一個名為?feature-x?的分支來開發新的功能,而不影響主分支的穩定。

  • 5. 提交(Commit)

????????提交是將您在工作區中的修改進行保存并記錄的操作。每次提交都包含了一個描述信息,說明這次修改的內容和目的。假設您完成了一個功能模塊的一部分開發,并對相關代碼進行了修改和測試,就可以將這些修改作為一次提交。

  • 6. 遠程倉庫(Remote Repository)

????????通常位于代碼托管平臺(如 GitHub、GitLab 等)上,用于團隊成員之間共享代碼和協作。比如,團隊中的其他成員可以從遠程倉庫獲取您的提交和代碼更改。

  • 7. 合并(Merge)

????????當不同分支上的開發工作完成后,可以將它們合并到一起。例如,將?feature-x?分支上完成的功能合并到主分支。

  • 8. 沖突(Conflict)

????????當在合并分支時,如果不同分支對同一文件的相同部分進行了不同的修改,就會產生沖突。這需要手動解決沖突,以確保合并的結果是正確的。比如,兩個分支都修改了同一個函數的實現,就可能出現沖突。

????????這些是 Git 中一些基礎且重要的概念,理解它們對于有效地使用 Git 進行版本控制和團隊協作至關重要。

四、Git工作流程圖

?????

五、Git 的基本操作流程

  • 1、初始化本地倉庫

????????在您的項目目錄中(示例目錄:D:\dev\idea-workplace\test_git),鼠標右鍵--->open Git Bash here,打開Git命令行工具

????????使用?git init?命令將其初始化為一個 Git 本地倉庫。

????????將會在當前目錄生成一個.git的隱藏文件夾,存放當前項目本地倉庫的配置信息,不要刪除或修改。執行命令(ll -a)查看當前目錄下的所有文件或文件夾(包括隱藏文件):

ll -a

????????進入.git文件夾查看

  • 2、設置簽名?

? ? ? ? 本地倉庫創建后需要先設置簽名,主要作用是區分不同開發人員的身份。

????????在以上初始化本地倉庫的目錄“D:\dev\idea-workplace\test_git”下執行以下命令設置簽名:

# 通過參數區分簽名的生效范圍# 1、倉庫級別(或項目級別,不使用參數:--global):僅在當前本地庫范圍內有效git config user.name "Your Name"
git config  user.email "your_email@example.com"# 2、系統用戶級別(使用參數:--global):登錄當前操作系統的用戶范圍均有效git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"級別優先級
1、就近原則:項目級別優先于系統用戶級別,二者都有時優先采用項目級別的簽名
2、如果只有系統用戶級別的簽名,就以系統用戶級別的簽名為準
3、二者都沒有不允許

將?Your Name?替換為您的姓名,your_email@example.com?替換為您的郵箱。

示例1:系統用戶級別簽名

示例2:倉庫(項目級別)簽名

????????當設置系統用戶級別簽名時,會在系統當前登陸用戶的home目錄下生成一個.gitconfig的隱藏文件記錄用戶名和email。

?????????cat命令查看信息

  • 3、添加工作區文件到暫存區(git add)

????????使用?git add <文件名>?逐個添加文件,或者使用?git add.?添加當前目錄下的所有修改和新增的文件。

########################創建文件并添加至暫存區##################
#在項目目錄下新建Test.java文件
touch Test.java#方式1:將單個文件提交至Git暫存區
git add Test.java#方式2:將當前目錄下的所有文件提交至Git暫存區
git add .########################修改文件并添加至暫存區##################
# 修改Test.java文件內容
#方式1:將單個文件提交至Git暫存區
git add Test.java#方式2:將當前目錄下的所有文件提交至Git暫存區
git add .

示例

添加單個文件至Git暫存區?

?添加所有文件至Git暫存區

查看git狀態

  • 4、提交暫存區更改至本地倉庫(git commit)

????????執行?git commit -m "提交描述信息"?,將暫存區的內容提交到本地倉庫。描述信息應清晰地說明本次提交的更改內容。

????????例如:如果您新增了一個用戶登錄功能 ,可以寫 "新增用戶登錄功能代碼" 。

#提交暫存區至本地倉庫
git commit -m '添加用戶登錄功能代碼'#查看修改狀態
git status#查看提交日志
git log

  • 5、分支操作

????????幾乎所有的版本控制系統都以某種形式支持分支。 使用分支意味著你可以把你的工作從開發主線上分離開來進行重大的Bug修改、開發新的功能,以免影響開發主線。 ???????

  • 5.1、查看本地分支
#查看本地分支
git branch

?

  • 5.2、創建本地分支

????????若要進行新功能開發或進行不同的工作,可以使用?git branch <分支名>?創建分支,然后使用?git checkout <分支名>?切換到該分支。

????????比如:創建一個名為?develop?的分支來開發新的功能代碼。

? ? ? ? 提示:新創建的分支會同步當前分支的全部內容。

????????比如:從master創建一個develop分支,那么新創建的develop分支包含master分支的最新內容。同理,切換到develop分支后修改了部分內容并提交后,再從develop分支創建一個dev1的分支,那么dev1分支中包含develop分支的最新內容。

#創建本地分支:git branch <分支名>
#創建一個名稱為develop的分支
git branch develop

  • 5.3. 在分支上工作

????????在分支上進行修改、添加或刪除文件等操作,并提交至本地倉庫。

  • 5.4. 切換分支

????????使用?git checkout <分支名>?切換到其他分支。

#*切換分支(checkout)
#命令:git checkout 分支名
#切換到develop分支(分支已存在)
git checkout develop

  • 5.5. 合并分支(必要時需要解決沖突問題)

????????當一個分支上的工作完成后,先切換到目標分支(通常是主分支),然后使用?git merge <要合并的分支名>?進行合并。

????????假設您在?develop?分支上完成了開發,切換到主分支后將其合并。

#合并分支,如想把develop分支的代碼合并到master,則應先切換到master分支,再使用git merge develop命令進行合并#切換到master分支
git checkout master#合并develop分支到master分支
git merge develop
  • 5.6、開發中分支使用原則與流程
????????幾乎所有的版本控制系統都以某種形式支持分支。 使用分支意味著你可以把你的工作從開發主線上分離開來進行重大的Bug 修改、開發新的功能,以免影響開發主線。 在開發中,一般有如下分支使用原則與流程:
  • master (生產) 分支

????????線上分支,主分支,中小規模項目作為線上運行的應用對應的分支;應始終保持可部署和穩定的狀態,只包含經過充分測試和審核的代碼。
  • develop(開發)分支

????????是從master 創建的分支,一般作為開發部門的主要開發分支,如果沒有其他并行開發不同期上線要求,都可以在此版本進行開發,階段開發完成后,需要合并到master 分支 , 準備上線。
  • feature/xxxx分支

????????從develop 創建的分支,一般是同期并行開發,但不同期上線時創建的分支,分支上的研發任務完成后合并到develop 分支。
  • hotfix/xxxx分支

????????從master 派生的分支,一般作為線上 bug 修復使用,修復完成后需要合并到 master test
develop 分支。
????????還有一些其他分支,在此不再詳述,例如test 分支(用于代碼測試)、 pre 分支(預上線分支)等 等。
  • 5.7、分支操作練習
###########################創建并切換到deve01分支,在deve01分支提交文件
# [master]創建分支deve01
git branch deve01
# [master]切換到deve01
git checkout deve01
# [deve01]創建文件Test02.java
略
# [deve01]將修改加入暫存區并提交到倉庫,提交記錄內容為:add Test02 on dev
git add .
git commit -m 'add Test02 on dev'
# [deve01]以精簡的方式顯示提交記錄
git log###########################切換到master分支,將deve01合并到master分支
# [deve01]切換到master分支
git checkout master
# [master]合并deve01到master分支
git merge deve01
# [master]以精簡的方式顯示提交記錄
git log
# [master]查看文件變化(目錄下也出現了Test02.java)
略##########################刪除deve01分支
# [master]刪除deve01分支
git branch -d deve01
# [master]查看本地分支
git branch
  • 六、Git遠程倉庫

  • ?6.1、常用的托管服務[遠程倉庫]

????????我們可以借助互聯網上提供的一些代碼托管服務來實現,其中比較常用的有GitHub 、碼云、 GitLab 等。
  • gitHub( 地址:https://github.com/ )是一個面向開源及私有軟件項目的托管平臺,因為只支持 Git 作為唯一的版本庫格式進行托管,故名gitHub
  • 碼云(地址: https://gitee.com/ )是國內的一個代碼托管平臺,由于服務器在國內,所以相比于 GitHub,碼云速度會更快
  • GitLab (地址: https://about.gitlab.com/ )是一個用于倉庫管理系統的開源項目,使用Git為代碼管理工具,并在此基礎上搭建起來的web服務,一般用于在企業、學校等內部網絡搭建git私服。

  • 6.2、創建遠程倉庫

? ? ? ? 略

  • 6.3、配置SSH公鑰

????????略

  • 6.4、操作遠程倉庫

  • 6.4.1、關聯遠程倉庫
  1. 首先,確保您已經在本地創建了一個 Git 倉庫。
  2. 使用以下命令來關聯遠程倉庫:
    git remote add <遠程倉庫名稱> <遠程倉庫 URL>
    例如,如果您要添加一個名為?origin?的遠程倉庫,其 URL 為?https://github.com/username/repository.git?,則命令為:
    git remote add origin https://github.com/username/repository.git
# 添加遠程倉庫命令:git remote add <倉庫名稱> <倉庫路徑>#SSH模式:郵箱:url
git remote add test xxxx@qq.com:https://gitee.com/xxx/test.git# Https模式
git remote add test https://gitee.com/xxx/test.git

????????在關聯遠程倉庫后,您就可以執行諸如推送(git push)和拉取(git pull)等操作,與遠程倉庫進行交互。?

  • 6.4.2、查看遠程倉庫

????????看已配置的遠程倉庫名稱,使用?git remote?命令。

#本地倉庫與遠程倉庫建立連接后,使用命令查看遠程倉庫:git remote
gite remote

  • 6.4.3、推送到遠程倉庫

? ? ? ? 遠程倉庫通常位于代碼托管平臺(如 GitHub、GitLab、碼云 等)上,用于團隊成員之間共享代碼和協作。比如,團隊中的其他成員可以從遠程倉庫獲取您的提交和代碼更改。

????????將本地的更改推送到 Git 遠程倉庫,您可以使用以下命令:

git push <遠程倉庫名稱> <本地分支名稱>:<遠程分支名稱>

? ? ? ? 推送之前請確保已經關聯了遠程倉庫(參考6.4.1)

????????通常情況下,如果您沒有指定具體的分支,Git 會默認將當前所在的本地分支推送到與之關聯的遠程分支。例如,如果遠程倉庫名為 `origin` ,您當前在 `master` 分支,且希望推送到遠程的 `master` 分支,可以使用以下命令:?

git push origin master

????????如果您的本地分支和遠程分支名稱不同,比如本地分支是 `feature-branch` ,而要推送到遠程的 `development` 分支,那么命令如下:

git push origin feature-branch:development

????????另外,如果您是第一次推送某個分支到遠程倉庫,可能需要使用 `-u` 選項來建立本地分支和遠程分支的跟蹤關系,例如:

git push -u origin feature-branch

????????此后,再進行推送時,就可以直接使用 `git push` 而無需指定遠程倉庫和分支名稱了。 假設您正在一個名為 `bug-fix` 的本地分支上工作,并且要將其推送到遠程倉庫 `origin` 上名為 `bug-fix` 的遠程分支,命令就是:

git push origin bug-fix

????????在推送過程中,如果遠程分支存在保護策略或者有其他限制,可能會導致推送失敗。此時,您需要根據錯誤提示解決相應的問題后再進行推送。 ?

  • 6.4.4、查看本地分支與遠程分支之間存在關聯關系

????????在 Git 中,本地分支與遠程分支之間存在關聯關系,用于方便地進行推送和拉取操作。

????????默認情況下,當您首次使用?git push?推送一個本地分支時,如果沒有明確指定遠程分支,Git 會自動創建一個與本地分支同名的遠程分支,并建立關聯。例如,您首次推送本地的?master?分支,Git 會在遠程創建一個名為?master?的分支,并建立關聯。

可以使用?git branch -vv?命令查看本地分支與遠程分支的關聯關系。在輸出中,會顯示每個本地分支所跟蹤的遠程分支。

也可以使用?git branch --set-upstream-to=<遠程倉庫名>/<遠程分支名> <本地分支名>?命令來手動設置關聯關系。例如,如果要將本地的?feature?分支關聯到遠程?origin?倉庫的?feature?分支,可以使用:

git branch --set-upstream-to=origin/feature feature

????????當建立了關聯關系后,執行諸如?git pull?或?git push?等操作時,Git 就知道應該與哪個遠程分支進行交互。假設您有一個本地分支?bugfix?,它關聯到遠程?origin?倉庫的?bugfix?分支。當您在本地?bugfix?分支進行了一些修改,然后執行?git pull?時,Git 會從遠程的?bugfix?分支拉取最新的更改并嘗試合并。

????????另外,如果您創建了一個新的本地分支,但是沒有建立與遠程分支的關聯,在執行?git push?時,Git 會提示您沒有建立跟蹤關系,需要先設置。

  • ?6.4.5、從遠程倉庫克隆
????????如果已經有一個遠程倉庫,我們可以直接clone 到本地。
# git clone <遠程倉庫的 URL>
#示例:https://github.com/username/repository.git為倉庫地址URL
git clone https://github.com/username/repository.git

????????克隆操作完成后,您就可以在本地對代碼進行修改、提交等操作,并根據需要與遠程倉庫進行交互。?

  • 6.4.6、從遠程倉庫獲取更新
要從遠程倉庫獲取更新,主要有以下兩種常用的方法:
  • 1. git fetch

只是將遠程倉庫的更新獲取到本地,但不會自動合并到當前工作分支。
#- `git fetch` :獲取所有遠程倉庫的更新。
git fetch#- `git fetch <倉庫名稱>` :
# 僅從名為 `origin` 的遠程倉庫獲取更新。
git fetch origin#- `git fetch <倉庫名稱> <分支名稱>` :
#從 `origin` 遠程倉庫獲取 `master` 分支的更新。
git fetch origin master
  • 2. git pull

先執行 `git fetch` 獲取更新,然后嘗試將獲取到的更新合并到當前工作分支。
# git pull :從默認的遠程倉庫(通常是 origin )獲取與當前分支對應的遠程分支的更新并合并。# git pull <倉庫名稱>
# 從 origin 遠程倉庫獲取更新并合并。
git pull origin # git pull <倉庫名稱> <分支名稱>
# 從 origin 遠程倉庫的 feature-branch 分支獲取更新并合并到當前分支。
git pull origin feature-branch 
假設您正在一個團隊項目中工作,遠程倉庫中有其他人提交的新代碼。如果您只是想先查看遠程的更新而不立即合并,就使用 `git fetch` 。如果您希望直接獲取并合并遠程的更新到當前工作分支,使用 `git pull` 。但使用 `git pull` 時要注意可能出現的合并沖突。

?

  • 6.5、遠程倉庫操作練習

##########################1-將本地倉庫推送到遠程倉庫
# 完成4.1、4.2、4.3、4.4的操作
略
# [git_test01]添加遠程倉庫
git remote add origin git@gitee.com/**/**.git
# [git_test01]將master分支推送到遠程倉庫,并與遠程倉庫的master分支綁定關聯關系
git push --set-upstream origin master###########################2-將遠程倉庫克隆到本地
# 將遠程倉庫克隆到本地git_test02目錄下
git clone git@gitee.com/**/**.git git_test02
# [git_test02]以精簡的方式顯示提交記錄
git-log###########################3-將本地修改推送到遠程倉庫
# [git_test01]創建文件file03.txt
略
# [git_test01]將修改加入暫存區并提交到倉庫,提交記錄內容為:add file03
git add .
git commit -m 'add file03'
# [git_test01]將master分支的修改推送到遠程倉庫
git push origin master###########################4-將遠程倉庫的修改更新到本地
# [git_test02]將遠程倉庫修改再拉取到本地
git pull
# 以精簡的方式顯示提交記錄
git-log
# 查看文件變化(目錄下也出現了file03.txt)

八、其他操作

  • 1、查看當前倉庫的狀態,包括已修改、已暫存和未跟蹤的文件

作用:查看的修改的狀態(暫存區、工作區)
命令形式: git status

  • 2、查看提交日志

作用 : 查看提交記錄
命令形式: git log [option]
options
--all 顯示所有分支
--pretty=oneline 將提交信息顯示為一行
--abbrev-commit 使得輸出的 commitId 更簡短
--graph 以圖的形式顯示

  • 3、版本回退

  • 作用:版本切換
  • 命令形式:git reset --hard commitID
????????commitID 可以使用 git - log git log 指令查看
  • 如何查看已經刪除的記錄?
????????git reflog
????????這個指令可以看到已經刪除的提交記錄
# 版本回退,commitID是版本提交時的ID,可通過git log 查看
git reset commitID --hard

  • 4、添加文件至忽略列表

????????一般我們總會有些文件無需納入Git 的管理,也不希望它們總出現在未跟蹤文件列表。 通常都是些自動生成的文件,比如日志文件,或者編譯過程中創建的臨時文件等。 在這種情況下,我們可以在工作目錄中創建一個名為 .gitignore 的文件(文件名稱固定),列出要忽略的文件模式。
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
  • 5、使用?git ls-files?命令,它將顯示當前分支跟蹤的所有文件的列表

? ? ? ? 通過切換到不同的分支,使用?git ls-files?命令查看不同分支所跟蹤的列表

#使用 git ls-files 命令,它將顯示當前分支跟蹤的所有文件的列表
git ls-files

  • 6、刪除分支

????????在 Git 中刪除分支可以使用以下命令:

  • **刪除本地分支**

????????使用 `git branch -d <分支名稱>` 命令來刪除已經合并到當前分支的分支。如果分支未被合并,使用 `-d` 選項可能會失敗,此時可以使用 `-D` 強制刪除,但要謹慎操作,因為未合并的分支中的更改可能會丟失。 例如:

#刪除分支時,需要做各種檢查,可能會刪除失敗
git branch -d feature-branch#刪除分支時,不做各種檢查,強制刪除
git branch -D feature-branch
  • **刪除遠程分支**

????????要刪除遠程分支,首先需要確保本地分支已經與遠程分支同步。然后使用 `git push <遠程名稱> --delete <分支名稱>` 命令。 例如,如果您的遠程名稱是 `origin` ,要刪除名為 `feature-branch` 的遠程分支,可以使用: ``` git push origin --delete feature-branch ```

git push origin --delete feature-branch

????????請注意,刪除分支是不可逆的操作,所以在刪除分支之前,請確保您不再需要該分支或者已經備份了其中的重要更改。

  • 7、解決沖突?

????????當 Git 提示合并過程中存在沖突時,您會在相關的文件中看到特殊的標記。這些標記通常會指出沖突的位置。HEAD表示當前分支,====以下是其他分支.

<<<<<<< HEAD
這是當前分支(通常是您要合并到的分支,比如主分支)的內容
=======
這是要合并進來的分支的內容
>>>>>>> 分支名稱

?????????刪除不需要的代碼和沖突標記,只保留您最終決定要保留的內容,保存文件。

????????使用?git add <文件名>?將解決沖突后的文件添加到暫存區,然后使用?git commit -m "解決了分支合并沖突"?提交更改。

例如:

????????假設有一個文件?example.txt?,在合并分支時出現沖突。沖突部分可能如下:

<<<<<<< HEAD
print("Hello from main branch")
=======
print("Hello from feature branch")
>>>>>>> feature-branch

????????如果您決定保留主分支的內容,就刪除?=======?以下直到?>>>>>>> feature-branch?的部分。如果您想整合,比如改為?print("Hello from both branches")?,然后保存文件,進行添加和提交操作。解決沖突時要仔細檢查和測試,確保合并后的代碼能正常工作。?

  • 8、當前分支同步另一個分支的最新內容

????????`git rebase <分支名>` 命令用于將當前分支的提交基于 `<分支名>` 分支的最新提交進行重新排列。 這意味著它會把當前分支的提交“搬”到 `<分支名>` 分支的頂端,并以線性的方式重新排列提交歷史。

優點包括:

1. 使提交歷史更加整潔和線性,便于查看和理解。

2. 減少不必要的合并提交,使分支結構更清晰。

但也有一些注意事項:

1. 由于改變了提交的順序和基礎,可能會給團隊協作帶來困擾,如果其他人已經基于原始的提交進行了工作,可能會導致問題。

2. 在執行 `git rebase` 過程中,如果出現沖突,需要手動解決沖突,并繼續執行 `git rebase --continue` 。

????????例如,假設您在 `feature` 分支上進行開發,并且 `master` 分支有了新的提交。執行 `git rebase master` 后,`feature` 分支上的提交會基于 `master` 分支的最新狀態重新排列。如果在這個過程中,對某個文件的修改在 `feature` 分支和 `master` 分支存在沖突,Git 會提示您,您需要手動打開沖突的文件進行修改,解決沖突后執行 `git add <沖突文件>` ,然后 `git rebase --continue` 。

  • 9、Git 中撤銷?git rebase?操作

在 Git 中撤銷 `git rebase` 操作有多種方法,以下是兩種常用的方式:

**方法一:使用 `git reflog` 和 `git reset`**

1. 首先,使用 `git reflog` 命令查看 Git 的操作記錄,找到 `rebase` 前的提交哈希值。

2. 然后,使用 `git reset --hard <commit_hash>` 命令將分支重置到指定的提交。`<commit_hash>` 替換為通過 `git reflog` 找到的 `rebase` 前的提交哈希值。

**方法二:使用 `ORIG_HEAD`** `rebase` 操作會將起點保存到 `ORIG_HEAD` ,通常可以直接使用以下命令進行撤銷: `git reset --hard ORIG_HEAD` 但需注意,`reset`、`rebase` 和 `merge` 等操作都會將原始 `HEAD` 指針保存到 `ORIG_HEAD` 中,如果在嘗試撤銷 `rebase` 后執行了這些命令中的任何一個,那么可能就需要使用 `git reflog` 來找到正確的提交哈希值并進行重置。

另外,如果在撤銷 `rebase` 操作之前進行了其他重要的提交,可能會導致這些提交丟失。所以在執行撤銷操作之前,請確保了解其影響,并謹慎操作。同時,建議在進行任何可能有風險的操作之前,先對代碼進行備份或創建新的分支,以便在需要時可以恢復到之前的狀態。 例如,可以先創建一個備份分支: `git branch backup` 如果后續需要恢復到備份的狀態,可以使用: `git reset --hard backup`

  • 10、刪除遠程倉庫引用(遠程倉庫本身不會被刪除)

? ? ? ? 當本地倉庫不需要與遠程倉庫進行交互時,可以通過命令刪除遠程倉庫引用,首先進入本地倉庫目錄下,使用命令刪除遠程倉庫引用:git remote remove <遠程倉庫名稱>。

# git remote remove <遠程倉庫名稱>
#命令示例,其中origin為遠程倉庫名稱
git remote remove origin

????????需要注意:此操作只是從本地的 Git 配置中刪除了對該遠程倉庫的引用,但遠程倉庫本身并不會被實際刪除。

  • 11、IDEA集成GitBash作為Terminal

?

九、IntelliJ IDEA中使用Git

  • 1、在IDEA中配置Git

  • ?2、IDEA創建Git本地倉庫

  • 方式一、新建項目時勾選Create Git repository

  • ?方式二、本地項目已經創建,此時導入本地倉庫

?選中本地項目路徑

  • 3、設置遠程倉庫

  • ?4、提交到本地倉庫

?

  • ?5、推送到遠程倉庫

  • 6、從遠程倉庫克隆(clone)到本地

  • ?7、解決沖突

? ? ? ? 在pull或merge時有可能發生沖突

  • ?8、創建分支

?

  • ?9、切換分支

?

十、常見問題解決

  • 1、解決Git Bash的亂碼問題

打開git bash執行:git config --global core.quotepath false

通過vim編輯/etc/bash.bashrc 文件,在最后加入下面兩行 ?

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44001.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44001.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44001.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

刷題Day47|1143.最長公共子序列、1035.不相交的線、53. 最大子序和、

1143.最長公共子序列 1143. 最長公共子序列 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;dp數組含義是以i-1和j-1為結尾的最長公共子序列。當text1[i - 1] text2[i - 1], dp[i][j] dp[i - 1][j - 1] 1; 否則dp[i][j] max(dp[i - 1][j], dp[i][j - 1]); 因為兩…

無法連接Linux遠程服務器的Mysql,解決辦法

問題描述 如果是關閉虛擬機之后&#xff0c;二次打開無法連接Mysql&#xff0c;則可嘗試一下方法進行解決 解決方法 關閉虛擬機的防火墻 1&#xff1a;查看防火墻狀態 systemctl status firewalld 一下顯示說明防火墻是啟動的狀態 2&#xff1a;關閉防火墻 systemctl st…

git提交emoji指南

emoji 指南 emojiemoji 代碼commit 說明&#x1f389; (慶祝)tada初次提交? (火花)sparkles引入新功能&#x1f516; (書簽)bookmark發行/版本標簽&#x1f41b; (bug)bug修復 bug&#x1f691; (急救車)ambulance重要補丁&#x1f310; (地球)globe_with_meridians國際化與本…

PTA - 編寫函數計算圓面積

題目描述&#xff1a; 1.要求編寫函數getCircleArea(r)計算給定半徑r的圓面積&#xff0c;函數返回圓的面積。 2.要求編寫函數get_rList(n) 輸入n個值放入列表并將列表返回 函數接口定義&#xff1a; getCircleArea(r); get_rList(n); 傳入的參數r表示圓的半徑&#xff0c…

音視頻解封裝demo:將FLV文件解封裝(demux)得到文件中的H264數據和AAC數據(純手工,不依賴第三方開源庫)

1、README 前言 注意&#xff1a;flv是不支持h.265封裝的。目前解封裝功能正常&#xff0c;所得到的H.264文件與AAC文件均可正常播放。 a. demo使用 $ make clean && make DEBUG1 $ $ $ ./flv_demux_h264_aac Usage: ./flv_demux_h264_aac avfile/test1.flv./flv_d…

壓縮感知1——算法簡介

傳統的數據采集 傳統的數字信號采樣定律就是有名的香農采樣定理&#xff0c;又稱那奎斯特采樣定律定理內容如下&#xff1a;為了不失真地恢復模擬信號&#xff0c;采樣頻率應該不小于模擬信號頻譜中最高頻率的2倍 上述步驟得到的數字信號的數據量比較大&#xff0c;一方面不利…

C語言程序題(一)

一.三個整數從大到小輸出 首先做這個題目需要知道理清排序的思路&#xff0c;通過比較三個整數的值&#xff0c;使之從大到小輸出。解這道題有很多方法我就總結了兩種方法&#xff1a;一是通過中間變量比較和交換&#xff0c;二是可以用冒泡排序法&#xff08;雖然三個數字排序…

車載聚合路由器應用場景分析

乾元通QYT-X1z車載式1U多卡聚合路由器&#xff0c;支持最多8路聚合&#xff0c;無論是應急救援&#xff0c;還是車載交通&#xff0c;任何寬帶服務商無法覆蓋的區域&#xff0c;聚合路由器可提供現場需要的穩定、流暢、安全的視頻傳輸網絡&#xff0c;聚合路由器可無縫接入應急…

Dify中的weaviate向量數據庫操作

一.安裝weaviate客戶端 1.Dify 0.6.9中weaviate信息 在Dify 0.6.9版本中weaviate容器信息如下: # The Weaviate vector store. weaviate:image: semitechnologies/weaviate:1.19.0restart: alwaysvolumes:# Mount the Weaviate data directory to the container.- ./volume…

【操作系統】進程管理——信號量機制(個人筆記)

學習日期&#xff1a;2024.7.9 內容摘要&#xff1a;信號量機制&#xff0c;用信號量實現進程的同步與互斥 信號量機制 信號量的概念 在上節內容中&#xff0c;我們學習了進程互斥的軟件和硬件解決方案&#xff0c;但這些方案都有各自的問題&#xff0c;雙標志法都因為檢查和…

【自用】【高昆輪概率論與數理統計筆記】2.1 分布函數的概念與性質

不定期更新&#xff0c;前面的章節會在學完后補回來&#xff0c;重新學學概率&#xff0c;當年考研考的數學二&#xff0c;沒有概率基礎&#xff0c;想自己補補&#xff0c;視頻課是高昆輪老師講的浙大四版概率論教材的視頻課&#xff0c;地址&#xff1a; 第一章&#xff1a;h…

數據庫MySQL---基礎篇

存儲和管理數據的倉庫 MySQL概述 數據庫相關概念 數據庫&#xff08;DataBase&#xff09;---數據存儲的倉庫&#xff0c;數據是有組織的進行存儲 數據庫管理系統&#xff08;DBMS&#xff09;-----操縱和管理數據庫的大型軟件 SQL----操作關系型數據庫的編程語言&#xff…

Python:安裝/Mac

之前一直陸陸續續有學python&#xff01;今天開始&#xff01;正式開肝&#xff01;&#xff01;&#xff01; 進入網站&#xff1a;可能會有點慢&#xff0c;多開幾個網頁 https://www.python.org 點擊下載&#xff0c;然后進入新的頁面&#xff0c;往下滑 來到File&#xff0…

實時溫濕度監測系統:Micropython編碼ESP32與DHT22模塊的無線數據傳輸與PC端接收項目

實時溫濕度監測系統 前言項目目的項目材料項目步驟模擬ESP32接線連接測試搭建PC端ESP32拷錄環境對ESP32進行拷錄PC端搭建桌面組件本地數據接收桌面小組件部分 實驗總結 前言 人生苦短&#xff0c;我用Python。 由于我在日常工作中經常使用Python&#xff0c;因此在進行該項目…

基于java+springboot+vue實現的校園二手書交易平臺(文末源碼+Lw)287

摘 要 信息數據從傳統到當代&#xff0c;是一直在變革當中&#xff0c;突如其來的互聯網讓傳統的信息管理看到了革命性的曙光&#xff0c;因為傳統信息管理從時效性&#xff0c;還是安全性&#xff0c;還是可操作性等各個方面來講&#xff0c;遇到了互聯網時代才發現能補上自…

Vue中v-for和v-if優先級(2、3)

Vue中v-for和v-if優先級&#xff08;2、3&#xff09; Vue2 在Vue2當中,v-for優先級要優于v-if,也就是說&#xff0c;當它倆同時沿用時&#xff0c;v-for先遍歷&#xff0c;v-if再判斷。 Vue2源碼位置 \vue-dev\src\compiler\codegen\index.js export function genElement…

如何構建數據驅動的企業?爬蟲管理平臺是關鍵橋梁嗎?

一、數據驅動時代&#xff1a;為何選擇爬蟲管理平臺&#xff1f; 在信息爆炸的今天&#xff0c;數據驅動已成為企業發展的核心戰略之一。爬蟲管理平臺&#xff0c;作為數據采集的第一站&#xff0c;它的重要性不言而喻。這類平臺通過自動化手段&#xff0c;從互聯網的各個角落…

windows的遠程桌面連接docker

1. Docker容器中運行遠程桌面服務 (RDP)&#xff1a;您的Docker容器需要安裝和運行遠程桌面服務。通常&#xff0c;遠程桌面服務在Windows操作系統上可用。如果您使用的是Linux容器&#xff0c;則需要安裝一個支持RDP協議的桌面環境和RDP服務器。 2. 開放RDP端口&#xff1a;通…

什么是RPC?有哪些RPC框架?

定義 RPC&#xff08;Remote Procedure Call&#xff0c;遠程過程調用&#xff09;是一種允許運行在一臺計算機上的程序調用另一臺計算機上子程序的技術。這種技術屏蔽了底層的網絡通信細節&#xff0c;使得程序間的遠程通信如同本地調用一樣簡單。RPC機制使得開發者能夠構建分…

【常見開源庫的二次開發】一文學懂CJSON

簡介&#xff1a; JSON&#xff08;JavaScript Object Notation&#xff09;是一種輕量級的數據交換格式。它基于JavaScript的一個子集&#xff0c;但是JSON是獨立于語言的&#xff0c;這意味著盡管JSON是由JavaScript語法衍生出來的&#xff0c;它可以被任何編程語言讀取和生成…