Git 命令大全

注意:

暂存区叫stage或index,命令中使用--cached和--staged是等同的。

git区分大小写,-a和-A是不同的。

git --version:查看git版本

git help [command]:查看命令帮助

git config:配置git版本库

git config --list:显示配置列表

git config --global:全局配置

git config --global user.name xxx:配置用户名

git config --global user.email xxx:配置邮箱

git config --global http.proxy http://127.0.0.1:1080:配置http代理

git config --global https.proxy https://127.0.0.1:1080:配置https代理

git config --global http.sslVerify false:配置http的ssl验证为false

git config --global alias.co checkout:配置别名

git config --global --unset xxx:取消配置xxx

git init:将当前目录初始化为Git存储库(创建隐藏的.git文件夹及其内容)。

git clone:在指定的URL下载Git存储库的副本。

git add:将文件添加到暂存区。发生冲突并修改完冲突后,使用git add标记已解决冲突。

git add .:将工作空间下所有文件添加到暂存区(new,modifyed)

git add -A:将工作空间下所有文件添加到暂存区(new,modifyed,delete)

git add -u:将工作空间下所有文件添加到暂存区(modifyed,delete)

git ls-files:查看暂存区的文件

git ls-files -m:查看和暂存区相比,本地修改的文件

git ls-files -d:查看和暂存区相比,本地删除的文件

git rm:从工作区和暂存区删除文件,相当于删除本地文件,再将修改添加到暂存区

git rm -cached:仅从暂存区中移除文件

git mv name1 name2:重命名文件,并将修改添加到暂存区。相当于执行了mv name1 name2,git rm name1,git add name2三条命令。

git restore <file>:恢复工作区文件,从暂存区恢复。等价于git checkout file。

git restore --staged <file>:移除暂存区中所有对文件修改的暂存,相当于git reset HEAD filename。如果使用git rm -cached从缓存中删除了文件,也可以使用该命令恢复

git commit -m 'message':将暂存区的文件提交到版本库

git commit -a -m "message":可简写为 -am,跳过git add 命令,直接将工作区所有已跟踪的文件提交到版本库,未跟踪的(untracked)文件不能使用该命令

git commit --amend:撤销上一次提交将暂存区的文件重新提交(改写提交)

git status:显示与工作目录,当前分支,未跟踪的文件,已修改的文件等状态有关的信息。

git status -s:以简洁格式输出

git diff:查看暂存区和工作目录的差异

git diff --cached:查看暂存区和本地库的差异

git diff HEAD:查看本地工作区和本地库中的差异

git diff HEAD^:查看本地工作区和本地库上个版本的差异

git fetch:获取当前分支追踪的的远程分支。git fetch只会获取远程分支内容,不会合并,本地内容不会改变。可以使用git checkout origin/master切换分支来查看获取到的远程库的内容。可通过git merge origin/master来合并获取到的内容。

git fetch <remote> <branch>:获取某个远程库的某个分支

git pull:拉取当前分支追踪的远程分支,并合并到当前分支,相当于先git fetch再git merge

git pull <remote> <branch>:拉取某个远程库的某个分支

git pull origin dev:master:拉取origin远程仓库的dev分支,并合并到本地的master分支

git push:推送当前分支到追踪的远程分支

git push origin <branch>:推送当前分支到某个远程库的某个分支,但不建立追踪

git push -u origin <branch>:推送当前分支,同时建立追踪

git push origin --delete <branch>:删除远程分支

git push origin local_branch:remote_branch:将本地的local_branch分支推动到远程的remote_branch分支上

git log:显示活动分支的提交历史记录和相关的描述性消息。

git log --pretty=oneline:单行显示

git log --oneline:单行显示

git log --graph:以图来显示

git log --graph --online:以图来显示,且每个提交显示为单行

git reflog:显示所有Reference log,会显示HEAD的变化。其中HEAD@{数字},数字表示移动到当前版本需要多少步.

git reflog --date=local | grep <branchname>:查看分支来自哪一个分支

git reset:前进后退

git reset --hard [版本号]:回到制定版本,可前进后退

git reset --hard HEAD^ :有几个^回退几个版本,只能后退,^为0个时,指恢复到修改前的版本

git reset --hard HEAD~n:回退n步,只能后退

git reset --soft xxx:只倒退本地库,工作区和暂存区不后退

