Git 命令總結

一、Git常用命令
1.git clone
    1.1 git clone <url> #克隆遠程版本庫
    1.2 git --version #查看git版本
    1.3 git status #查看狀態
    1.4 git config --list #查看git配置
2.git init
    2.1 git init #初始化本地版本庫
3.git add
    3.1 git add . #將當前新增或者修改過的文件加入到暫存區
        git add --all . #將當前新增、修改或者刪除的文件加入到暫存區
    3.2 git add <file> #跟蹤指定的文件
    3.3 git add -i #進入交互模式將暫存區的文件挪出來
    3.4 git add -f <file> #強制提交已忽略的文件
    3.5 
4.git commmit
    4.1 git commit -m "commit message" #提交所有更改過的文件
    4.2 git commit --amend #修改最後一次提交
5.git log
    5.1 git log #查看當前分支指向的commit之前的提交歷史
        git reflog #查看完整的提交歷史
    5.2 git log -p <file> #查看指定文件的提交歷史
    5.4 git log --patch -2 #查看最近2次提交的代碼的差異
    5.5 git log --stat #顯示每次提交的統計信息
    5.6 git log --pretty=oneline #每個提交顯示一行
    5.7 git log --pretty=format:"%h - %an, %ar : %s" #顯示短hash、作者、多長時間以前、提交說明
    5.8 git log --oneline --abbrev-commit --graph #可以看到整個commit樹結構,包括如何合併的
    5.9 git log --abbrev-commit master..feature/001 #查看feature/001的那些commit還沒有合併到master中去
    5.10 git log --abbrev-commit feature/001..master #查看那些commit在master上有但是feature/001還沒有
    5.11 git log --abbrev-commit origin/master..HEAD #查看本地的修改還有多少沒有推送到遠程master上去
    5.12 git log --abbrev-commit feature/001 feature/002 --not master #查看在feature分支上都有的commit,在master還沒有
    5.13 git log --abbrev-commit feature/001...feature/002 #查看那些commit存在於兩個分支的某一個,但不是兩個分支都有
6.git checkout
    6.1 git checkout HEAD <file> #撤銷指定的未提交文件的修改內容
    6.2 git checkout <branch/tag> #切換到指定分支或標籤
    6.3 git checkout -b feach001 origin/feach001 #創建本地分支並跟蹤遠程分支
    6.4 git checkout -- <file> #用版本庫的文件替換工作區的文件
7.git reset
    7.1 git reset --hard HEAD #撤銷工作目錄中所有修改文件的修改內容
    7.4 git reset --hard HEAD^ #就可以回退到上一個版本
    7.5 git reset --hard HEAD~5 #退回到HEAD之前的倒數第5個commit的狀態
    7.6 git reset --hard d324644 #指定一個commit的hash值,回退到很老的版本
    7.7 git reset --soft HEAD^ #
8.git branch
    5.1 git branch #顯示所有本地分支
        git branch -a #查看本地和遠程所有分支
    5.2 git branch -vv #查看本地分支和遠程分支的對應關係
    5.3 git branch <new-branch> #創建新分支
    5.4 git branch -d <branch> #刪除本地分支
    
9.git tag
    9.1 git tag #列出所有本地標籤
    9.2 git tag <tagname> #基於最新提交創建標籤
    9.3 git tag -d <tagname> #刪除標籤
    9.4 git tag <tagName> <版本號> #把版本號打上標籤,版本號就是commit時,跟在旁邊的一串字母數字
    9.5 git tag -a <tagname> -m "<說明>" #創建帶說明的標籤
10.git diff
    10.1 git diff #查看工作區和暫存區變更內容
    10.2 git diff --cached #暫存區和倉庫
    10.3 git diff HEAD #工作區和倉庫
    10.4 git diff feature/001 master #兩個分支之間的差異
    10.5 git diff HEAD HEAD^ #兩次提交之間的差異
11.git pull
    11.1 git pull <remote> <branch> #下載代碼及快速合併
    11.2 git pull --rebase #執行變基式合併,讓commit的提交歷史看起來是一條直線
12.git push
    12.1 git push <remote> <branch> #上傳代碼及快速合併
    12.2 git push <remote> :<branch/tag-name> #刪除遠程分支或標籤
    12.3 git push origin --tags #上傳所有標籤到遠程
    12.4 git push origin <tagname> #推送某個標籤到遠程
    12.5 git push -u origin master #把倉庫區的主分支master提交到遠程倉庫裏
    12.6 git push -u origin <其他分支> #把其他分支提交到遠程倉庫
    
13.git romote
    13.1 git remote -v #查看遠程版本庫信息
    13.2 git remote show <remote> #查看指定遠程版本庫信息
    13.3 git remote add <remote> <url> #添加遠程版本庫
    13.4 git remote add origin https://github.com/name/name_cangku.git #把本地倉庫與遠程倉庫連接起來
14.git show
    14.1 git show master #查看master分支指向那個commit
    14.2 git show HEAD^ #查看當前分支的上一個commit    
    14.3 git show HEAD~2 #查看當前分支的上上個commit
    14.4 git show <tagname> #查看標籤信息
