溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

git命令怎么用

發(fā)布時間:2021-10-21 13:43:32 來源:億速云 閱讀:150 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下git命令怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、查看計算機里有哪些Git版本,并選用你想使用的版本

1

which -a git //查看有哪些版本

配置.bash_profile文件,選擇自己需要的版本

1

vim .bash_profile

加入需要制定環(huán)境相對路徑

1

export PATH="/user/local/git/bin:$SPAH"

編輯好后,重新載入.bash_profile

1

source .bash_profile

二、配置自己的Git信息

配置用戶名:

1

git config -- global user.name jspang

配置郵箱:

1

git config --global user.email jspang@126.com

三、Git配置的三個級別

1、system  –針對于系統(tǒng)
2、global –針對于當前用戶
3、local  –針對于當前倉庫

配置的優(yōu)先級:local>global>system

四、如何查看Git文檔

第一種方法:

1

git config --help

第二種方法:

1

git help config

五、重命名Git命令

1

2

3

4

git config --global alias.co checkout

git config --global alias.br branch

git config --global alias.st status

git cofnig --global alias.ci commit


六、Git使用40個16進制字符的SHA-1 Hash來唯一標識對象

1

e8bd40626e0af320b3c1bdf6154b44a59ed78039

七、Git的四種基本對象類型,組成了Git更高級的數(shù)據(jù)結(jié)構(gòu):

1、blobs:每個blob代表一個(版本的)文件,blob只包含文件的數(shù)據(jù),而忽略文件的其他元數(shù)據(jù),如名字,路徑格式等。
2、trees:每個tree代表了一個目錄的信息,包含了此目錄下的blobs,子目錄(對應(yīng)于子trees),文件名、路徑等元數(shù)據(jù)。因此,對于有子目錄的目錄,git相當于存儲了嵌套的trees。
3、commits:每個commmit記錄了提交一個更新的所有元數(shù)據(jù),如指向的tree,父commit,作者、提交者、提交日期、提交日志等。每次提交都指向一個tree對象,記錄了檔次提交時的目錄信息。一個commit可以有多個(至少一個)父commits。
4、tags:tag用于給某個上述類型的對象指配一個便于開發(fā)者記憶的名字,通常用于某次commit。

git命令怎么用基本對象關(guān)系圖

八、獲取Git倉庫的命令

1.git  init:初始化一個Git倉庫

1

git init git_test


這個命令創(chuàng)建了一個叫g(shù)it_test 的倉庫,并在你制定的目錄下邊建立了一個git_test文件夾。同時在文件夾中生成了.git。

1

git init --bare git_bare_test


生成一個裸的倉庫,它不帶.git文件,也就是不帶工作區(qū)。

2.git clone:

1

git clone https://github.com/shenghy/Scroll.git

克隆一個已有的倉庫,后邊可以是URL也可以是本地路徑。這個命令經(jīng)常使用,在GitHub上看到別人好的開源項目,都可以clone下來進行一番研究了。

九、Git倉庫的三個區(qū)域

1.working directory:工作區(qū)

2.staging area:暫存區(qū)

3.history repository:歷史倉庫

git命令怎么用

Git工作區(qū)直接跟暫存區(qū)打交道暫存區(qū)跟版本庫打交道。

  • 從工作區(qū)中添加內(nèi)容到暫存區(qū)。

  • 將暫存區(qū)的內(nèi)容提交到版本庫。

  • 從版本庫中檢出內(nèi)容到工作區(qū)。

十、Git流程操作命令

1.git add:主要用于把我們要提交的文件信息添加到暫存區(qū)中。

1

git add -u

把所有tracked文件中被修改過或已刪除文件的信息添加到暫存區(qū)。它不會處理untracted的文件。

1

git add -A

表示把所有tracked文件中被修改過或已刪除文件和所有untracted的文件信息添加到暫存區(qū)。

1

git add -i

查看所有修改過或已刪除文件但沒有提交的文件。

2.git commmit:把暫存區(qū)內(nèi)容添加到版本倉庫中。

1

git commit -m "提交的描述信息"

如果我們這里不用-m的參數(shù)的話,git將抵用Vim來讓我們輸入提交信息。

1

git commit -a -m "提交的描述信息"

我們一天可能更新了很多文檔,但是我們忘記了它們的名字,此時我們將所做的全部更新添加到版本庫中。

3.git status:查看工作區(qū)、暫存區(qū)和版本庫的差異情況。

4.git  rm:在git中我們可以通過git rm命令把一個文件刪除,并把它從git的倉庫管理系統(tǒng)中移除。但是最后要之心git commit 才真正提交到git倉庫中。

