天天看點

Git基本使用

一、Git概述

1.1 Git簡介

Git 是一個開源的分布式版本控制系統,用于靈活高效地處理任何或小或大的項目。

Git 是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。(指令行和Linux很像)

Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必伺服器端軟體支援。

特點:

速度

簡單的設計

對非線性開發模式的強力支援(允許成千上萬個并行開發的分支)

完全分布式

有能力高效管理類似 Linux 核心一樣的超大規模項目(速度和資料量)

1.2 Git和SVN的差別?

SVN:是集中式版本控制系統,版本庫集中放在中央伺服器,而開發人員在開發過程中,首先要從中央伺服器下載下傳最新版本,開發完成後,再将自己開發的的代碼送出到中央伺服器。

集中式版本控制工具缺點:伺服器單點故障、容錯性差

Git:是分布式版本控制系統,分為兩類倉庫:本地倉庫、遠端倉庫

本地倉庫:是在開發人員自己的電腦上的倉庫

遠端倉庫:是在遠端伺服器上的Git倉庫

代碼托管中心:維護遠端庫

區域網路下:GitLab

網際網路下:GitHub(國外)、Gitee(碼雲國内)

Clone:克隆,将遠端庫複制到本地

Push:推送,将本地倉庫代碼上傳到遠端庫

Pull:拉取,将遠端倉庫代碼下載下傳到本地倉庫

1.3 Git工作流程

從遠端倉庫中克隆項目至本地倉庫

從本地倉庫checkout代碼進行代碼修改

在送出前将代碼add至暫存區

commit至本地倉庫,儲存修改的各個曆史版本

修改完成後,需要和團隊成員共享代碼時,将代碼push到遠端倉庫

二、Git至碼雲(國内),GitHub(國外)

簡介,可以将自己的筆記或是項目放上去。

2.1 打開Git Bash生成SSH公鑰

指令行:ssh -keygen -t rsa -C “您的郵箱位址”,回車三次

通過路徑找到公鑰位置,以記事本或文本編輯器打開id_rsa.pub檔案,複制

或使用指令行:cat ~/.ssh/id_rsa.pub 将檔案列印至終端,複制

2.2 注冊碼雲進入設定找到ssh公鑰

點選确定,輸入碼雲密碼,添加成功

打開Git Bash測試,指令行:clear(清除視窗)

指令行:ssh -T [email protected]

連接配接成功!

2.3 在碼雲上建立一個倉庫擷取倉庫位址

在碼雲首頁找到倉庫旁邊有個+号,點選,建立測試倉庫

進入倉庫,如圖,複制倉庫位址

在團隊開發中,會有多名成員,在倉庫管理中可以通過倉庫成員管理添加成員

2.4 本地檔案上傳到碼雲

打開需要上傳的檔案夾,右擊打開Git Bash視窗

初始化一個本地倉庫

指令行:git init

添加至暫存區

指令行:git add 檔案全稱(可以是檔案夾,也可以是多個檔案,空格隔開)

送出全部:git add .

commit送出至本地倉庫

指令行:git commit -m “first commit”

添加遠端倉庫,碼雲上的測試倉庫的位址

指令行:git remote add origin “遠端倉庫位址”

指令行(檢視遠端倉庫):git remote -v

将本地倉庫push至遠端倉庫

指令行:git push origin master

發生沖突,遠端倉庫也有readme檔案,處理沖突,在第8點

選擇舍棄線上檔案,強制推送,git push origin master -f

遠端倉庫檢視,成功上傳

同步沖突

本文在碼雲平台建立倉庫上已經存在readme檔案,在送出時可能會存在沖突,這時您需要選擇的是保留線上的檔案或者舍棄線上的檔案;

如果您舍棄線上的檔案,則在推送時選擇強制推送(加上-f)

git push origin master -f

如果您選擇保留線上的readme檔案,則需要先執行

git pull origin master

然後才可以推送

2.5 Git常用指令

将遠端倉庫克隆到本地

指令行:git clone 遠端倉庫位址

遠端倉庫

從遠端倉庫擷取最新版本到本地倉庫,不會自動merge,先初始化本地倉庫,再添加遠端倉庫

指令行:git fetch origin master

從遠端倉庫擷取最新版本并merge到本地倉庫,先初始化本地倉庫,再添加遠端倉庫

指令行:git pull origin master

本地倉庫,檢視倉庫狀态,修改了測試.txt裡的内容由test1改為test2,(提示要送出至本地倉庫,先add至暫存區,commit至本地倉庫)

指令行:git status

簡潔:git status -s

檢視版本号

指令行:git log

簡化資訊指令行:git log --pretty=oneline

版本回退

在 Git 中,用 HEAD 表示目前版本,也就是最新的送出 commit id,上一個版本就是 HEAD^,上上一個版本就是 HEAD^^,當然往上 100 個版本寫 100 個 ^ 比較容易數不過來,是以寫成 HEAD~100。

指令行:git reset --hard HEAD^ (回退上一個版本)

測試.txt檔案内容回退為test1

删除檔案

指令行:git rm 檔案全稱