Git基本操作
·Git前導概念:
·工作區:就是在電腦可以看到的目錄
·暫存區:在工作區和本地倉庫中間的一個區域
·本地倉庫:在本地的代碼倉庫
·遠程倉庫:在遠程的代碼倉庫(如github)
·分支:提交代碼的每次提交,串成的一條線,分支與分支之間互不影響
Git本地倉庫:
·建立倉庫:git init
·提交文件至暫存區:git add <filename>
·提交當前目錄下的readme.md至暫存區:git add readme.md
·提交當前目錄下learnGit目錄下的readme.md至暫存區:git add learnGit/readme.md
·提交當前目錄及其子目錄下的所有文件:git add .
·提交文件至本地倉庫:git commit -m <commit message>
·當輸入git commit後,沒有輸入<commit message>便回車,會進入一個填寫<commit message>的界面,此時先按<i>,下方的狀態會變爲<--insert-->,輸入<commit message>,輸入完成以後,按下<Esc>,此時下方狀態變爲空白,輸入<:wq>,回車,便可完成提交信息的填寫。
·直接提交所有更改(不經過git add,提交除新增文件的所有更改):git commit -a
·查看工作區[某一文件]:git status [<filename>]
·查看變更[某一文件]:git diff [<filename>]
·查看工作區相對於暫存區的變更[某一文件]:git diff [<filename>]
·查看暫存區相對於本地倉庫的變更[某一文件]:git diff --cached [<filename>]
·丟棄暫存區更改[某一文件]:git reset head [<filename>]
·丟棄工作區更改[某一文件]:git checkout [<filename>]
·代碼回退至本地倉庫的上一個版本(上100個版本):git reset --hard head^[head~100]
·代碼回退至本地倉庫的指定版本:git reset --hard <commit ID>
·查看提交記錄:git log
·查看提交記錄(每次記錄只顯示commit ID和commit message):git log --pretty=oneline
·查看所有歷史commit ID:git reflog
Git遠程庫:
·創建SSH Key:ssh-keygen -t rsa -c <your email adress>
·查看已添加的遠程庫(詳細信息):git remote [-v]
·爲本地倉庫添加遠程庫:git remote add <remote name> <remote adress>
·提交更改至遠程倉庫:git push <remote name> <remote branch name>
·第一次提交本地分支到遠程倉庫:git push -u <remote name> <branch name>
·普通提交(本地分支與遠程分支名字不同):git push <remote name> <branch name>:<remote branch name>
·克隆遠程庫(默認克隆master分支):git clone <remote adress>
·克隆指定分支:git clone -b <remote branch name> <remote adress>
Git分支:
·查看分支:git branch
·創建分支:git checkout -b <branch name>
·該命令相當於兩個命令的結合,即:
·創建分支:git branch <branch name>
·切換分支:git checkout <branch name>
·合併分支(dev)到當前分支(master):git merge dev
·刪除分支:git branch -d <branch name>
·強制刪除分支:git branch -D <branch name>
·查看合併圖:git log --graph
·禁用fast forward:git merge --no-ff
·bug分支:
·存儲現場:git stash
·查看現場:git stash list
·恢復(保留現場):git stash apply
·恢復(清除現場):git stash pop
·恢復(指定現場):git stash apply stash@{0}
·本地創建分支並關聯到遠程分支:git checkout -b <branch name> <remote name>/<remote branch name>
·關聯已有本地分支到遠程分支:git branch --set-upstream <branch name> <remote name>/<remote branch name>
·本地未push的合併圖的分叉變直線:git rebase
·打tag:
·在當前位置打tag:git tag <tag name>
·指定commit ID處打tag:git tag <tag name> <commit ID>
·創建帶說明的tag:git tag -a <tag name> -m <tag message> <commit ID>
·查看tag:git tag
·查看tag信息:git show <tag name>