Loading

git常用命令

BASIC

git init <directroy> 初始化

git clone <repo> 克隆指定的repo到本地,repo可以是SSH或HTTP

git add <directory> 将目录下的所有修改加入到下一次commit中,把<directory>换成<file>将添加指定文件的修改

git commit -m"<message>" 提交暂存区的修改,使用指定的<message>作为提交信息,而不是打开文本编辑器输入提交信息

git commit --amend 修改最近一次commit的信息

git status 显示哪些文件已被staged、未被staged以及为跟踪(untracked)

git log 以缺省格式显示全部commit历史

DIFF

git diff 比较工作区和暂存区的修改

git diff HEAD 比较工作区与上一次commit后的修改

git diff --cached 比较暂存区和上一次commit后的修改,与--staged参数作用一样

git diff HEAD~X或git diff HEAD^^^...(共有X个^符号,X为正整数)可以比较最近一次提交的版本与前X次提交的版本

git diff <commit1> <commit2> 可以比较两个commit

UNDOING CHANGES

git restore --worktree <file> 撤销工作区的<file>的修改,--worktree为默认参数

git restore --staged <file> 将<file>从暂存区移除,但保持工作区不变,此操作不会修改工作区的任何文件

git reset [--soft | --mixed | --hard] [file] 后面可以加路径用于指定特定文件的回退,不加即对所有文件进行回退操作,--mixed 为默认参数,用于重置暂存区的文件与上一次提交保持一致,工作区不变,--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交

git reset <commit> 回退到指定版本

git reset HEAD~X或git reset HEAD^^^...(共有X个^符号,X为正整数)回退到前X个提交的版本,HEAD表示当前版本

git clean -f 删除untracked的文件,若替换成-fd参数则连同目录一起删除,换成-xfd则将gitignore的untracked文件一并删除(慎用),在使用该命令前,推荐在参数前加上n像是git clean -nfd即可预览将要删除的文件,防止重要文件丢失。

BRANCHS

git branch -a 显示所有分支,去掉-a显示本地分支,换成-r参数显示远程分支

git branch -m <oldbranch> <newbranch> 本地分支重命名

git switch -c <branch> 创建并切换到一个新的名为<branch>的分支,去掉-c参数将切换到一个已有分支

git merge <branch> 将指定<branch>分支合并到当前分支

git branch --set-upstream-to=<remote>/<remote_branch> <local_branch> 本地分支关联远程分支

git branch -d <local_branch> 删除本地分支,若想删除的分支有未完成的合并或者更改没有提交,-d参数将不允许删除分支,此时可以采用-D参数强制进行删除

git push <remote_name> -d <remote_branch> 可以删除远程分支

REMOTE

git remote -v 显示本地添加了哪些远程连接,-v参数代表详细

git remote remove <remote> 删除本地指定远程连接

git remote add <name> <url> 添加一个新的远程连接,添加后可使用<name>作为指定<url>远程连接的名称

LOG

git log -<limit> 限制log的显示数量,eg:git log -5 仅显示最新的5条commit

git log --oneline 每行显示一条commit

git log --author="<pattern>" 按提交者名字搜索并显示commit

git log -- <file> 仅显示包含指定文件修改的commit

git log --graph 使用--graph参数显示图形化的branch信息

git reflog 查看命令历史,回退后需要反悔的话,需要通过此命令查找到所有操作的提交点

PUSH&PULL

git push <远程主机名> <远程分支名> 将本地的分支版本上传到远程并合并

git push <remote> <local-branch-name>:<remote-branch-name> 当本地分支与远程分支不同名的时候

git push --force <远程主机名> <远程分支名> 若本地与远程有差异,但又要强制推送可以使用--force参数进行覆盖

git push <远程主机名> --delete <远程分支名> 删除远程分支

git push -u 该参数等同于 --set-upstream 对于每个最新或成功推送的分支,本地分支到远程分支的引用

git pull <远程主机名> <远程分支名> 从远程获取代码并合并到当前本地的分支

git fetch <remote> <remote-branch-name>:<local-branch-name> 从远程获取代码到指定的本地分支

STASH

git stash [message] 将当前分支的修改暂存起来

git stash list 查看暂存的修改列表

git stash apply 恢复最近一次保存的修改

git stash apply stash@{n} 恢复指定的修改,其中n是指定的编号

git stash drop 删除最近一次保存的修改

git stash drop stash@{n} 删除指定的修改,其中n是指定的编号

git stash pop 相当于先后执行apply和drop

posted @ 2021-09-12 16:18  白蜘蛛  阅读(81)  评论(0)    收藏  举报