1

2

git rm a

git commit -m "delete a file"

刪除暫存區(qū)中的啊文件,要用–cached參數(shù)

1

git rm --cached a

5.git mv:git文件重命名或移動路徑時使用命令

把文件a 從新命名為c

1

git mv a c

其實git沒有重命名或移動的操作,實際上Git是一系列操作的組合。

6.gitignore:把不需要跟蹤的文件添加到這個文件中就可以避免跟蹤了。在這個文件中可以使用通配符。

有些時候文件夾里沒有這個文件,你可以自己手動建一個.gitignore文件。

十一、Git本地創(chuàng)建分支

1

git branch test  //新建test分支

創(chuàng)建了分支,我們并沒有直接到這個分支上,而還是在個主分支上。我們需要用切換分支命令切換到新創(chuàng)建的test分支上。

1

git branch

不帶參數(shù),列出本地已經(jīng)存在的分支,并且在當前分支前面會加“*”號標記。

1

git branch -r //列出遠程分支

1

git branch -a //列出本地分支和遠程分支

重命名分支,如果newbranch名字分支已經(jīng)存在,則需要使用 -M強制重命名,否則,使用-m進行重命名。

1

git branch -m | -M oldbranch  newbranch

刪除branchname分支

1

git branch -d | -D branchname

刪除遠程 branchname分支

1

git branch -d -r branchname

十二、Git給分支起別名(也叫打標簽)

git標簽分為兩種類型:輕量標簽和附注標簽。輕量標簽是指向提交對象的引用,附注標簽則是倉庫中的一個獨立對象。建議使用附注標簽。

  • 創(chuàng)建輕量標簽

  • 1

    git tag v0.1.2 -light

  • 創(chuàng)建附注標簽

  • 1

    git tag -a v0.1.2 -m "0.1.2版本"

創(chuàng)建輕量標簽不需要傳遞參數(shù),直接制定標簽名稱即可。
創(chuàng)建附注標簽時,參數(shù)a即annotated的縮寫,制定標簽類型,后附標簽名。參數(shù)m指定標簽說明,說明信息會保存在標簽對象中。

在學習這個給分支起別名的操作前,我們要會使用一個查看Log日志的命令,用這個命令查出我們現(xiàn)在的Git情況,然后再給它起名。

查看版本歷史示意圖:

1

git log --oneline --decorate --graph --all

1

git tag "v0" 51bcb0d

當然我們查看歷史版本示意圖打的命令太長了,我們可以給這個命令起個別名:

1

git config --global alias.lol "log --oneline --decorate --graph --all"

以后及可以用git lol命令進行查看歷史版本示意圖了。

用Git命令起名為“v0”,并表示他的HS值。如果不制定Hash的話,會默認制定HEAD指定的Hash(也就是當前HS),一般我們只用5-7位的Hash。

十三、分支之間的切換

1

git checkout test //切換分支到test


十四、切換分支前保存本地的修改和暫存區(qū)的修改

當我們在一個分支上作了修改,提交到了暫存區(qū),但是沒有提交到版本庫中。這時我們要切換分支(比如切換到master分支 git checkout master),系統(tǒng)會報錯,提示我們暫存區(qū)有文件沒有提交。如果我們還不想提交文件,這時我們就可以使用下邊的命令把暫存區(qū)的文件保存起來。

1

git stash save -a "stash2"

stash英文是藏匿的意思。當我們在其它分支工作完后,回到藏匿的分支后,如何恢復藏匿的內(nèi)容那?

1)可以用命令先查看我們藏匿了什么東西。

1

git stash list

通過這個命令,會列出我們所藏匿東西的引用。

2)可以用如下命令進行還原藏匿的東西。

1

git stash pop --index stash@{0}

我們這時候用git status命令查看一下git狀態(tài),會發(fā)現(xiàn)我們藏匿的東西已經(jīng)還原回去了。這條命令不僅恢復了藏匿的內(nèi)容,并刪除了藏匿區(qū)的內(nèi)容,由多個動作組成。如果我們只想還原暫存區(qū)的藏匿內(nèi)容,但并不刪除藏匿區(qū)內(nèi)容的話,可以使用下邊這條命令。

1

git stash apply --index stash@{0}

我們用 git stash apply –index stash{0}命令恢復藏匿內(nèi)容后,我們又想刪除藏匿區(qū)內(nèi)容時可以用下邊這條命令。

1

git stash drop stash@{0}

如果我們不加stash@{0}引用的話,它會默認刪除stash棧里最上邊的那一個。如果我們有多個stash想清理的話,我們可以使用

