--内容整理自廖雪峰的GIT教程--
git status
查看当前工作区状态,显示未跟踪的文件以及未上传的修改记录
git init
使当前文件夹变成Git可以管理的仓库
git add xxx
将xxx添加到仓库
git commit -m "注释"
将修改提交,同时注释
git diff xxx
查看xxx的上次改动,显示结果中"-"后跟着删除的内容,"+"后跟着新添的内容
git log (--pretty=oneline)
查看改动的历史记录,后接--pretty=oneline可简化为一行显示
git log --graph
命令可以看到分支合并图
git reset --hard HEAD^
返回上次的版本,HEAD后^个数代表回退几个版本,也可用 HEAD~数字 来表示,数字表示回退的版本个数
git reset --hard 版本号
返回到指定的版本号,版本号输入前几位即可,不必写全
git reflog
显示记录每一次的git命令
git checkout -- xxx
xxx回到最近一次git commit
或git add
时的状态。
git reset HEAD file
把暂存区的修改撤销掉
git rm xxx
从版本库中删除xxx文件
git checkout -- xxx
用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
git remote add origin git@server-name:path/repo-name.git
关联一个远程库
git push -u origin <name>
第一次推送<name>分支的所有内容
git push origin <name>
将<name>分支中的最新修改推送至GitHub
git clone git@server-name:path/repo-name.git
克隆一个远程库到本地
git checkout -b
git checkout命令加上-b参数表示创建并切换至分支
相当于:git branch 创建分支
git checkout 切换分支
git branch
查看当前分支
git branch -d <name>
删除分支
git branch -D <name>
强制删除为上交的分支
git merge (--no-ff)
命令用于合并指定()分支到当前(master)分支。--no-ff 参数表示禁止使用fast forward,此时合并后的历史有分支。而快速模式下,合并后无法查看曾经合并过。
git stash
储存当前的工作区,使工作区转为空闲
git stash apply@{数字}
恢复指定储存的工作区 默认为上一次 下drop pop同
git stash list
查看储存的工作区
git stash drop
删除储存的工作区
git stash pop
效果等同于git stash apply
git stash drop
git remote -v
显示远程库信息
git push origin branch-name
从本地推送分支
git pull
抓取远程的新提交
git tag
查看现有的标签
git tag <tagname>
打上一个新标签
git tag -a <tagname> -m "blablabla..."
可以指定标签信息;
git tag -s <tagname> -m "blablabla..."
可以用PGP签名标签;
git tag -d <tagname>
删除标签;
git show <tagname>
查看标签信息
git push origin <tagname>
可以推送一个本地标签;
git push origin --tags
可以推送全部未推送过的本地标签;
git push origin :refs/tags/<tagname>
可以删除一个远程标签
git config --global alias.st status
用st替代status命令
xxxxxxxxxxxxxxxxxxxx 18.5.13更新
git pull 命令,经常卡死。。
在网上查找到解决办法(感谢):
【建议拉取代码,用下面的两条命令结合使用,会很好。
拉取master的代码:先执行git remote update更新远程所有代码库,然后执行 git rebase origin/master,把远程更新的代码同步到本地的master上。
代码拉取完毕,同时,git rebase命令会自动合并你拉取的代码,不会再产生merger这样的commit。提交日志很清晰。】