天天看點

Git—分布式版本控制系統基本知識一、GIT簡介二、GIT基本工作流程

一、GIT簡介

1.什麼是GIt

 git 是一個開源的分布式版本控制系統,用于高效的管理各種大小的項目和檔案。

2.代碼管理工具的用途

  • 防止代碼丢失,做備份
  • 項目的版本管理和控制,可以通過設定節點進行跳轉。
  • 建立各自的開發環境分支,互不影響,友善合并
  • 在多終端開發,友善代碼的項目傳輸

3.常用代碼管理工具

git、svn…

二、GIT基本工作流程

1、Git工作流程

  • 工作區:就是你在電腦裡能看到的目錄。
  • 暫存區:英文叫 stage 或 index。一般存放在 .git 目錄下的 index 檔案(.git/index)中,是以我們把暫存區有時也叫作索引(index)。
  • 版本庫:工作區有一個隐藏目錄 .git,這個不算工作區,而是 Git 的版本庫。
    Git—分布式版本控制系統基本知識一、GIT簡介二、GIT基本工作流程

本地倉庫工作流程

2、Git基本操作

Git 常用的是以下 6 個指令:git clone、git push、git add 、git commit、git checkout、git pull。

Git—分布式版本控制系統基本知識一、GIT簡介二、GIT基本工作流程

總工作流程

說明:

  • workspace:工作區
  • staging area:暫存區/緩存區
  • local repository:版本庫或本地倉庫
  • remote repository:遠端倉庫

3、初始化一個新的git倉庫

滑鼠右擊選擇Git Bash Here->輸入$ git init

4、向倉庫中添加檔案和送出

 檔案通過添加到暫存區指令格式:$ git add 檔案名(注:git add . 則是送出全部檔案)

 送出暫存區到本地倉庫并記錄倉庫的改變:$ git commit [file] -m ‘操作詳情’(file位置可以是一個或者多個檔案,不寫是指将暫存區全部内容送出)

 連接配接遠端主機:$ git remote add origin 遠端倉庫位址

 最後上傳遠端代碼并合并操作:$ git push -u origin main(main倉庫的分支,-u第一次送出才加,origin為遠端主機名)

5、基礎指令

$ git config :初試配置

 git config --system [user.name 使用者名]:配置所有使用者

 配置檔案位置:/etc/gitconfig

 git config --global [user.mail 郵箱]:配置目前使用者

 配置檔案位置:~/.gitconfig

 git config :配置目前項目

  配置檔案位置:project/.git/config

$ git status:檢視本地倉庫狀态。

$ git rm --cached 檔案夾名 :撤回送出的暫存檔案。

$ git log :檢視commit日志記錄。

$ git relog :檢視所有的commit操作記錄。

$ git log --pretty=online :檢視commit日志記錄,每個送出隻顯示一行

$ git diff 檔案名: 對比工作區和暫存區檔案的差別 。

$ git checkout – 檔案名:從倉庫恢複檔案原本的樣子,并且還可以通過倉庫,恢複通過 $ rm 檔案名 删除的工作區本地檔案。

$ git checkout 分支名:切換分支

$ git mv [file][path]:移動檔案

$ git rm [file]:删除檔案

注意:這兩個操作會修改工作區内容,同時将操作記錄送出到暫存區

6、版本控制

$ git reset --hard HEAD^ :回退到上一個commit節點,一個^表示回退1個版本,依次類推。當版本回退之後工作區會自動和目前commit版本保持一緻。

$ git reset --hard [commit_id ]:回退到指定的commit_id節點 (commit全球唯一碼前七位),即使是回退到回退前的狀态也行,用relog查詢唯一碼,有标簽時,也可以把commit_id 換成标簽名

$ git tag [tag_name] (commit_id) -m ‘message’ :在項目的重要commit位置添加快照,儲存目前的工作狀态,一般用于版本的疊代,commit_id 不寫就預設在最新标簽檢視加标簽。如:重要節點處 git tag v1.0 -m ‘版本1’

$ git tag :檢視标簽

$ git show v1.0 :顯示标簽詳細資訊

$ git tag -d 标簽名:删除标簽

7、儲存工作區

$ git stash save ‘message’ :儲存工作區内容,說明:将工作區未送出的修改封存,讓工作區回到修改前的狀态。

$ git stash list :檢視工作區清單,說明最新儲存的工作區在最上面

$ git stash apply [email protected]{ 序号} :應用某個工作區,之後可用add、commit送出給倉庫

$ git stash drop [email protected]{ 序号} :删除某個工作區。

$ git stash clear :删除所有工作區。

8、分支管理

意義:分支即每個人在原有(代碼)分支的基礎上建立自己的工作環境,單獨開發,互不幹擾。完成開發工作後再進行分支統一合并。

Git—分布式版本控制系統基本知識一、GIT簡介二、GIT基本工作流程

分支原理圖

$ git branch :檢視分支情況,說明前面帶*的分支表示目前工作分支。

$ git branch -a :加上-a參數,可以檢視遠端分支,遠端分支會用紅色表示出來

$ git branch [branch_name]: 建立分支,基于a分支建立b分支,此時b分支會擁有a分支全部内容,在建立b分支時最好保持a分支‘幹淨’狀态

$ git checkout -b 分支名:建立分支并切換到新分支

$ git merge 分支名:合并指定分支到目前分支

注:沖突問題是合并分支過程中最為棘手的問題,當分支合并時,原分支和以前發生了變化就會産生沖突。當合并分支時添加新的子產品(檔案),這種沖突可以自動解決,隻需自己決定commit操作即可。當合并分支時兩個分支修改了同一個分支,則需要手動解決沖突。

$ git branch -d 分支名:删除分支

$ git branch -D 分支名:删除沒有被合并的分支

9、遠端倉庫管理

$ git remote add origin 遠端倉庫位址: 連接配接遠端主機,僅剛開始需要連接配接

$ git remote rm origin :斷開 origin遠端主機的連接配接

$ git clone :克隆遠端倉庫

$ git push -u origin main :上傳遠端代碼并合并操作。main為倉庫的分支名,-u第一次上傳新分支才加,origin為遠端主機名。連接配接之後再送出直接git push

$ git push origin (–)tags :上傳(所有)标簽

$ git push origin --delete tag 标簽名 :删除标簽名

$ git push origin :遠端分支名 :删除遠端分支名

$ git push --force origin:強行推送。目前本地分支使用reset後的最新送出落後于其對應的遠端分支,更新被拒絕時使用

$ git pull :将遠端分支拉取到本地

$ git fetch origin master:tmp :将遠端分支master拉取到本地,作為tmp分支

 差別:pull将遠端内容直接拉取到本地,并和對應分支内容進行合并,fetch将遠端分支内容拉取到本地,但是不會和本地對應分支合并,可以自己判斷後再使用merge合并

Git—分布式版本控制系統基本知識一、GIT簡介二、GIT基本工作流程

詳細流程圖

參考:

參考一 git—代碼管理工具

參考二 git 安裝與使用

參考三 git使用詳細教程

繼續閱讀