前言git在开发中已经是很常用的工具了但很多同学还是只会commitpullpush这些简单的命令今天来做一个搜集把开发中一些实用的git命令汇集在这篇博客里话不多说立马开始基本操作git init为你的项目创建一个git仓库这样就会在你项目下面生成.git的隐藏文件这样你的项目就可以进行git操作了当然前提是你安装了git环境如果你的项目在执行git命令时出现这种报错fatal: not a git repository (or any of the parent directories): .git就说明其实你没有git仓库这样就可以通过这个命令创建一个本地仓库git clone url拷贝一个 远程的Git 仓库到本地让自己能够查看该项目或者进行修改。url就是远程仓库的地址啦git remote add origin 仓库的git地址设置你当前本地项目的远程仓库这样就可以push代码到远程仓库了如果本地已经有 origin执行会直接报错主要用于第一次绑定远程仓库地址git remote set-url origin 仓库的git地址修改你当前本地项目的远程仓库本地必须存在 origin否则报错主要用于本地已经绑定过 origin只是仓库地址变了git remote show origin查看当前仓库的git地址git log查看git的全部提交记录也可以用下面这张方式git log -2这种方式表示查看最近两条记录git pull获取当前分支下的更新代码就是拉代码git push --force强制推送一般用于远程的强制回滚顺序如下git reset --hard commitId //想要回到的 commitIdgit push --force // 强制推送去到想要回到的commitId提交节点这个提交节点之后的所有提交都将被删除git status查看仓库当前的状态显示有变更的文件。git status 输出的命令很详细但有些繁琐。git status -s 以精简的方式显示文件状态。不同的状态如下效果如图git add 文件名路径添加需要提交的文件名路径参考git status 打印出来的文件路径可以有多个比如git addapp/src/main/java/com/example/mydemo/A.javaapp/src/main/java/com/example/mydemo/B.java(注意要全路径名)git add .把本地仓库的所有修改的文件都添加进去git commit -m “提交注释”提交文件后面加上提交注释提交前要先git add 文件名路径不然是不能提交的git push -u 分支名把本地commit的记录提交到远程分支上面比如要提交到master分支就这样写git push -u origin mastergit reset 提交编号如果我们提交了一条记录但是想撤回可以先通过git log得到提交记录可以通过这个命令回到上一次提交时的状态git reset ac69fb3b2bcc9efa87a677039e0dd62ee02f3357这个字符串就是提交记录里的编号查询和修改相关git config user.name查看用户名git config user.password查看密码git config user.email查看邮箱git config --list查看配置信息git config --global user.name “新的用户名”修改用户名git config --global user.password “新的密码”修改密码git config --global user.email “xxxxxxx.com(新的邮箱)”修改邮箱分支相关git branch获取所有分支名字以及当前所在分支另外还有 git branch -a 命令加上了-a参数可以查看远程分支远程分支会用红色表示出来开了颜色支持的前提下git branch 分支名创建一个新分支git merge 分支名合并分支把输入的分支名合并到当前分支比如当前分支为branchA我们输入git merge branchB就会把branchB分支合并到当前的branchA分支git branch -d 分支名删除这个分支注意如果这个分支没有被合并会报错如果还是想强行删除这个分支用这个命令git branch -D 分支名git checkout 分支名切换到当前分支例如git checkout master就是切换到master分支git reflog show 分支名查看这个分支是基于那个父分支创建的比如git reflog show xiong_upmicnum按下回车后主要看Created from信息如下就可以得知xiong_upmicnum分支是基于develop分支创建的git branch -m 老分支名 新分支名修改本地分支名字把老分支名字改为新分支名字当然如果要修改远程的可以这么做1先修改本地的分支名2删除远程的老分支3重新push当前修改名字之后的分支当然在Android Studio中也可以不用命令直接点击右下角的分支列表然后对指定的分支左键单机就可以完成上面三步操作了下图是本地分支远程的还有Delete选项暂存相关git stash如果你想切个分支或者想pull最新代码但是你本地代码有修改而且这些代码又没有实现并很好完成一个功能或者业务逻辑而不想commit代码所以此时你最希望有这样一个命令那就是先把代码存储到本地而不提交然后可以让我去实现切换分支或者pull最新代码。git stash就可以实现这个功能具体流程为git stash 把本地修改并且未提交的内容存储到本地栈中的栈顶。do some work 此时你可以去切换分支或者pull最新代码git stash pop 此时你可以把你刚才stash到本地栈中的代码pop到本地git stash pop把你刚才stash到本地栈中的代码pop到本地git stash list查看你本地存储的暂存日志如下图git stash clear清除所有stash暂存信息git stash drop stash{0}删除指定的stash大括号内的数字就是你暂存日志列表里的数字比如你要删除栈顶的第一条就是git stash drop stash{0}结果就由上图的列表变成了下图的列表git stash save “你的stash日志”和git stash命令功能一样只不过多加了日志比如git stash save “新建一个stash”这样列表里就是git stash pop stash{1}和git stash pop命令一样都是拉取暂存内容只不过可以指定去拉去栈顶的第几个暂存内容不可以可重复拉取暂存内容git stash apply stash{1}和git stash pop命令一样都是拉取暂存内容只不过可以指定去拉去栈顶的第几个暂存内容可重复拉取暂存内容并恢复git show stash{0}查看本地最后一个stashgit stash --help获取stash帮助会跳转到一个帮助页面报错解决使用问题git stash pop stash{0} 报错如下error: unknown switch e usage: git stash apply [--index] [-q|--quiet] [stash] -q, --quiet be quiet, only report errors --index attempt to recreate the index这种问题是因为VSCode中花括号在 powershell 中被认为是代码块执行标识符若想正常使用可用反引号进行转义stash{0’}如下git stash pop stash{0}其他1当git打印日志日志过多时不会一下子显示而是要通过回车才能看到下一行如果要退出这种状态按下q键就可以重新进入输入命令状态2AS很多操作是可以通过命令的当然能用命令实现也可以看个人情况3默认一个电脑的所有项目都会用同一个用户名和邮箱但如果是公司的电脑我们希望用自己的用户名和邮箱就需要特别设置以前我们是这样修改配置的## git config --global user.name 新的用户名 修改用户名 ## git config --global user.password “新的密码” 修改密码 ## git config --global user.email “xxxxxxx.com(新的邮箱)” 修改邮箱如果你这样去修改那么就是全局修改如何针对单个项目去配置专属的用户名和邮箱呢其实很简单在每个项目的根目录下都有一个.git 文件夹该文件夹是隐藏状态先将其显示然后打开里面的config文件在末尾添加一条配置信息[user]namecompay_yourname emailyouremailcompay.cn这样设置后你在该项目下提交的信息即为你设置的信息。唯一的缺点是他是只能配置该项目如果有多个项目需要分别配置下。参考资料git 命令 | 菜鸟教程Git入门图文教程(1.5W字40图)–深入浅出、图文并茂