热门搜索 :
考研考公
您的当前位置:首页正文

【Git】常用git命令列举与简单注释

来源:东饰资讯网
git status -s           #标记式描述当前文件状态
git add .               #当前目录所有改动文件和未跟踪文件添加到下一次提交中
git add <path>          #添加制定文件或目录到下一次提交中
git commit -m 'message' #提交暂存目录中的修改快照
git commit -a           #提交工作区的所有改动文件和暂存区的修改快照
git diff <path>         #比较工作区和暂存区
git diff [commit] <path>    #比较工作区和commit
git diff --cached <path>            #比较暂存区和HEAD
git diff [commit1] [commit2] <path> #比较本地仓库commit1和commit2

git log [-p|--stat|--graph] #-p 版本之间的差异,--stat 差异概览,--graph ASCII图形化显示
git log --pretty=oneline    #单行显示每个commit日志
git log --decorate          #查看各分支指向的commit
git log <branch1>..<branch2>                #查看branch2中还有哪些提交没有被合并入branch1
git log --left-right <branch1>...<branch2>  #查看两个branch的差异提交
git show <commit>           #显示某个提交的信息

git rm <path>           #从仓库中移除文件,并且把工作区的文件也一并移除
git rm -f <path>        #当要移除的文件也在暂存区有快照时进行强制移除
git rm --cached <path>  #从仓库中移除文件,但是保留工作区的文件,其中path可以使用glob模式,且要注意使用\来转义特殊字符防止shell的展开
git mv <file> <newfile> #文件改名

git reset [--soft|--hard] <commit>  #HEAD以及当前分支标记一起移动到指定commit(之前commit有被丢弃的可能)
                                    #默认更新暂存区,用hard则工作区和暂存区都更新,用soft则工作区和暂存区都保留不动
git reset <commit> -- <path>    #只会更新暂存区快照去匹配commit(HEAD和当前分支标记都不动)
git checkout <commit> -- <path> #同时更新暂存区和工作区去匹配commit(HEAD不动),没有commit则以暂存区内容去更新工作区
git checkout <commit>           #移动HEAD到该commit,并且更新工作区和暂存区的内容以匹配commit
git checkout [HEAD]             #汇总显示工作区、暂存区与HEAD的差异
git checkout .                  #以暂存区快照更新工作区
git checkout -b <branch>        #创建并切换到分支
git checkout -b <branch> <remote>/<branch>  #创建一个本地的跟踪分支并切换到该分支
git checkout --track <remote>/<branch>      #创建一个本地跟踪分支并切换过去,分支名字和远程分支名字一样

git revert <commit>         #撤销某个commit的改动(只撤销该commit的改动),然后做一次新的提交
git revert -m 1 <commit>    #撤销某个merge commit,-m表示要回退的主线,值为1一般代表当前分支为主线

git merge <branch>          #把branch分支合并到当前分支上来
git mergetool               #有冲突时选择相应的可视化工具来解决冲突
git rebase <branch>         #变基:以指定分支为基底,然后把当前分支的差异commit重新一个个提交上去,梳理分支提交历史

git branch [-d] <branch>                    #创建分支;-d删除分支;
git branch [--merged|--no-merged] <branch>  #过滤出合并或未合并到
git branch -u <remote>/<branch>             #设置或修改当前分支的上游分支,设置好后@{u}代指对应的上游分支<remote>/<branch>

git remote -v               #已经配置了的远程仓库
git ls-remote <repo>        #列出远程仓库的完整引用列表
git remote show <repo>      #远程仓库的详细信息
git remote add <repo> <url> #添加远程仓库,以后就直接用<repo>代替url
git fetch 【<repo>|--all]    #拉取指定的或所有的远程仓库,获取所有分支,之后就可以用<repo>/<branch>来访问对应分支了
git pull <repo> <branch>    #抓取对应远程分支然后合并到当前所在分支
git pull --rebase           #相当于先git fetch在git rebase
git push <repo> <refspec>   #推送refspec指定的src分支到远程repo到dst分支(一般远程和本地分支名字匹配的话,给改名即可)
git push <repo> [<tag> | --tags]    #推送单个<tag>或全部不在远程服务器上的标签(--tags)到repo
git push <repo> --delete <branch>   #删除远程仓库的指定分支
Top