git 常用命令

配置

git config --global user.name [name]

git config --global user.email [emailUrl]

配置name和email

git config --list

查看所有配置

遠程倉庫相關命令

git clone [remoteUrl]遠程倉庫地址

檢出(克隆)倉庫,地址可以是https的方式也可以是ssh的方式

git remote

查看已經(jīng)存在的遠程分支

git remote -v | --verbose

列出詳細信息,在每個名字后面列出其遠程url
** git remote add [遠程倉庫名] url ** 添加一個新的遠程倉庫,可以指定一個簡單的名字。eg:
git remote add origin git://github.com/gitName.git

git remote add [name] [url]

添加遠程倉庫

git remote rm [name]

刪除遠程倉庫
git pull [remoteName] [localBranchName]
拉取遠程倉庫

git init --bare

創(chuàng)建一個所謂的裸倉庫,之所以叫裸倉庫是因為這個倉庫只保存git歷史提交的版本信息,而不允許用戶在上面進行各種git操作,如果你硬要操作的話,只會得到下面的錯誤(”This operation must be run in a work tree”)

git init

初始化一個倉庫

分支相關命令

git branch

查看本地分支,星號(*)表示當前所在的分支

git branch -r

查看遠程分支

git branch -a

查看所有分支

git branch [name]

創(chuàng)建本地分支,注意:新分支創(chuàng)建后不會自動切換為當前分支

git checkout [name]

切換分支

git checkout -b [name]

創(chuàng)建分支,并立即切換到新的分支

git branch -d [name]

刪除分支

git merge [name]

合并分支,將名稱為[name]的分支與當前分支合并

git rebase [name1] [name2]

衍合分支,將name1分支衍合到name2分支上。

暫存(stash) 相關命令

git stash

保存當前工作區(qū)和暫存區(qū)的修改

git stash save -a "暫存描述信息"

網(wǎng)上很多很多資料都沒有加 -a 這個option選項,我想他們的代碼開發(fā)可能都是在原代碼上進行修改吧。而對于在項目里加入了代碼新文件的開發(fā)來說,-a選項才會將新加入的代碼文件同時放入暫存區(qū)。

git stash list

查看已暫存的列表

git stash pop [--index] [<stash>] 恢復

--index: 參數(shù):不僅恢復工作區(qū),還恢復暫存區(qū)。
<stash>: 指定恢復某一個具體進度。如果沒有這個參數(shù),默認恢復最新進度

eg:

git stash pop --index stash@{1}

git stash pop stash@{id或者編號}

將指定編號的暫存應用(恢復)到工作區(qū),并把這條暫存從暫存列表中移除

git stash drop [<stash>]

刪除某一個stash,默認刪除最新的進度

git stash clear

將所有stash清除

git stash popgit stash apply的區(qū)別

git stash pop stash@{id} 命令會在執(zhí)行后將對應的stash id 從stash list里刪除,而git stash apply stash@{id} 命令則會繼續(xù)保存stash id

tag 相關命令

git tag

查看標簽

git tag [name]

創(chuàng)建標簽

git tag -d [name]

刪除標簽

git push origin [name]

本地標簽push到遠程

git push origin :refs/tags/[name]

刪除遠程標簽

git pull origin --tags

合并遠程倉庫的tag到本地

忽略文件和文件夾

在倉庫目錄下創(chuàng)建名稱為.gitignore的文件,寫入需要忽略的文件夾名或文件名,每個元素占一行即可

文件的生命周期

git add .

將工作時所有的變化提交到暫存區(qū),包括文件內容修改以及新文件,但不包括刪除文件

git add -u

u: update、僅監(jiān)控已經(jīng)跟蹤(被add)的文件,不會提交新文件

git add -a

a: all、是上面兩個功能的合集

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]

將高于指定提交的內容回退到暫存區(qū)域,只需重新commit

git reset --mixed [commitId]

mixed為默認,將高于指定提交的內容回退到工作區(qū)域,需重新add、commit

git rm --cache [filePath]

刪除暫存區(qū)或分支上的文件,不刪除工作區(qū)的這個文件,只是刪除版本控制
git rm [filePath] 將文件從工作區(qū),暫存區(qū),分支上刪除

git pull

git pull = git fetch + git merge 
git fetch:把服務器的commit取回到本地
git merge: 把從服務器取回的代碼合并到本地

git rebase

把本地的修改先暫存起來,然后將服務器的代碼應用到本地,再將暫存提交應用

1、git rebase #合并代碼
2、出現(xiàn)沖突就解決沖突
3、git add . 重新添加
4、git rebase --continue #應用補丁

git rebase --abort #回滾到合并的狀態(tài)

注意事項:
可直接使用 
'git pull --rebase'
也可以通過全局配置 git pull
'git config brach.[分支的名字].rebase  true'

git log --graph

查看各個branch之間的關系圖

分支合并:git rebase [branch a] [branch b] : 將分支a衍和到分支b上,有沖突就解決沖突。

git diff

不加參數(shù),即默認比較工作區(qū)和暫存區(qū)。

git diff --cached [<path>...]

比較暫存區(qū)與最新本地版本庫(本地庫中最近一次commit的內容)

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>]

比較兩個commit-id之間的差異

其他

git config --list

查看所有用戶

git commit -v

當你用-v參數(shù)的時候可以看commit的差異

git log

看你commit的日志

git diff

查看尚未暫存的更新

git blame [filePath]

查看該文件,每一行對應的作者

git cherry-pick [commit id]

合并某次,或某幾次提交,多個commitID之間用空格隔開

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。