您好,登錄后才能下訂單哦!
小編給大家分享一下git命令怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1 | which -a git //查看有哪些版本 |
配置.bash_profile文件,選擇自己需要的版本
1 | vim .bash_profile |
加入需要制定環境相對路徑
1 | export PATH="/user/local/git/bin:$SPAH" |
編輯好后,重新載入.bash_profile
1 | source .bash_profile |
配置用戶名:
1 | git config -- global user.name jspang |
配置郵箱:
1 | git config --global user.email jspang@126.com |
三、Git配置的三個級別
1、system –針對于系統
2、global –針對于當前用戶
3、local –針對于當前倉庫
配置的優先級: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 |
1 | e8bd40626e0af320b3c1bdf6154b44a59ed78039 |
1、blobs:每個blob代表一個(版本的)文件,blob只包含文件的數據,而忽略文件的其他元數據,如名字,路徑格式等。
2、trees:每個tree代表了一個目錄的信息,包含了此目錄下的blobs,子目錄(對應于子trees),文件名、路徑等元數據。因此,對于有子目錄的目錄,git相當于存儲了嵌套的trees。
3、commits:每個commmit記錄了提交一個更新的所有元數據,如指向的tree,父commit,作者、提交者、提交日期、提交日志等。每次提交都指向一個tree對象,記錄了檔次提交時的目錄信息。一個commit可以有多個(至少一個)父commits。
4、tags:tag用于給某個上述類型的對象指配一個便于開發者記憶的名字,通常用于某次commit。
基本對象關系圖
1.git init:初始化一個Git倉庫
1 | git init git_test |
這個命令創建了一個叫git_test 的倉庫,并在你制定的目錄下邊建立了一個git_test文件夾。同時在文件夾中生成了.git。
1 | git init --bare git_bare_test |
生成一個裸的倉庫,它不帶.git文件,也就是不帶工作區。
2.git clone:
1 | git clone https://github.com/shenghy/Scroll.git |
克隆一個已有的倉庫,后邊可以是URL也可以是本地路徑。這個命令經常使用,在GitHub上看到別人好的開源項目,都可以clone下來進行一番研究了。
1.working directory:工作區
2.staging area:暫存區
3.history repository:歷史倉庫
Git工作區直接跟暫存區打交道暫存區跟版本庫打交道。
從工作區中添加內容到暫存區。
將暫存區的內容提交到版本庫。
從版本庫中檢出內容到工作區。
1.git add:主要用于把我們要提交的文件信息添加到暫存區中。
1 | git add -u |
把所有tracked文件中被修改過或已刪除文件的信息添加到暫存區。它不會處理untracted的文件。
1 | git add -A |
表示把所有tracked文件中被修改過或已刪除文件和所有untracted的文件信息添加到暫存區。
1 | git add -i |
查看所有修改過或已刪除文件但沒有提交的文件。
2.git commmit:把暫存區內容添加到版本倉庫中。
1 | git commit -m "提交的描述信息" |
如果我們這里不用-m的參數的話,git將抵用Vim來讓我們輸入提交信息。
1 | git commit -a -m "提交的描述信息" |
我們一天可能更新了很多文檔,但是我們忘記了它們的名字,此時我們將所做的全部更新添加到版本庫中。
3.git status:查看工作區、暫存區和版本庫的差異情況。
4.git rm:在git中我們可以通過git rm命令把一個文件刪除,并把它從git的倉庫管理系統中移除。但是最后要之心git commit 才真正提交到git倉庫中。
1 2 | git rm a git commit -m "delete a file" |
刪除暫存區中的啊文件,要用–cached參數
1 | git rm --cached a |
5.git mv:git文件重命名或移動路徑時使用命令
把文件a 從新命名為c
1 | git mv a c |
其實git沒有重命名或移動的操作,實際上Git是一系列操作的組合。
6.gitignore:把不需要跟蹤的文件添加到這個文件中就可以避免跟蹤了。在這個文件中可以使用通配符。
有些時候文件夾里沒有這個文件,你可以自己手動建一個.gitignore文件。
1 | git branch test //新建test分支 |
創建了分支,我們并沒有直接到這個分支上,而還是在個主分支上。我們需要用切換分支命令切換到新創建的test分支上。
1 | git branch |
不帶參數,列出本地已經存在的分支,并且在當前分支前面會加“*”號標記。
1 | git branch -r //列出遠程分支 |
1 | git branch -a //列出本地分支和遠程分支 |
重命名分支,如果newbranch名字分支已經存在,則需要使用 -M強制重命名,否則,使用-m進行重命名。
1 | git branch -m | -M oldbranch newbranch |
刪除branchname分支
1 | git branch -d | -D branchname |
刪除遠程 branchname分支
1 | git branch -d -r branchname |
git標簽分為兩種類型:輕量標簽和附注標簽。輕量標簽是指向提交對象的引用,附注標簽則是倉庫中的一個獨立對象。建議使用附注標簽。
創建輕量標簽
1 | git tag v0.1.2 -light |
創建附注標簽
1 | git tag -a v0.1.2 -m "0.1.2版本" |
創建輕量標簽不需要傳遞參數,直接制定標簽名稱即可。
創建附注標簽時,參數a即annotated的縮寫,制定標簽類型,后附標簽名。參數m指定標簽說明,說明信息會保存在標簽對象中。
在學習這個給分支起別名的操作前,我們要會使用一個查看Log日志的命令,用這個命令查出我們現在的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上 |
當我們在一個分支上作了修改,提交到了暫存區,但是沒有提交到版本庫中。這時我們要切換分支(比如切換到master分支 git checkout master),系統會報錯,提示我們暫存區有文件沒有提交。如果我們還不想提交文件,這時我們就可以使用下邊的命令把暫存區的文件保存起來。
1 | git stash save -a "stash2" |
stash英文是藏匿的意思。當我們在其它分支工作完后,回到藏匿的分支后,如何恢復藏匿的內容那?
1)可以用命令先查看我們藏匿了什么東西。
1 | git stash list |
通過這個命令,會列出我們所藏匿東西的引用。
2)可以用如下命令進行還原藏匿的東西。
1 | git stash pop --index stash@{0} |
我們這時候用git status命令查看一下git狀態,會發現我們藏匿的東西已經還原回去了。這條命令不僅恢復了藏匿的內容,并刪除了藏匿區的內容,由多個動作組成。如果我們只想還原暫存區的藏匿內容,但并不刪除藏匿區內容的話,可以使用下邊這條命令。
1 | git stash apply --index stash@{0} |
我們用 git stash apply –index stash{0}命令恢復藏匿內容后,我們又想刪除藏匿區內容時可以用下邊這條命令。
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:還原工作區
原來我們用git checkout 命令來切換分支,今天我們學習另一個用圖,用它來還原我們的工作區。案例命令如下:
1 | git checkout --master.txt |
這個命令其實是用暫存區的內容覆蓋工作區的內容。
2.git reset:還原暫存區
當我們把工作區的內容用 git add .提交到暫存區后,我們可以使用git Reset fileName 命令來還原暫存區的內容,實例命令如下:
1 | git reset master.txt |
輸入此命令后,可以用git status 查看Git狀態,發現已經沒有差別了。
還原其他歷史版本信息:
1 | git checkout INITIAL_COMMIT --master.txt |
INITIAL_COMMIT是一個版本的引用。
1 | git checkout HEAD --master.txt |
3.git clean:清楚沒有跟蹤的文件
查看我們沒有跟蹤和可移除的工作區內容,也就是將要被刪除的內容。
1 | git clean -n |
查看后我們可以下邊的命令刪除內容
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:產生新的提交,覆蓋以前的提交
1 | git revert HEAD |
1 | git clone https://github.com/shy-test/test.git |
通過這個命令我們已經把遠程倉庫克隆到我們本地來了。使用這個命令只要到工作目錄,不需要再創建倉庫目錄,倉庫目錄會自己被克隆下來。
先進入本地倉庫目錄,然后用git fetch命令來獲取遠端倉庫的所有內容。相當于是從遠程獲取最新版本到本地,不會自動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分支上,之后進行比較合并。
1 | git pull origin master |
上述命令其實相當于git fetch 和git merge,在實際使用中,git fetch更安全一些,因為在merge前,我們可以查看更新情況,然后再決定是否合并。
1 | git push <遠程主機名> <本地分支名>:<遠程分支名> |
注意,分支推送順序的寫法是<來源地>:<目的地>,所以git pull是<遠程分支>:<本地分支>,而git push 是<本地分支>:<遠程分支>.
如果省略本地分支名,則表示將本地分支推送與之存在“追蹤關系”的遠程分支(通常兩者同名),如果該遠程分支不存在,則會被新建。
1 | git push orgin master |
上面命令表示,將本地分master分支推送到origin筑基的master分支。如果后者不存在,則會被新建。
如果省略本地分支名,則表示刪除指定遠程分支,因為這等同于推送一個空的本地分支到遠程分支。
1 2 3 | git push origin : master //等同于 git push origin ---delete master |
上面命令表示刪除origin主機的master分支。
如果當前分支與遠程分支之間存在追蹤關系,則本地分支和遠程分支都可以省略。
1 | git push origin |
上面命令表示,將當前分支推送到origin主機的對應分支。
如果當前分支只是一個追蹤分支,那么主機名都可以省略。
1 | git push |
如果我們想要推送一個tag的話,可以使用下邊的命令:
1 | git push --tags |
用push刪除遠程分支:
1 | git push --delete origin feacher |
以上是“git命令怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。