15.git stash
    15.1 git stash #將本地修改的內容暫存起來
    15.2 git stash list #查看stash列表
    15.3 git stash apply #將最近一次stash的內容恢復回來但是不刪除
         git stash pop #恢復的同時把stash內容也刪了
    15.4 git stash apply stash@{0} #恢復到指定的一次stash
    15.5 git stash apply --index #如果執行git stash的時候有內容放入了暫存區,恢復的時候用此命令
    15.6 git stash drop stash 名稱 #手動刪除掉某個stash
    15.7 git stash --include-untracked #將暫存區中的內容,tracked和untracked的內容全都暫存
16.git rebase
    16.1 git rebase -i HEAD~3 #調整最近3個commit
    16.2 git rebase --continue
    16.3 git rebase --abort
    16.4 git rebase --skip
    16.5 git rebase <branch> #衍合指定分支到當前分支
    16.6 git rebase #把分叉的提交歷史“整理”成一條直線,看上去更直觀
17.git merge
    17.1 git merge --abort #兩個分支merge時出現衝突,取消merge
    17.2 git merge <branch> #合併指定分支到當前分支 
    17.3 git merge --no-ff <分支名字> #合併分支的時候禁用Fast forward模式,因爲這個模式會丟失分支歷史信息
    


雜項:
    1.1 git mv <old> <new> #文件改名
    1.2 git rm <file> #刪除文件
    1.3 git rm --cached <file> #停止跟蹤文件但不刪除
    1.4 git blame <file> #以列表方式查看指定文件的提交歷史
    1.5 git revert <commit> #撤銷指定的提交
    1.6 git check-ignore -v <file> #強制提交已忽略的文件
    1.7 git fetch <remote> #從遠程庫獲取代碼
    1.8 git config --global color.ui true #讓Git顯示顏色,會讓命令輸出看起來更醒目

二、操作流程
1.從git上拉代碼的流程
    git stash --將本地修改暫存
    git pull --將遠程分支的代碼拉到本地
    git stash pop --將本地暫存的代碼釋放
2.對比兩個分支修改的文件
    git diff A..B --stat
3.將本地的master分支和遠程的master分支做關聯
    git branch --set-upstream-to=origin/master master
4.在本地創建分支develop,推送到遠程倉庫
    git checkout -b develop #在本地創建develop分支,並切換到develop分支
    git push -u origin develop #將本地develop分支推送到遠程倉庫
5.修改了工作區的內容,但是還沒有放入暫存區和倉庫,此時要拋棄這些修改
    git reset --hard HEAD
6.修改了工作區的內容,放入了暫存區,但是沒有提交,此時要拋棄這些修改
    git reset HEAD = git reset --mixed HEAD #將暫存區里加入的內容撤銷掉,然後在工作區重新修改代碼
    git reset --hard HEAD #將暫存區和工作區的內容一次性抹掉
7.修改了工作區的內容,已經提交,此時要放棄這些修改
    git reset --hard HEAD^ =  git reset --hard commit 標識符
8.在本地commit,同時還推送到了遠程倉庫,此時要撤回
    git revert HEAD #本地撤回commit操作    
    git push origin master #完美同步撤回遠程倉庫的commit操作了
9.在兩個分支合併的的時候出現衝突,取消,不想merge
    git merge --abort
10.如果在本地merge後想要撤回
    git reset --hard HEAD^
11.推送了merge之後的commit到遠程倉庫後想要撤回
    ①如果是要撤回已經push到遠程倉庫的merge操作
    ②在本地執行git revert -m 1 HEAD,再執行git push origin master,此時本地和遠程的提交歷史都會多一個commit出來,該commit的內容和合並之前的master指向的那個commit是一樣的,同時master此時指向最新的那個commit
    ③但是後面,如果要再次將release分支和master分支進行合併,此時是需要特殊處理的,再次在本地執行:git revert HEAD,git push origin master。就是再次將master還原到指向一個新的commit,該commit的內容與上一次merge後的那個commit一樣,包含merge的內容
    ④最後再次將release分支與master分支進行合併,此時可以保證release分支所有的內容,都是合併到master分支的
12.查找誰在那次commit引入了bug
    ①git bisect start:開始二分查找
    ②git bisect bad:標註當前這個commit是有bug的
    ③git biset good v1.0.0:用tag來標註說從上一次哪個上線爲止,是沒有bug的,就是那個tag對應的commit之前都是好的
    ④git bisect reset:從二分查找狀態中恢復到之前的狀態
13.刪除遠程標籤
    ①git tag -d v1.0 #刪除本地標籤v1.0
    ②git push origin:refs/tags/v1.0     #刪除遠程標籤v1.0
14.將一個項目發到gitlab上
    ①git init
    ②git remote add origin https://git.lug.ustc.edu.cn/LiAnChen/mylims.git
    ③git add .
    ④git commit -m "Initial commit"
    ⑤git push -u origin master    
    


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章