您现在的位置是:首页 >技术教程 >Git常用命令网站首页技术教程

Git常用命令

海恋北斗星 2024-06-17 00:01:02
简介Git常用命令

配置相关

  • 查看配置

git config --system --list         查看系统配置列表

git config --global  --list         查看全局配置列表

git config --local    --list          查看本地配置列表

  • 设置配置

git config --global user.name "用户名"          设置全局用户名

git config --global user.email "邮箱"              设置全局邮箱

同理,使用system 或者local 可以设置系统或者本地配置信息。

  • 删除配置

git config --global --unset user.name             清除设置用户名

git config --global --unset user.email             清除设置邮箱

仓库相关

git init [仓库名称]                         初始化一个本地仓库,默认分支master

git status                                      查看仓库状态

git clone [url]                                克隆仓库

本地操作

git add <file> ...                            添加文件

git checkout -- <file> ...                撤回添加

git rm <file> ...                              删除文件

git mv file1 file2                            移动(重命名)文件

git commit -m "备注信息"             提交文件

git reset HEAD^                            撤回提交

git commit -am "备注信息"          添加并提交文件.即,git add 和 git commit 命令的组合形式,

标签操作

git tag                                                 查看所有标签

git tag -d 标签名                                 删除标签(只是删除了本地的)

git push origin :refs/tags/远程标签名 删除远程仓库的标签 可以在删除本地标签后 执行这个操作 同步远程

git tag 标签名字                                  在当前仓库打个标签

git tag 标签名 commitid                     给已知提交id的版本打标签

给历史提交打V1.1.1的tag标签 这里的commitid可以缩写 缩写成前6位就可以

例如 git tag V1.1.1 6f8f25 一样可以给这个提交id打上tag

git tag -l                                             过滤tag 例如 git tag -l "V1.1*" // V1.1 V1.11 可以过滤前面是V1.1开头的内容

git show 标签名称                               查看tag的详细信息 包括commitid 作者信息 日期 内容

git push origin 标签名称                     同步这个tag到远程服务器(默认tag是打在本地的 这个命令可以把它推到远程)

git push origin --tags                         将本地所有tag推送到远程服务器

git pull --tags                                     把远程仓库的标签也拉取下来

git tag 标签名 -m "message"              在当前提交上,打标签,并给message信息注释

git tag 标签名 哈希值 -m "message"   在某个哈希值上打标签并且写上标签的信息

git tag 标签名 HEAD~4                       在当前提交之前的第4个版本上 打标签

分支操作

git branch -av                                     查看分支,其中 -av 参数表示全部(包括远端分支)

git branch -r                                       查看远程所有分支

git branch  分支名称                           创建分支

git checkout 分支名称                         切换分支

git checkout -b 分支名称                     创建并切换分支

git branch -d 分支名称                         删除分支(自己不能删除自己哈)

git branch -D 分支名称                       强制删除分支

git merge 分支名                                 把该分支的内容合并到当前分支

git branch -m 旧分支 新分支               修改分支名称

git branch -M 旧分支 新分支               强制修改分支名称

git fetch                                             更新remote索引

git push -u origin 分支名                   将本地分支推送到远端origin主机,同时指定origin为默认主机,之后使用就不需要加任何参数了,直接使用 git push

git push origin --delete 分支名          同步本地删除的分支到远端(删除本地之后删除远端分支)

变基操作

改写历史提交,把多次提交合并起来

git rebase -i HEAD~3

变基之后的哈希值与之前的不同 证明变基是重新做的提交 把多次提交合并成了几次提交

远程同步

git fetch [remote]                                下载远程仓库的所有变动

git remote -v                                        显示所有远程仓库

git remote show [remote]                    显示某个远程仓库的信息

git remote add [shortname] [url]         增加一个新的远程仓库,并命名

git pull [remote] [branch]                     取回远程仓库的变化,并与本地分支合并

git push [remote] [branch]                   上传本指定分支到远程仓库

git push [remote] --force                     强行推送当前分支到远程仓库,即使有冲突(慎用)

git push [remote] --all                          推送所有分支到远程仓库

查看操作

git status                                                       显示有变更的文件

git log                                                           显示当前分支的版本历史

git log --stat                                                  显示commit历史,以及每次commit发生变更的文件

git log -S [keyword]                                      搜索提交历史,根据关键词

git log [tag] HEAD --pretty=format:%s        显示某个commit之后的所有变动,每个commit占据一行

git log [tag] HEAD --grep feature                显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件

git log --follow [file]                                      显示某个文件的版本历史,包括文件改名

git whatchanged [file]

git log -p [file]                                              显示指定文件相关的每一次diff

git log -5 --pretty --oneline                          显示过去5次提交

git shortlog -sn                                              显示所有提交过的用户,按提交次数排序

git blame [file]                                              显示指定文件是什么人在什么时间修改过

git diff                                                            显示暂存区和工作区的差异

git diff --cached [file]                                    显示暂存区和上一个commit的差异

git diff HEAD                                                显示工作区与当前分支最新commit之间的差异

git diff [first-branch]...[second-branch]        显示两次提交之间的差异

git diff --shortstat "@{0 day ago}"                显示今天你写了多少行代码

git show [commit]                                        显示某次提交的元数据和内容变化

git show --name-only [commit]                    显示某次提交发生变化的文件

git show [commit]:[filename]                        显示某次提交时,某个文件的内容

git reflog                                                      显示当前分支的最近几次提交

仓库迁移

首先在当前项目主分支先执行git pull 把代码更新为最新然后去拉取新的仓库代码就可以了,如果新仓库之前拉取过了,重新仓库迁移;里面分支没同步的话,执行 git fetch试一下,同步过来

git remote set-url origin <新的仓库名>

git push -u -f origin

git push -u -f origin --all 把所有分支迁移过去

git push -u -f origin --tags 把所有tag迁移过去

重要命令

git cherry-pick commitId                     把其他分支的某一次提交内容(commitId)合并到当前分支(常用)

git commit --amend -m "备注信息"     回撤上一次提交并与本次工作区一起提交(追加)

git diff <file> ...                                    查看变更,工作区与暂存区的差异比对

git blame 文件名                                   查看该文件的修改历史(责任人)

git blame -L 100,10 文件名                   从100行开始,到110行 逐行查看文件的修改历史

git reflog                                              日志显示(比较全面的日志信息,包括删除的内容)

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。