配置
git config --global user.name [name]
git config --global user.email [emailUrl]
配置name和email
git config --list
查看所有配置
遠(yuǎn)程倉庫相關(guān)命令
git clone [remoteUrl]遠(yuǎn)程倉庫地址
檢出(克隆)倉庫,地址可以是https的方式也可以是ssh的方式
git remote
查看已經(jīng)存在的遠(yuǎn)程分支
git remote -v | --verbose
列出詳細(xì)信息,在每個(gè)名字后面列出其遠(yuǎn)程url
** git remote add [遠(yuǎn)程倉庫名] url ** 添加一個(gè)新的遠(yuǎn)程倉庫提岔,可以指定一個(gè)簡單的名字哼凯。eg:
git remote add origin git://github.com/gitName.git
git remote add [name] [url]
添加遠(yuǎn)程倉庫
git remote rm [name]
刪除遠(yuǎn)程倉庫
git pull [remoteName] [localBranchName]
拉取遠(yuǎn)程倉庫
git init --bare
創(chuàng)建一個(gè)所謂的裸倉庫霜运,之所以叫裸倉庫是因?yàn)檫@個(gè)倉庫只保存git歷史提交的版本信息挑童,而不允許用戶在上面進(jìn)行各種git操作序六,如果你硬要操作的話报破,只會得到下面的錯(cuò)誤(”This operation must be run in a work tree”)
git init
初始化一個(gè)倉庫
分支相關(guān)命令
git branch
查看本地分支悠就,星號(*)表示當(dāng)前所在的分支
git branch -r
查看遠(yuǎn)程分支
git branch -a
查看所有分支
git branch [name]
創(chuàng)建本地分支,注意:新分支創(chuàng)建后不會自動切換為當(dāng)前分支
git checkout [name]
切換分支
git checkout -b [name]
創(chuàng)建分支充易,并立即切換到新的分支
git branch -d [name]
刪除分支
git merge [name]
合并分支,將名稱為[name]的分支與當(dāng)前分支合并
git rebase [name1] [name2]
衍合分支梗脾,將name1分支衍合到name2分支上。
暫存(stash) 相關(guān)命令
git stash
保存當(dāng)前工作區(qū)和暫存區(qū)的修改
git stash save -a "暫存描述信息"
網(wǎng)上很多很多資料都沒有加 -a 這個(gè)option選項(xiàng)盹靴,我想他們的代碼開發(fā)可能都是在原代碼上進(jìn)行修改吧炸茧。而對于在項(xiàng)目里加入了代碼新文件的開發(fā)來說瑞妇,-a選項(xiàng)才會將新加入的代碼文件同時(shí)放入暫存區(qū)。
git stash list
查看已暫存的列表
git stash pop [--index] [<stash>] 恢復(fù)
--index: 參數(shù):不僅恢復(fù)工作區(qū)梭冠,還恢復(fù)暫存區(qū)辕狰。
<stash>: 指定恢復(fù)某一個(gè)具體進(jìn)度。如果沒有這個(gè)參數(shù)控漠,默認(rèn)恢復(fù)最新進(jìn)度
eg:
git stash pop --index stash@{1}
git stash pop stash@{id或者編號}
將指定編號的暫存應(yīng)用(恢復(fù))到工作區(qū)蔓倍,并把這條暫存從暫存列表中移除
git stash drop [<stash>]
刪除某一個(gè)stash,默認(rèn)刪除最新的進(jìn)度
git stash clear
將所有stash清除
git stash pop 和 git stash apply的區(qū)別
git stash pop stash@{id} 命令會在執(zhí)行后將對應(yīng)的stash id 從stash list里刪除,而git stash apply stash@{id} 命令則會繼續(xù)保存stash id
tag 相關(guān)命令
git tag
查看標(biāo)簽
git tag [name]
創(chuàng)建標(biāo)簽
git tag -d [name]
刪除標(biāo)簽
git push origin [name]
本地標(biāo)簽push到遠(yuǎn)程
git push origin :refs/tags/[name]
刪除遠(yuǎn)程標(biāo)簽
git pull origin --tags
合并遠(yuǎn)程倉庫的tag到本地
忽略文件和文件夾
在倉庫目錄下創(chuàng)建名稱為.gitignore
的文件盐捷,寫入需要忽略的文件夾名或文件名偶翅,每個(gè)元素占一行即可
文件的生命周期
git add .
將工作時(shí)所有的變化提交到暫存區(qū),包括文件內(nèi)容修改以及新文件毙驯,但不包括刪除文件
git add -u
u: update、僅監(jiān)控已經(jīng)跟蹤(被add)的文件灾测,不會提交新文件
git add -a
a: all爆价、是上面兩個(gè)功能的合集
git checkout [filePath]
撤銷修改
git reset HEAD [filePath]
撤銷暫存
git commit -m "提交信息"
將暫存區(qū)的修改提交到本地庫
git reset --soft HEAD^
撤銷本次提交
git reset --hard [commitId]
工作區(qū)和暫存區(qū)都回滾
git reset --soft [commitId]
將高于指定提交的內(nèi)容回退到暫存區(qū)域,只需重新commit
git reset --mixed [commitId]
mixed為默認(rèn)媳搪,將高于指定提交的內(nèi)容回退到工作區(qū)域铭段,需重新add、commit
git rm --cache [filePath]
刪除暫存區(qū)或分支上的文件秦爆,不刪除工作區(qū)的這個(gè)文件序愚,只是刪除版本控制
git rm [filePath] 將文件從工作區(qū),暫存區(qū)等限,分支上刪除
git pull
git pull = git fetch + git merge
git fetch:把服務(wù)器的commit取回到本地
git merge: 把從服務(wù)器取回的代碼合并到本地
git rebase
把本地的修改先暫存起來爸吮,然后將服務(wù)器的代碼應(yīng)用到本地,再將暫存提交應(yīng)用
1望门、git rebase #合并代碼
2形娇、出現(xiàn)沖突就解決沖突
3、git add . 重新添加
4筹误、git rebase --continue #應(yīng)用補(bǔ)丁
git rebase --abort #回滾到合并的狀態(tài)
注意事項(xiàng):
可直接使用
'git pull --rebase'
也可以通過全局配置 git pull
'git config brach.[分支的名字].rebase true'
git log --graph
查看各個(gè)branch之間的關(guān)系圖
分支合并:git rebase [branch a] [branch b] : 將分支a衍和到分支b上桐早,有沖突就解決沖突。
git diff
不加參數(shù),即默認(rèn)比較工作區(qū)和暫存區(qū)厨剪。
git diff --cached [<path>...]
比較暫存區(qū)與最新本地版本庫(本地庫中最近一次commit的內(nèi)容)
git diff HEAD [<path>...]
比較工作區(qū)與最新本地版本庫.如果HEAD指向的是master分支哄酝,那么HEAD還可以換成master
git diff commit-id [<path>...]
比較工作區(qū)與指定commit-id的差異
git diff --cached [<commit-id>] [<path>...]
比較暫存區(qū)與指定commit-id的差異
git diff [<commit-id>] [<commit-id>]
比較兩個(gè)commit-id之間的差異
其他
git config --list
查看所有用戶
git commit -v
當(dāng)你用-v參數(shù)的時(shí)候可以看commit的差異
git log
看你commit的日志
git diff
查看尚未暫存的更新
git blame [filePath]
查看該文件,每一行對應(yīng)的作者
git cherry-pick [commit id]
合并某次祷膳,或某幾次提交陶衅,多個(gè)commitID之間用空格隔開