1. 初始化
git init #初始化git版本庫
git config --global user.name [user name] #全局設(shè)置git用戶名
git config --global user.email [user email] #全局設(shè)置git郵件地址
2. 提交
git diff #放入暫存區(qū)前,比較工作區(qū)與當(dāng)前版本的差異
git add [file name] #把文件放到暫存區(qū)
git commit -m "[comment]" #把暫存區(qū)中的文件提交到版本庫
3. 回滾
git log #從當(dāng)前版本向前查看歷史記錄
git reflog #查看所有歷史記錄
git reset --hard [commit id] #把工作區(qū)恢復(fù)到某次提交后的版本
git checkout -- [file name] #回到最近一次git add或git commit后的狀態(tài)
git reset HEAD [file name] #把暫存區(qū)的修改撤銷掉底洗,重新放回工作區(qū)
git rm [file name] #從工作區(qū)中刪除文件亥揖,并把刪除操作記錄到暫存區(qū)
4. 遠程
git clone [remote repository] #克隆遠程庫到本地
git remote -v #顯示遠程分支的信息费变,如果沒有推送權(quán)限就看不到push地址
git remote add origin [remote repository] #設(shè)置遠程庫地址
git push -u origin master #把本地庫的master分支推送到遠程挚歧,-u用于第一次推送建立關(guān)聯(lián)滑负,以后git push origin master即可
git checkout -b [local branch name] origin/[remote branch name] #在本地創(chuàng)建和遠程分支對應(yīng)的分支
git pull #把最新的提交從遠程分支上抓取下來
5. 分支
git branch #查看分支列表和當(dāng)前分支
git checkout -b [branch name] #創(chuàng)建并切換到新分支
git checkout [branch name] #切換到分支
git merge [branch name] #合并指定分支到當(dāng)前分支
git branch -d [branch name] #刪除分支
git branch -D [branch name] #刪除尚未被合并的分支
git log --graph --pretty=oneline --abbrev-commit #圖形化顯示分支結(jié)構(gòu)
git merge --no-ff -m "[comment]" [branch name] #禁用Fast forward模式merge分支橙困,即耕餐,先把當(dāng)前分支提交,再合并
6. 暫存
git stash #把當(dāng)前分支的工作現(xiàn)場保存起來夏跷,git status看不到修改
git stash list #查看保存過的工作現(xiàn)場列表
git stash pop #恢復(fù)工作現(xiàn)場槽华,并從保存列表中刪除
git stash apply #恢復(fù)現(xiàn)場,不從列表中刪除
git stash drop #刪除最近保存的stash
git stash apply [stash id] #恢復(fù)列表中指定的stash
git stash drop [stash id] #刪除列表中指定的stash
7. 標(biāo)簽
git tag [tag name] #給當(dāng)前分支的最后一次commit打上標(biāo)簽
git tag [tag name] [commit id] #給指定的commit打上標(biāo)簽
git tag -a [tag name] -m "[comment]" [commit id] #創(chuàng)建有說明的標(biāo)簽
git tag #顯示所有標(biāo)簽
git show [tag name] #顯示指定標(biāo)簽的提交信息
git tag -d [tag name] #刪除標(biāo)簽
git push origin [tag name] #推送指定標(biāo)簽到遠程
git push origin --tags #推送所有本地標(biāo)簽到遠程
注:
(1)git rm [file name]后的恢復(fù)方法:
git reset HEAD [file name] && git checkout -- [file name]
(2)git pull提示"no tracking information"
說明本地分支和遠程分支沒有建立聯(lián)系
git branch --set-upstream [local branch name] origin/[remote branch name]
(3)如果標(biāo)簽已經(jīng)推送到遠程,要刪除遠程標(biāo)簽就麻煩一些
git tag -d [tag name] && git push origin :refs/tags/[tag name]
(4)強制添加.gitignore忽略的文件
git add -f [file name]
還可以用git check-ignore -v [file name]來查看.gitignore的哪一行忽略了該文件