git新手學習和使用

2021-07-13 14:45:48 字數 3457 閱讀 5812

一、git簡介

1、基本概念:

git是乙個開源的分布式版本控制系統。相對cvs和svn是集中式的版本控制系統。集中式版本控制系統的版本庫是集中放在**

伺服器的,每次工作的時候都得從**伺服器獲取最新的版本,完了以後再放回**伺服器。而分布式版本控制系統沒有**服器,

每個人電腦上都有乙個完整的版本庫,可以自己操作不受任何人影響。

2、版本庫(repository)

版本庫(repository)是版本控制系統用來存放所有歷史資料的地方,主要存放各個檔案的當前狀態,歷史修改時間,誰做的修改

以及修改的原因。舉個簡單的例子,就好比銀行的保險箱,每次往裡存錢,都會記錄誰,什麼時間,存放多少錢,存入的原因等。對應

的版本庫(repository)主要存放**(文件,資料,圖示等),並且每一次更新都要記錄誰,什麼時間,提交了什麼更新,以及更新

的原因是什麼。

git就相當於管理我們這個版本庫的管家,即銀行保險箱的管理人員。

二、git安裝

在linux下的centos下用安裝git

命令:yum -y install git

檢視git是否安裝成功

命令:git --version

三、git基本操作

1、建立版本庫

mkdir test_git//新建目錄test_git

cd test_git//進入目錄

git init//初始化git,現在git會管理這個目錄中的所有內容

2、增加檔案

touch test_git.c//建立乙個新檔案

git add test_git.c//告訴git我要新增乙個檔案,但是git並沒有把你所新增的檔案放入版本庫中,而是對內容進行hash後

成了乙個編號

3、將檔案提交

如圖所示,history就是版本庫,working directory是當前的工作目錄,而stage是暫存區也稱索引區存放工作目錄中那些

你打算提交到版本庫的變更,git add只是將檔案的索引提交的版本庫,而真正的內容並沒有進入版本庫。只有在git commit之後內容才新增到版本庫中。

上面的四條命令在工作目錄、暫存目錄(也叫做索引)和倉庫之間複製檔案。

4、檢視當前**狀態

git status

顯示:changes to be commited  //表示將要提交但是尚未提交的修改(已經add但是尚未commit),也就是在stage區域已經有了,但是還沒有commit的內容

changed but not updated 

// 表示已經修改但是還沒有新增到暫存區的內容(尚未add,當然尚未commit)

四、分支管理

1、概念:在做專案的時候,一次性不能寫完專案,需要每次更新**,但是又不想影響之前的**。這時候,你可以建立乙個分支,然後在這個分支裡寫東西,當覺得不好的時候,你可以把這個分支刪除掉,對你之前的主分支沒有任何影響。或者你覺得這個新特性超出了自己的預想,可以合併到主分支裡,這時候你只要把工作轉回主分支,然後合併分支,最後刪除分支,然後就跟那個分支沒建立一樣。

2、建立新分支:

git branch test              //建立名為test的分支 

3、切換分支:

git checkout test             //切換到test分支工作, 與上面的命令經常一起使用

4、檢視分支:

git branch                      //檢視前版本庫(本地)的所有分支

5、合併分支:

git checkout master        //切換到「要合併到」的分支,常見的就是test分支合併到master分支,所以先切換到master分支

git merge test                //合併test分支到master分支

注意:在合併分支的時候有時候會出現

衝突(conflict)

的情況,建立的情況是master分支和test分支對同一檔案的同一處

**的內容不一樣(例如:master分支在hello.cpp中第三行寫入的是"hello", 而test分支在hello.cpp的第三行中寫入的是

「world」),這樣使得git不知道如何是好,這時候就需要你手工修改**了,我難道要記住master和test在同一位置的內容?當然

不用了,git會在git merge的反饋資訊中說明,**在何部分存在衝突。

6、刪除分支:

git branch -d test          //刪除test分支

7、撤銷改動:

新增了不該新增的檔案,你可以這樣挽回:

git add . //

把所有的檔案都新增進去

git reset head readme  //把

readme

檔案從暫存區域去除

發現你編輯錯了乙個檔案,你想把它恢復到上乙個版本的狀態

git checkout -- filename1 //

只撤消這乙個檔案

如上圖所示,每次提交時,git都會把它們串成一條時間線,這條時間線就是乙個分支。在git裡,master分支是主分支。head指向

master,而master指向提交,所以head指向當前分支。圖中的maint是另外乙個分支。綠色的5位字元表示提交的id,分別指向父節

點。分支用橘色顯示,分別指向特定的提交。當前分支由附在其上的

head

標識。 這張裡顯示最後5次提交,

ed489

是最新提交。

master

分支指向此次提交,另乙個

maint

分支指向祖父提交節點

。五、與遠端版本庫協作

github就是提交遠端版本庫服務的**,所以我們這裡的遠端版本庫為方便起見用github代替,上面我們得操作都是和本地

的git

互動,相當於是和本地的git小助手互動,如何將這些在本地的**和github上的版本庫連線起來:將本地的**推送到github上

1、轉殖github上的版本庫到本地:git clone

2、版本庫同步:git fetch //取來(fetch)遠端版本庫到本地,但是

並不與本地分支合併

3、拖入(pull)遠端版本庫:git pull//與本地分支合併,相當於

git fetch + git 

4、推送到github上:git push

如何使用git?(新手學習筆記)

使用git前,需要先建立乙個倉庫 repository 您可以使用乙個已經存在的目錄作為git倉庫或建立乙個空目錄。使用您當前目錄作為git倉庫,我們只需使它初始化。命令 git init 使用我們指定目錄作為git倉庫。命令 git init newrepo base e anacoda py s...

git 使用新手大坑

1.我把所有的專案像eclipse裡面的排列一樣 然後對某乙個專案 比如 fragmentbestpractic進行的check out 這個意思當然是檢出,因為之前我把fragmentbestpractic這個單個專案的 已經提交到github 了,然後本地有點錯,我就想恢復下這個專案,但是git...

新手使用git(一)

一 目的 1.記錄乙個版本 2.將 回退到之前的版本 3.檢視所有的版本 4.配合遠端倉庫,實現多人協作 二 適用場景 1.專案需求不斷變化 2.多人合作開發,不好合併 三 安裝時 1.路徑不要為中文,檔名不能重複 2.安裝好之後,任何資料夾 右鍵 選擇git bash here 輸入git ver...