本文的內(nèi)容有下面的幾點(diǎn):
1、本地倉(cāng)庫(kù)的操作指令
2、倉(cāng)庫(kù)的遠(yuǎn)程操作
2.1、遠(yuǎn)程倉(cāng)庫(kù)操作
2.2、從遠(yuǎn)程倉(cāng)庫(kù)獲取項(xiàng)目
2.3、上傳項(xiàng)目到遠(yuǎn)程倉(cāng)庫(kù)
3、其他的指令
3.1、查看配置信息
3.2、查看倉(cāng)庫(kù)狀態(tài)
3.3、刪除版本庫(kù)中的文件
3.4、查看文件中修改了的內(nèi)容
3.5、查看歷史記錄
3.6、還原文件(回退)
4、分支管理指令
4.1、創(chuàng)建分支:
4.2、切換分支:
4.3、合并分支命令:
4.4、列出分支
4.5、分支合并
4.6、刪除分支
5、遠(yuǎn)程庫(kù)的基本指令整理
Git 的工作就是創(chuàng)建和保存你項(xiàng)目的快照及與之后的快照進(jìn)行對(duì)比。
Git 常用的命令有:
1)git clone - 克隆倉(cāng)庫(kù)內(nèi)容
2)git push - 推送到遠(yuǎn)程倉(cāng)庫(kù)
3)git add - 向本地倉(cāng)庫(kù)中添加文件
4)git commit - 提交工作區(qū)內(nèi)容到版本庫(kù)
5)git checkout -
6)git pull - 從遠(yuǎn)程倉(cāng)庫(kù)拉取內(nèi)容到工作臺(tái)
說明:
2)staging area — 暫存區(qū)/緩存區(qū)
3)local repository — 版本庫(kù)或本地倉(cāng)庫(kù)
4)remote repository — 遠(yuǎn)程倉(cāng)庫(kù)
1、本地倉(cāng)庫(kù)的操作指令
簡(jiǎn)單的操作指令如下:
$ git init
$ git add .
$ git commit
1)git init - 初始化倉(cāng)庫(kù)。該命令執(zhí)行完后會(huì)在當(dāng)前目錄生成一個(gè) .git 目錄,所有 Git 需要的數(shù)據(jù)和資源都存放在這個(gè)目錄中。
2)git add . - 添加文件到暫存區(qū)。如果當(dāng)前目錄下有幾個(gè)文件想要納入版本控制,需要先用 git add 命令告訴 Git 開始對(duì)這些文件進(jìn)行跟蹤,然后提交。
3)git commit - 將暫存區(qū)的內(nèi)容提交到本地倉(cāng)庫(kù)。所有的更新都會(huì)被提交,包括文件、內(nèi)容更改等。
2、倉(cāng)庫(kù)的遠(yuǎn)程操作
2.1、遠(yuǎn)程倉(cāng)庫(kù)操作
git remote 命令用于在遠(yuǎn)程倉(cāng)庫(kù)的操作。如下所示:
1)顯示所有遠(yuǎn)程倉(cāng)庫(kù):
git remote -v
2)添加遠(yuǎn)程版本庫(kù):
git remote add [別名] [url 地址]
3)刪除遠(yuǎn)程倉(cāng)庫(kù)
git remote rm name
4)修改倉(cāng)庫(kù)名
git remote rename old_name new_name
2.2、從遠(yuǎn)程倉(cāng)庫(kù)獲取項(xiàng)目
git clone [項(xiàng)目地址]
git pull [項(xiàng)目地址]
git fetch [項(xiàng)目地址]
git merge [目標(biāo)地址]/[分支]
git clone - 從遠(yuǎn)程庫(kù)中克隆項(xiàng)目到本地,是一個(gè)包含整個(gè)項(xiàng)目的版本庫(kù)文件夾。該命令通常用于新用戶 clone 項(xiàng)目,熟練之后基本都是用 git pull直接拉取項(xiàng)目。
**git pull - **從遠(yuǎn)程倉(cāng)庫(kù)下載代碼并合并到本地倉(cāng)庫(kù)中。
**git fetch - **從遠(yuǎn)程倉(cāng)庫(kù)獲取最新的更新內(nèi)容(即本地沒有的數(shù)據(jù))。
git merge - 將遠(yuǎn)程倉(cāng)庫(kù)上的所有更新內(nèi)容(假設(shè)已經(jīng)被推送到服務(wù)器了)合并到你的當(dāng)前分支。
2.3、上傳項(xiàng)目到遠(yuǎn)程倉(cāng)庫(kù)
從將本地的分支版本上傳到遠(yuǎn)程并合并可以使用 git push,如下:
git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
如果本地分支名與遠(yuǎn)程分支名相同,可以省略冒號(hào):
git push <遠(yuǎn)程主機(jī)名> <本地分支名>
注意:
1)如果本地版本與遠(yuǎn)程版本有差異,但又要強(qiáng)制推送可以使用 --force 參數(shù):
git push --force origin master
2)刪除主機(jī)的分支可以使用 --delete 參數(shù),以下命令表示刪除 origin 主機(jī)的 master 分支:
git push origin --delete master
3、其他的指令
3.1、查看配置信息
git config --list
3.2、查看倉(cāng)庫(kù)狀態(tài)
git status
git status 命令用于查看在你上次提交之后是否有對(duì)文件進(jìn)行再次修改。
3.3、刪除版本庫(kù)中的文件
git rm xxx.txt
注意:這個(gè)命令使用了之后,要 git commit -m “xxx”之后才算是真正的刪除了。
如果刪除之前修改過并且已經(jīng)放到暫存區(qū)域的話,則必須要用強(qiáng)制刪除選項(xiàng) -f。
git rm -f xxx
如果想把文件從暫存區(qū)域移除,但仍然希望保留在當(dāng)前工作目錄中,即從跟蹤清單中刪除,使用 --cached 選項(xiàng)即可:
git rm --cached <file>
3.4、查看文件中修改了的內(nèi)容
git diff xxx.txt 比較當(dāng)前工作空間與staging area,查看工作空間的變化
git diff --cached 比較staging area與本地倉(cāng)庫(kù),查看暫存區(qū)中變化
git diff HEAD 比較當(dāng)前工作空間與本地倉(cāng)庫(kù)
git diff newbranch 比較當(dāng)前工作空間與newbranch分支
git diff tag1 tag2 比較tag1與tag2
git diff tag1:file1 tag2:file2 比較tag1的file1與tag2的file2
git diff tag1 tag2 file 比較tag1與tag2的file文件
git diff --stat 統(tǒng)計(jì)有差異的文件個(gè)數(shù)
3.5、查看歷史記錄
git log
git log
查看全部提交日志
git log -5
查看最近5次的提交日志
git log –p
查看所有提交日志及修改的內(nèi)容
git log –p --author=“scott”
查看所有scott提交日志及修改內(nèi)容
git log --since=“2011-05-24”
查看2011-05-24以后所有的提交日志
git log --graph
查看提交日志,以圖形方式顯示
git log --since=“2 days ago”
查看這兩天的提交日志
git log --until=“2011-05-25”
查看截止2011-05-25所有的提交日志
git log --name-only
查看所有修改過的文件
git log --pretty=oneline
查看提交日志,一行顯示
git log --pretty=format:%h:%s
查看提交日志,顯示sha1及提交comments
3.6、還原文件(回退)
git revert和git reset的區(qū)別:
git revert 是撤銷某次操作,此次操作之前的commit都會(huì)被保留
git reset 是撤銷某次提交,但是此次之后的修改都會(huì)被退回到暫存區(qū)
git reset --hard
取消commit,取消add,取消源文件修改
git reset --soft
取消commit
git reset --mixed
取消commit,取消add,是默認(rèn)模式
git reset --hard HEAD (比較下)
恢復(fù)到HEAD狀態(tài)
git reset --hard HEAD^
徹底撤銷最近一次提交
git reset --hard HEAD~3
徹底撤銷最近3次提交
git reset --soft HEAD~3
撤銷最近3次commit,恢復(fù)到index狀態(tài),并且工作空間文件內(nèi)容不變
git reset HEAD filename
刪除暫存的文件
git revert
撤銷某次提交,此次操作之前的commit都會(huì)被保留,但撤銷也會(huì)作為一次提交進(jìn)行保存。
git commit --amend
修改最后一次提交。
如果上次提交時(shí)遺漏了文件,可以在提交后將文件加入緩存然后用該命令提交即可。
如果緩存中內(nèi)容沒有任何修改,只更新修改的提交注釋。
回退版本之后,如果推送遠(yuǎn)程庫(kù)是發(fā)生錯(cuò)誤信息時(shí)可以用:
git push -f [ ] [ ] 強(qiáng)推上去
4、分支管理指令
幾乎所有的版本控制系統(tǒng)都可以支持分支。使用分支意味著你可以從開發(fā)主線上分離開來,然后在不影響主線的情況下繼續(xù)開展你自己的工作。
4.1、創(chuàng)建分支:
git branch (branchname)
git checkout -b (branchname) //創(chuàng)建新分支并立即切換到該分支下
4.2、切換分支:
git checkout (branchname)
當(dāng)你切換分支的時(shí)候,Git 會(huì)用該分支的最后提交的快照替換你的工作目錄的內(nèi)容, 所以多個(gè)分支不需要多個(gè)目錄。
4.3、合并分支命令:
git merge
你可以多次合并到統(tǒng)一分支, 也可以選擇在合并之后直接刪除被并入的分支。
4.4、列出分支
列出分支基本命令:
git branch
沒有參數(shù)時(shí),git branch 會(huì)列出你在本地的分支。
$ git branch
* master
這里的意思是:有一個(gè)叫做 master 的分支,并且該分支是當(dāng)前分支。
注意:當(dāng)你執(zhí)行 git init 的時(shí)候,默認(rèn)情況下 Git 就會(huì)為你創(chuàng)建 master 分支。
4.5、分支合并
一旦某分支有了獨(dú)立內(nèi)容,你最終會(huì)希望將它合并回到你的主分支。你可以使用以下命令將任何分支合并到當(dāng)前分支中去:
git merge [分支名]
4.6、刪除分支
合并完后就可以刪除分支:
$ git branch -d newtest
Deleted branch newtest (was c1501a2).
刪除后, 就只剩下 master 分支了:
$ git branch
* master
5、遠(yuǎn)程庫(kù)的基本指令整理
git clone | 從遠(yuǎn)程庫(kù)中克隆項(xiàng)目到本地,是一個(gè)包含整個(gè)項(xiàng)目的版本庫(kù)文件夾。該命令通常用于新用戶 clone 項(xiàng)目,后面基本都是用 git pull。 |
---|---|
git remote | 查看遠(yuǎn)程庫(kù)的別名(進(jìn)入 clone 下來的文件夾中執(zhí)行該命令,別名默認(rèn)是 origin) |
git remote –v | 查看遠(yuǎn)程庫(kù)的別名和倉(cāng)庫(kù)地址。如返回: origin git@gitee.com:ivyli2019/test.git |
git push origin master | 把本地 master 分支推送到別名為 origin 的遠(yuǎn)程庫(kù) |
git remote add mytest [url] | 添加/關(guān)聯(lián)一個(gè)遠(yuǎn)程倉(cāng)庫(kù),并起別名為 mytest,可自定義別名。 |
git remote remove mytest | 刪除遠(yuǎn)程庫(kù)的 mytest 別名 |
git branch -a | 查看當(dāng)前所有的分支,默認(rèn)只有 master 分支 |
git branch test | 創(chuàng)建 test 分支 |
git branch –d test | 刪除 test 分支 |
git checkout test | 從當(dāng)前分支切換到 test 分支 |
git checkout –b dev | 創(chuàng)建 dev 分支,并切換到 dev 分支上 |
git merge dev | 在當(dāng)前分支上合并 dev 分支 |
命令 | 說明 |
---|---|
git add | 添加文件到倉(cāng)庫(kù) |
git status | 查看倉(cāng)庫(kù)當(dāng)前的狀態(tài),顯示有變更的文件。 |
git diff | 比較文件的不同,即暫存區(qū)和工作區(qū)的差異。 |
git commit | 提交暫存區(qū)到本地倉(cāng)庫(kù)。 |
git reset | 回退版本。 |
git rm | 刪除工作區(qū)文件。 |
git mv | 移動(dòng)或重命名工作區(qū)文件。 |
命令 | 說明 |
---|---|
git log | 查看歷史提交記錄 |
git blame | 以列表形式查看指定文件的歷史修改記錄 |
-
項(xiàng)目
+關(guān)注
關(guān)注
0文章
33瀏覽量
17475 -
Git
+關(guān)注
關(guān)注
0文章
195瀏覽量
15688
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論