版本控制工具Git

2022-09-01 13:45:15 字數 4529 閱讀 3167

git概要

git是乙個開源的分布式版本控制系統。git沒有中心伺服器的概念,每乙個git客戶端(git節點)都含有乙個完整的**倉庫(前提是你之前從遠端git倉庫fetch過**),所以那些歷史版本資訊都在你本機上,假如哪乙個git節點掛掉了,隨意從其他git節點clone乙個**倉庫過來就ok了, 那些原來的**、版本資訊之類的都還是完整的。

git主要分為工作區(workspace)、暫存區(index)、本地倉庫(repository)、遠端倉庫(remote),分層結構示意圖:

執行git init命令或是clone了乙個庫到本地後,就會建立並初始化git倉庫,這個時候在該目錄下會產生乙個.git的隱藏資料夾,而該目錄就是你的工作目錄。

這個.git資料夾就是你的本地倉庫,當你進行了一些檔案操作之後,認為可以提交了那麼首先你就是提交到本地倉庫也就是這個.git中,然後再推送到遠端伺服器。

git基本操作示意圖:

本地資料夾下的重要的目錄和檔案說明:

config檔案,這是你專案的配置檔案,裡面有中心伺服器的資訊和分支資訊

head檔案指向當前的分支

index檔案是暫存區的相關資訊

logs目錄中都是相關操作產生的日誌,這個很重要,因為日誌是我們操作的唯一證據,我們本地的版本控制也靠它

objects目錄裡面儲存的就是所有的資料,也就是快照

refs目錄裡是儲存指向資料提交物件的指標

安裝git

建立**倉庫

首先配置身份,windows系統開啟git bash,輸入命令:

git config --global user.name "username"

git config --global user.email "[email protected]"

建立完後檢視使用者名稱和e-mail:

git config user.name

git config user.email

然後可以開始建立**倉庫:

建立乙個專案的目錄,進入到專案目錄下面,在專案目錄下輸入:

git init

完成**倉庫建立,建立完成後在專案的根目錄下生產乙個隱藏的.git資料夾,這個資料夾用來記錄本地所有的git操作。可以通過 ls -al 命令來檢視一下。

如果要刪除本地倉庫,只需刪除這個資料夾就可以了。

提交本地**

使用add和commit命令。

add用於把想要提交的**先新增進來,commit執行提交操作。

例如新增要build.gradle檔案,輸入如下命令:

git add build.gradle

新增整個目錄,在add後面加目錄明:

一次性新增所有檔案,在add後面加乙個. :

git add .

新增完成後,就可以提交了:

git commit -m "first commit."

-m引數新增提交的描述資訊,沒有描述資訊的提交被認為是不合法的。

忽略檔案

git提供了一種可配性很強的機制來允許使用者將指定的檔案或目錄排除在版本控制之外,它會檢查**倉庫的根目錄下是否存在乙個名為.gitignore的檔案,如果存在,就去一行行地讀取這個檔案的內容,並把每一行指定的檔案或目錄排除在版本控制之外。

.gitignore中指定的檔案或目錄可以使用 「*」 萬用字元。

bin/

gen/

這表示把bin目錄和gen目錄下的所有檔案都忽略,它們將不會加入到版本控制當中。

檢視修改內容

檢視檔案修改情況:

git status

檢視檔案更改的內容:

git diff

撤銷未提交的更改:

只要**還未提交,所有修改的內容都是可以撤銷的

git checkout

如果已經執行過add命令,那麼git checkout命令就無法撤銷了。對於已新增的檔案,應先對其取消新增,然後才可以撤銷。

取消新增:

git reset

然後在執行git checkout就可以進行撤銷了。

檢視提交記錄

檢視歷史提交記錄:

git log

當提交記錄非常多的時候,而我們只想檢視其中一條記錄,可以在命令中指定該記錄的id,並加上-l引數表示我們只想看到一行記錄。

而如果想要檢視這條提交記錄具體修改了什麼內容,可以在命令中加入-p引數。

分支的用法

分支的作用是在現有**的基礎上開闢乙個分叉口,使得**可以在主幹線和分支線上同時進行開發,且相互之間不會影響。

