git常见命令及对应的场景


场景一:查看配置信息、git账号、邮箱、密码

查看用户名:git config user.name
查看邮箱:git config user.email
查看密码:git config user.password
查看配置信息 git config --list
在这里插入图片描述

设置git用户名及邮箱
设置用户名:git config --global user.name “用户名”
设置邮箱:git config --global user.email “邮箱”
设置密码:git config --global user.password “密码”

场景二:在本地idea中利用git拉取远程仓库代码,创建本地工程

参考:https://blog.csdn.net/qq_28019039/article/details/125377420

场景三:拉取,推送、切换分支、创建分支、更新拉取远程主仓库新建的分支等

拉取项目:git clone 项目地址
切换分支:git checkout --(分支名称)
切换 git 远程分支,使用命令:git checkout -b 分支名称
注意:切换远程分支一定要带上 - b 参数,只有切换本地分支的时候才不需要 -b 参数,-b 的意思是 base,以当前分支为 base,新建一个名叫 xxx 的分支 。如果使用 “git branch 远程分支名” 命令切换到远程服务器分支上,
则会导致如下错误提示:

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

这时候再使用 git branch 命令查看本地分支,就会发现当前分支是在一个 叫 “(HEAD detached at 远程分支名)” 上。detached 是游离的意思,表名当前分支是在游离状态。

远程服务器新建了分支,本地无法 checkout , 或者本地看不到,使用命令: git branch -r 可以查看远程分支。

如果这时候直接使用 git checkout -b xxxx 去切换到远程分支,是会报如下错误的

error: pathspec 'branch170628_foo' did not match any file(s) known to git

使用命令:git fetch 更新 remote 索引

取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名,例:$ git fetch <远程主机名> < 分支名 >

场景四:commit的时候如何排除不需要合并提交的文件

使用 .gitignore文件 记录不需要提交合并的问题件的后缀名
在这里插入图片描述

如 上图中 *.htm 表示所有后缀为htm的文件在commit的时候都忽略

场景五:commit后想改备注怎么操作

git commit –amend 进入默认vim编辑器,修改注释完毕后保存即可;
当然也可以先取消commit,如场景六,然后再次commit,并编辑备注即可

场景六:commit后还没push,想取消commit怎么办

git reset --soft HEAD^
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果进行了2次commit,想都撤回,可以使用HEAD~2
–mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
–soft
不删除工作空间改动代码,撤销commit,不撤销git add .

–hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态,这次commit修改添加的代码也会被删除,故慎用!!!

查看commit提交记录id
$ git log 如下图
在这里插入图片描述
Commit后面为此次commit对应的id,在回撤commit的时候可以用:git reset –soft commitId 来回撤对应的commit
补充:git show commitId 查看对应commit的所有修改

场景七:commit并push到远端,想要取消怎么办

对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用到下面的命令
git revert <commit_id>
revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新

注意:git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit,看似达到的效果是一样的,其实完全不同。
第一:上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.
第二:如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
第三:reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.

场景八:拉错分支代码怎么办,即撤回合并操作,也就是恢复git pull 之前的代码

运行:git reflog
如下图
在这里插入图片描述Ps:退出查询状态:在英文输入法中 按q即可
执行撤回:git reset --hard 7795e52
Ps:上图总黄色字体为版本号,即在git reset –hard 后加上的对应版本号
注意:以上操作会把还未提交的代码删除,注意备份新开发的代码后再进行操作。

场景九:未完待续.,遇到了再来记录吧…

参考:
https://my.oschina.net/xuzimian/blog/3040212
https://blog.csdn.net/weixin_44050303/article/details/118941150

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值