git reset --mixed xxx:后退本地库和暂存区,工作区不后退。不加参数时的默认选项。

git reset --hard xxx:后退本地库,暂存区和工作区,如果工作区存在未提交的内容,将会丢失该内容

git branch:查看分支

git branch -a:查看所有分支,包括本地和远程分支

git branch -v:查看分支,并且显示hash和提交信息

git branch -vv:查看分支,并且显示hash和提交信息,以及跟踪的远程分支

git branch <name>:基于分支创建新分支,name为新分支名。。

git branch <name> <hash>:根据指定提交创建分支

git branch --set-upstream-to=<remote>/<branch> branch:将本地的分支追踪到远程库的分支

git branch -u <remote>/<branch>:上面的命令--set-upstream-to的简写

git branch -m:修改分支名称

git branch -d/-D:删除/强制删除分支

git branch -merged:查看哪些分支已经合并到当前分支。在这个列表中分支名字前没有*号的分支通常可以用git branch -d删除掉。

git branch --no-merged:查看未合并工作的分支。尝试使用git branch -d删除这个列表中的分支时会失败。如果真的想删除分支并丢掉那些工作,使用-D选项强制删除。

git checkout <name>:检出分支

git checkout -b <name>:创建并切换分支

git checkout -b <name> <origin>/<master>:根据远程分支创建并检出新分支

git checkout <file>:检出暂存区的文件替换工作区的文件,注意是检出暂存区,如果修改文件并添加到暂存区,然后再次修改文件,之后执行该命令,那么只会丢失第二次修改,因为暂存区里包含第一次修改。另外,如果是拉取版本库来替换工作区,使用git reset --hard HEAD <filename>.

git merge:将指定的分支合并到当前分支(Fast forward)

git merge -no-ff -m <commit message>:合并指定分支到当前分支(-no-ff 参数表示禁用Fast forward)

git stash:暂时贮存修改内容,注意和暂存区进行区分。当你还不想提交,但需要切换分支工作时可以使用该命令暂时将修改贮存起来。

git stash list:查看所有贮藏的工作

git stash apply <stash@{2}>:应用贮藏,无参数则默认是最近的贮藏

git stash drop <贮存名>:删除贮藏

git stash pop:应用最近的贮存,并删除它

git remote:列出远程仓库

git remote -v:查看远程仓库信息,包括仓库的url

git remote show origin:显示更多远程库的信息,包括url,所有跟踪的分支,fetch或pull时本地和远程分支的关系。

git remote rename <name1> <name2>:重命名远程仓库

git remote add orgin url:添加远程库origin,关联远程仓库

git remote set-url origin url:重新设置远程库origin的url

git remote rm origin:删除远程库origin

git remote prune origin --dry-run:列出仍在远程跟踪但是远程已被删除的无用分支

git remote prune origin:清除上面命令列出来的远程跟踪

git tag:查看所有tag

git tag <name>:创建tag

git tag 版本id <name>:创建一个指向某次提交的tag

git tag -a -m <message>:创建一个未签名,带注释的tag

git show <tag name>:查看tag

git hash-object <file / stdin>:返回sha-1算法的hash值

git hash-object -w :返回hash值,同时将对象写入数据库

git cat-file:查看快照的目录列表

git cat-file -p HEAD/hash值:查看HEAD或某个sha1值对应的内部存储的对象的内容

git cat-file -t HEAD/hash值:查看HEAD或某个sha1值对应的内部存储的对象的类型

git update-index:为文件创建暂存区

git update-index --add:为新文件创建暂存区

git write-tree:将当前暂存区的状态记录为一个树对象

git read-tree <hash>:将树对象读入暂存区

git commit-tree <hash>:创建提交对象

相关推荐
苏三有春27 分钟前
五分钟学会如何在GitHub上自动化部署个人博客(hugo框架 + stack主题)
git·go·github
high201112 小时前
【Git】-- 版本说明
git
kaixin_learn_qt_ing12 小时前
git clone
git
sin220112 小时前
git stash
git
喝鸡汤12 小时前
一起学Git【第二节:创建版本库】
git
慢慢成长的码农12 小时前
git 同步分支操作
git
sin220112 小时前
git推送本地仓库到远程(Gitee)
git·gitee
丁总学Java14 小时前
git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表
git
yylの博客17 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh
丁总学Java18 小时前
(Z Shell)zsh: no matches found: ? 使用单引号包裹
git·zsh