1

git stash clear

進行清理。

十五、本地合并分支

合并分支有很多情況,有時還要處理沖突情況。這里今天不做過多介紹,只介紹一個最基本的語法。

1

git merge branchName

merge分兩種

1)fast-farword merge

master分支衍生出來的

2)non-fast-farword merge

三方合并分支

十六、撤銷修改

1.git checkout:還原工作區(qū)

原來我們用git checkout 命令來切換分支,今天我們學習另一個用圖,用它來還原我們的工作區(qū)。案例命令如下:

1

git checkout --master.txt

這個命令其實是用暫存區(qū)的內(nèi)容覆蓋工作區(qū)的內(nèi)容。

2.git reset:還原暫存區(qū)

當我們把工作區(qū)的內(nèi)容用 git add .提交到暫存區(qū)后,我們可以使用git Reset fileName 命令來還原暫存區(qū)的內(nèi)容,實例命令如下:

1

git  reset master.txt

輸入此命令后,可以用git status 查看Git狀態(tài),發(fā)現(xiàn)已經(jīng)沒有差別了。

還原其他歷史版本信息:

1

git checkout INITIAL_COMMIT --master.txt

INITIAL_COMMIT是一個版本的引用。

1

git checkout HEAD --master.txt

3.git clean:清楚沒有跟蹤的文件

查看我們沒有跟蹤和可移除的工作區(qū)內(nèi)容,也就是將要被刪除的內(nèi)容。

1

git clean -n

查看后我們可以下邊的命令刪除內(nèi)容

1

git clean -f

用git clean 命令查看將要被移除.gitignore指定的不提交文件,命令如下:

1

git clean -n -x

用git clean -X -f 密令刪除.gitignore,注意這里的X是大寫的X

1

git clean -X -f

4.git revert:產(chǎn)生新的提交,覆蓋以前的提交

1

git revert HEAD

十七、遠程協(xié)作主要命令

git clone:克隆遠端倉庫到本地

1

git clone https://github.com/shy-test/test.git

通過這個命令我們已經(jīng)把遠程倉庫克隆到我們本地來了。使用這個命令只要到工作目錄,不需要再創(chuàng)建倉庫目錄,倉庫目錄會自己被克隆下來。

二、git fetch:獲取遠端倉庫的所有內(nèi)容,包括所有分支內(nèi)容

先進入本地倉庫目錄,然后用git fetch命令來獲取遠端倉庫的所有內(nèi)容。相當于是從遠程獲取最新版本到本地,不會自動merge。

1

2

3

Git fetch origin master

git log -p master..origin/master

git merge origin/master

以上命令的含義:
首先從遠程的origin的master主分支下載最新的版本到origin/master分支上,然后比較本地的master分支和origin/master分支的差別,最后進行合并。
上述過程其實可以用以下更清晰的方式來進行:

1

2

3

git fetch origin master:tmp

git diff tmp

git merge tmp

從遠端獲取最新的版本到本地的tmp分支上,之后進行比較合并。

三、git pull,是git fetch 和 git merge的操作合并

1

git pull origin master

上述命令其實相當于git fetch 和git merge,在實際使用中,git fetch更安全一些,因為在merge前,我們可以查看更新情況,然后再決定是否合并。

四、git push:命令御用將本地分支的更新,推送到遠程倉庫主機上。

1

git push <遠程主機名> <本地分支名>:<遠程分支名>

注意,分支推送順序的寫法是<來源地>:<目的地>,所以git pull是<遠程分支>:<本地分支>,而git push 是<本地分支>:<遠程分支>.
如果省略本地分支名,則表示將本地分支推送與之存在“追蹤關(guān)系”的遠程分支(通常兩者同名),如果該遠程分支不存在,則會被新建。

1

git push  orgin master

上面命令表示,將本地分master分支推送到origin筑基的master分支。如果后者不存在,則會被新建。
如果省略本地分支名,則表示刪除指定遠程分支,因為這等同于推送一個空的本地分支到遠程分支。

1

2

3

git push origin : master

//等同于

git push origin ---delete master

上面命令表示刪除origin主機的master分支。
如果當前分支與遠程分支之間存在追蹤關(guān)系,則本地分支和遠程分支都可以省略。

1

git push origin

上面命令表示,將當前分支推送到origin主機的對應(yīng)分支。
如果當前分支只是一個追蹤分支,那么主機名都可以省略。

1

git push

如果我們想要推送一個tag的話,可以使用下邊的命令:

1

git push --tags

用push刪除遠程分支:

1

git push --delete origin feacher

以上是“git命令怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

git
AI