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

浙公网安备 33010602011771号