檢視當前的版本庫中有哪些分支:

git branch -a

如果當前專案中沒有建立任何分支,那麼就只有個乙個master分支存在。

建立乙個名為version1.0的分支:

git branch version1.0

切換到剛建立好的version1.0分支:

git checkout version1.0

此時,version1.0上的修改並提交將不會影響到master分支,master也不會影響到version1.0分支。

當你想吧version1.0分支上修改並提交的內容合併到master分支上,使用如下命令:

git checkout master

git merge version1.0

如果不再需要version1.0這個分支時,可以用如下命令把這個分支刪除:

git branch -d version1.0

與遠端版本庫協作

建立乙個遠端版本庫,團隊的每個成員都從這個遠端版本庫中獲取到最原始的**,然後各自進行開發,並且以後每次提交的**都同步到遠端庫,並從遠端庫中獲取最新**。

git clone

之後在這份**上進行了一些修改和提交,再把本地修改的內容同步到遠端版本庫:

git push origin master

其中,orgin指的是遠端版本庫的git位址,master指的是同步到哪乙個分支上。

將遠端版本庫的的修改同步到本地,git提供了兩種命令:fetch和pull。

將遠端版本庫的**同步到本地:

git fetch origin master

同步下來的**不會合併到任何分支上,而是會存放到乙個origin/master分支上,這時可以通過diff命令來檢視遠端版本庫上到底修改了哪些東西:

git diff origin/master

之後再用merge命令將origin/master分支上的修改合併到主分支上即可:

git merge origin/master

而pull命令則是相當於將fetch和merge這兩個命令放在一起執行了,它可以從遠端版本庫上獲取最新的**並且合併到本地:

git pull origin master

git remote 遠端操作

為了便於管理,git要求每個遠端主機都必須指定乙個主機名。git remote命令就用於管理主機名。

git remote

不帶選項,用於列出所有遠端主機。

git remote -v

使用-v選項,可以檢視遠端主機的**。

clone遠端版本庫的時候,遠端主機自動命名為origin。如果想使用其他主機名,需要用git clone -o選項指定,例:

$ git clone -o test

以上命令,指定了遠端主機名為test。

git remote add 

git remote rm

用於刪除遠端主機: git remote rm 《主機名》

git remote rename

用於遠端主機改名: git remote rename 《原主機名》 《新主機名》

刪除github上的專案

1、登陸github到個人主頁,點選「repositories」,就能看到你自己建立或者「fork」的專案。

2、找到你要刪除的「repositories」(或者也可以說是專案),點選進入。

3、找到該repositories頁面右下方的「settings」,如圖中標示,點選「settings」進入;

4、進到「settings」之後,點選左邊框中的「options」(一般預設也是這個選項),然後拉到最下,就可以看到「delete this repository」;

5、點選「delete this repository」,彈出對話方塊,需要你填寫要刪除的這個「repositories」名字,然後就可以刪除整個專案了,注意不填寫的話是不能刪除的。

常見的git操作命令詳見以下部落格:

git基本原理見此部落格:

git版本控制工具

安裝while true 下一步 安裝完成後,開啟git bash git config global user.name xx git config global user.email xx cd到專案根目錄 git init git add 首次新增全部內容 git commit m first...

git版本控制工具

一.git和svn的區別 svn是集中式伺服器,git是分布式伺服器。二.git的優勢 1.git需要在本地建立乙個本地倉庫,我們可以在這個倉庫中提交修改 不受到其他人的影響。2.git提供了一層檔案的緩衝區,緩衝區有兩個好處 1 多次提交到緩衝區的變動內容可以一次提交到本地倉庫 2 緩衝區為我們提...

Git 版本控制工具

區域網下 gitlab伺服器 外網環境下 本地庫初始化 在對應資料夾中使用git bash git init 設定簽名 形式使用者名稱 tom 作用 區分不同開發人員的身份 辨析 這裡設定的前面與登入遠端庫 託管中心 的賬號,密碼沒有任何關係 專案級別 倉庫級別 僅在當前本地庫訪問內有效 git c...