[git] 基础命令笔记

时间:2021-02-18 20:40:30

--内容整理自廖雪峰的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 commitgit 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。提交日志很清晰。】