git基礎介紹與GitKraken操作簡記

2021-07-28 16:42:11 字數 3519 閱讀 4528

剛開始嘗試使用git的時候,簡直是被弄得生不如死啊,寫了半天的**一下子被刪了,那時候的心情簡直想shi,後來沒辦法,抽了點時間學習了一下git的原理,其實就是你的檔案現在到底在什麼狀態,這麼乙個問題,由於只是了解,所以不知道具體的操作,具體操作還是需要gitkraken這個gui工具來實現。

使用git管理版本的檔案在本地會有下面三個過程:

注意上面的英文,因為在一些版本管理軟體的gui介面中就會顯示這些的,所以注意一下。

上面講的這些狀態都在gitkraken的最右邊部分有顯示:

從上到下分別是modified、staged、commit。

本地基本不怎麼會被作死,但是遠端,特別是使用命令列來操作遠端的時候,加上分支,分分鐘想shi。。。。。。

回到原題,這裡也先介紹一些基礎知識,注意其中各部分的預設名稱,在不熟悉git命令的情況下會經常看見這些預設名稱。

//原始版本,就是儲存在你遠端倉庫中的部分:

public function showname()

//新版本,就是你本次committed的內容:

public function showname()

你沒有在原始的內容上新增,而是做了修改,這個時候,git要選擇儲存哪乙個版本?最新的版本?git會丟擲錯誤,顯示無法push,然後讓你選擇要儲存哪乙個版本,選擇好後再push。但是這個時候又有乙個問題,別人在遠端更新了develop(假設你也在develop分支),這個時候請問你想push的話會怎麼樣呢?這個時候最保險的做法是:先pull,再push。如果你使用gitkraken的話,那麼他會自動更新遠端跟蹤分支,如果你在這種情況下push,那麼他會問你是強制push,還是先pull,再push,當然,前提是pull沒有衝突。

這裡是我後面新建的內容,主要是描述git命令,雖然gui介面很好,但是我還是喜歡敲命令列,總感覺很屌。

先來說兩個常量:

origin是預設的倉庫名,master是預設的分支名,注意這兩者的差別以及其含義,接下來的命令中經常會看見這兩個傢伙。

這裡的$url就是一般給的github超連結

檢視遠端倉庫名,注意是倉庫名,不是分支名,一般情況下是origin

原來使用git remote檢視的時候只看到乙個遠端倉庫origin,現在使用git remote add之後就新建了乙個newrepetory的新倉庫。

重新命名遠端倉庫

git remote rename origin_name new_name

刪除遠端倉庫

git remote rm repetoryname

檢視是否還有修改過,但是沒有commited的檔案,下面分別演示有和沒有的顯示情況:

檢視修改的內容,可以加檔名或者不加。

將檔案新增到staged狀態,就是快取起來,但是還有沒有commit。

將staged檔案(就是git add)之後的檔案,commit。

遠端倉庫預設是origin

下面是乙個額外的發現:

未衝突前原始檔案

在github官網將檔案內容進行修改

接著我再在本地的檔案中新增加內容:

接著使用git pull 命令,就可以看見衝突了。

麻煩了這麼久,就是為了看到這麼乙個衝突,心好類。注意看這裡的衝突顯示部分:

<<<<<<< head

我是本地原始檔案內容

這裡是未起衝突,並且新新增的部分

*****==

我是本地原始檔案內容,其實只要git push之前,本地落後遠端,則會顯示錯誤。

head部分表示本地的原始內容,而**********====下面的則是遠端的內容(後來出了一點狀況,所以與上面的顯示有點出入),接著你要幹的事情就是解決這個衝突了。

至於如何解決這個衝突,我倒還真沒怎麼嘗試過,因為之前一直在學git的命令,自己乙個人程式設計,也很少遇到過衝突的情況,所以這個可能還需要額外學習吧,這裡先是介紹原理。

上面我們知道,我們建立衝突的方式是:

假設這裡我們就要保留本地最新修改的,就是head後面的部分。

那麼我們就只要把git新增的刪除掉:

<<<<<<< head 刪除掉這一行

我是本地原始檔案內容

這裡是未起衝突,並且新新增的部分

*****== 刪除掉這一行

我是本地原始檔案內容,其實只要git push之前,本地落後遠端,則會顯示錯誤。 刪除掉這一行

之後再使用git push,就可以將本地的修改同步到遠端倉庫了。

最後解決衝突後結果:

這裡介紹乙個可能是錯誤的觀點,但是這個觀點很重要,因為它可以一瞬之間毀掉你寫了半天的**:

git好像是使用版本進行判斷的,如果你的版本落後遠端,則需要先進行git pull來同步,如果有衝突,無論你解沒解決,之後你執行:

這樣的內容。所以在你不熟悉git的情況下,推薦使用gui軟體,否則你真的很有可能給別人造成很多麻煩。

提示是要我用這樣的結構,不過每次寫起來好麻煩啊,如果能正確執行,則會讓你輸入使用者名稱和密碼。驗證都通過之後就會將本地的修改同步到遠端了。

如果本地版本落後遠端版本,則會提示錯誤,就要先執行git pull,解決完衝突,或者沒有衝突之後,再來git push。

檢視遠端倉庫具體資訊

更新本地關於遠端倉庫的資訊

git pull 的第一步,省略了合併(merge)的過程。可以說:

git pull = git fetch + git merge

切換分支

檢視歷史提交記錄

這個好像還有點問題。我再試試。

git基礎學習(一)git介紹

cvs及 svn都是集中式的 版本控制 系統,而 git是分布式版本控制系統,集中式和分布式版本控制系統有什麼區別呢?先說集中式版本控制系統,版本庫是集中存放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從 伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給 伺服器。伺服器就...

git 介紹與安裝

1 什麼是git?git是現在最先進的分布式版本控制系統,跟cvs,svn是同級概念。2 相較於其他的版本控制工具,git的優勢是什麼?git屬於分布式版本控制器,而以前常用的cvs和svn都是集中式版本控制器。分布式版本控制和集中式的區別 集中式版本控制系統 1 版本庫是集中存放在 伺服器 的,工...

Git介紹與使用

git是什麼?1.git是目前主流的分布式版本控制系統之一 svn與git的最主要區別?使用1.建立版本庫 什麼是版本庫?版本庫又名倉庫,英文名repository,你可以簡單的理解乙個目錄,這個目錄裡面的所有檔案都可以被git管理起來,每個檔案的修改,刪除,git都能跟蹤,以便任何時刻都可以追蹤歷...