Git 簡單入門(一)

2022-07-07 19:18:10 字數 3325 閱讀 1196

git 是目前世界上最先進的分布式版本控制系統

分布式和集中式

集中式版本控制系統

版本庫放在**伺服器,幹活之前先從**伺服器取得最新版本,然後開始幹活,活幹完後將自己幹的成果推送給**伺服器

缺點:必須聯網才能進行工作,對網路的要求較高

分布式版本控制系統

沒有**伺服器,每個人的電腦上都是乙個完整的版本庫,多人協作的時候,只需要把各自的修改推送給對方,就可以互相看到對方的修改了

通常情況下也會有乙個充當「**伺服器」的電腦,這個伺服器的作用僅僅是用來交換大家的修改,沒有它只是交換修改不方便而已

在安裝之前先試著輸入git 看看系統有沒有安裝git,如果沒有的話就要進行安裝了,方法如下:

在linux(ubuntu) 上安裝git

在命令列下面輸入:

sudo apt-get install git

在mac os x 上安裝git

可以通過 homebrew 安裝 git

brew install git

版本庫版本庫就是乙個倉庫/目錄,這個目錄裡面的所有檔案都可以被git管理

建立版本庫

建立乙個空目錄

在命令列中進入該目錄,執行下面的命令

git init

可以發現當前目錄下面多了乙個 .git 的目錄(此目錄預設是被隱藏的),這個目錄一般不要手動修改,否則可能會把git倉庫給破壞了

將檔案新增到倉庫

git add 檔名
git add 命令中 -a . 和 -u 的區別

git add . 會將工作時的所有變化提交到暫存區(包括檔案內容的修改及新檔案,但包括被刪除的檔案)

git add -u 進監控已經被add的檔案,不會提交新檔案

git add -a 是上面兩個命令功能的集合

git commit 命令

# 提交暫存區到倉庫區

$ git commit -m [message]

# 提交暫存區的指定檔案到倉庫區

$ git commit [file1] [file2] ... -m [message]

# 提交工作區自上次commit之後的變化,直接到倉庫區

$ git commit -a

# 提交時顯示所有diff資訊

$ git commit -v

# 使用一次新的commit,替代上一次提交

# 如果**沒有任何新變化,則用來改寫上一次commit的提交資訊

$ git commit --amend -m [message]

# 重做上一次commit,幷包括指定檔案的新變化

$ git commit --amend [file1] [file2] ...

注意事項

文字編碼強烈建議使用標準的utf-8編碼,所有的語言都使用同一種編碼

git 版本管理

工作區和暫存區

工作區工作區是電腦中專案的目錄,能夠看到的

版本庫版本庫是工作區中的 .git 目錄,其中中的要的是 stage/index 的暫存區和git自動建立的乙個分支 master 以及指向master的乙個指標head

add 及 commit

git add 是把檔案修改新增到暫存區

git commit 提交修改是講暫存區所有的內容提交到當前分支

版本回退

git log 命令 顯示從最近到最遠的提交日誌

head表示當前版本,版本回退使用 git reset 命令

git reset --hard head^ 將當前版本退回到上乙個版本

git reset --hard 版本號 將當前版本退回到指定版本

上上乙個版本是 head^^ ,上100個版本是 git

git reflog 檢視所有歷史命令

管理修改

第一次修改-> git add -> 第二次修改 -> git commit 這樣第二次修改的內容將不會被提交

撤銷修改

git checkout -- 檔名 將檔案在工作區的修改全部撤銷

當檔案自修改後還沒有被放到暫存區,撤銷修改後就回到和版本庫一模一樣的狀態

當檔案已經新增到暫存區後,又作了修改,撤銷修改後,就回到新增暫存區後的狀態

當把檔案修改add到暫存區還沒有提交,可以使用git reset head file 可以把暫存區的修改撤銷掉,重新放回工作區

刪除檔案

當把乙個檔案提交到版本庫了,然後把檔案刪除了,此時工作區和版本庫就不一致了,git status 會告訴你哪些檔案被刪除了,現在有兩個選擇

確實要從版本庫中刪除該檔案

git rm 檔名

git commit -m"comment"

刪錯了,要把誤刪的檔案恢復到最新版本

git checkout -- 檔名

遠端倉庫

像github和碼雲等**提供git倉庫託管服務,這個需要自己去註冊**的賬號,之後才能使用

git支援多種協議 (http/s、本地協議、ssh、git))參考資料

ssh key (驗證身份的一種方式)

在使用者主目錄下面看看有沒有 .ssh目錄,如果有,看看這個目錄裡面是否有 id_rsa(私鑰)和id_rsa.pub(公鑰) 檔案 ,公鑰可以告訴別人,私鑰不能告訴別人,如果有上述的兩個檔案的話,就可以只接跳到下一步,否則就需要建立ssh key

ssh-keygen -t rsa -c "[email protected]"

用賬號登入託管**,然後在賬號設定裡面新增 ssh key 即可

新增遠端倉庫

關聯遠端倉庫

git remote add origin 位址
新增後,遠端庫的名字就是origin,這是git預設的叫法,也可以改成別的

將本地庫的所有內容推到遠端庫上

git push -u origin master
第一次推送master分支是加了 -u 引數,git 會把本地的master分支和遠端的分支關聯起來

之後本地只要作了提交,就可以通過下面命令將做進的修改推送到託管**

git push origin master

從遠端庫轉殖

git clone 遠端位址

本文參考: 廖雪峰的官方**

git系列 簡單入門git命令一

檢視檔案修改總結 如果預設,則預設使用global local 只對某個倉庫有效,即需要在專案倉庫中設定 global 對當前使用者所有倉庫有效 system 對系統所有登入的使用者有效 主要分為兩種場景 基於本地已存在的專案 納入git管理和新建的專案直接用git管理 cd 專案 存在的目錄 gi...

GIt簡單入門

首先我們要安裝git。在ubuntu16.04上,使用apt就可以輕鬆安裝。然後建立個人資訊 git config global user.name name git config global user.email email 建立乙個git倉庫 1,clone 乙個倉庫 git clone ar...

git簡單入門

git是乙個開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的專案。git伺服器使用 ssh 公鑰進行認證。為了向 git 伺服器提供 ssh 公鑰,如果某系統使用者尚未擁有金鑰,必須事先為其生成乙份。這個過程在所有作業系統上都是相似的。首先,你需要確認自己是否已經擁有金鑰。預設情況下,使用...