注:你要是没用过git的小白推荐你看这篇文章,让你快速上手(https://www.bootcss.com/p/git-guide/)
Git 添加提交
git init #把当前目录变成Git可以管理的仓库
git add <filename> #把文件修改添加到暂存区,<filename>写成*的话表示全部文件
git commit -m <message> #暂存区的所有内容提交到当前分支
git commit --amend #commit注释写错了,只是想改一下注释
git push origin master #本地分支推送到远程代码库
git push -f origin master #本地分支强制推送到远程代码库
git status #掌握仓库当前的状态
git diff #查看修改内容
git log #显示从最近到最远的(commit)提交日志
git log --pretty=oneline #格式化显示从最近到最远的(commit)提交日志
git reset --hard HEAD #用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。HEAD也可以写成commit id是1094adb...
git reflog #记录的每一次命令
git checkout -- readme.txt #把readme.txt文件在工作区的修改全部撤销(命令中的--很重要,没有--,可能就变成了“切换到另一个分支”的命令)
git reset HEAD <file> #可以把(commit)到暂存区的修改撤销掉,重新放回工作区
git reset --soft HEAD^ #仅撤销你的commit
Git 分支管理
git branch #查看分支
git branch -a #查看所有分支
git branch -r #查看远程分支
git checkout -b myRelease origin/Release #切换远程分支(PS:作用是checkout远程的Release分支,在本地起名为myRelease分支,并切换到本地的myRelase分支)
git branch <name> #创建分支
git checkout <name> #切换分支
git checkout -b <name> #创建+切换分支
git merge <name> #合并某分支到当前分支
git pull #不但拉代码,还拉你的树
git branch -d <name> #删除分支
git remote update --prune //追踪远端分支
git remote update origin --prune //追踪远端 删除的分支
git push origin --delete <BranchName> //删除远程分支
git log --graph #看分支合并图
git merge --no-ff -m "merge with no-ff" dev #合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。Git默认Fast forward模式
git stash #当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list #查看储藏起来记录
git stash apply stash@{0} #恢复储藏
git stash drop #删除stash内容
git stash pop #恢复储藏同时把stash内容也删除
git branch -D <name> #强行删除一个没有被合并过的分支
git remote -v #显示抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。
Git tag
git tag #列出所有tag
git tag -l v1.* #列出符合条件的tag(筛选作用)
git tag "v190218" #创建轻量tag(无-m标注信息)
git tag -a "v190218" -m "repurchase" #创建含标注tag
git push origin --tags #推送所有本地tag到远程
git push origin v181226 #推送指定本地tag到远程
git tag -d v181226 #删除本地指定tag
git push origin :refs/tags/ #删除远程指定tag
git fetch origin #拉取远程指定tag
git show <tagname> #显示指定tag详细信息
git ls-remote -t #查看远程版本库tag
Git 远程仓库
添加远程库,要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
(由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
git clone git@github.com:michaelliao/gitskills.git #git clone克隆一个仓库到本地