git 常用场景及常用命令

一、只想合并某个文件,不想合并整个分支怎么办?

两个分支:master,dev。

我们想将dev的config.js文件合并到master,先切换到master。

复制config.js的相对路径,src\components\Video\config.js,将 \ 改为 / ,再输入以下命令就行了。

//在master分支
git checkout dev src/components/Video/config.js
//然后进行 git add .等一系列操作?

二、在master分支commit之后,发现自己应该在dev提交,怎么办?

git reset --soft HEAD^   // 撤回commit,不撤回git add。HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
git stash                          // 缓存暂存区的更改,并清空暂存区
git checkout dev
git stash pop                  // 将缓存应用到该分支的工作区间,并删除该缓存
......

三、commit之后发现还有一个文件要改,但又不想commit两次,怎么办?(还没有git push操作之前)

git commit --amend  //这之后会进入vim编辑器,直接shift+:,输入wq保存退出就行。

四、git push之后代码出问题了,想回退到之前的版本,怎么办?

在这里插入图片描述

git log 或者 git reflog          // 查看版本号
git reset --hard 6324d95     // 版本号也可以写成 HEAD~4,回退到暗黑样式优化的版本,本地仓库之前提交的代码都会删除
git push origin dev --force  // 强制提交,因为本地版本低于远程仓库,git push是不行的。如果想在master分支强制提交,命令可能会因为没有权限而被中止,需要在gitlab修改该分支的提交权限。
//或者 git push -f

git log 与 git reflog 区别

git log 可以显示当前分支所有提交过的版本信息(不包括已经被删除的commit记录和rest操作)。注意:只能是当前分支操作的信息。
git reflog 可以显示所有分支的所有操作记录信息(包括已被删除的commit记录和rest操作)

总之,git log 与 git reflog区别:
(1)、能不能查询到被删除的commit记录和rest操作,log不能;reflog能。
(2)、log基于当前分支;reflog所有分支。

git rest --hard / --soft 区别

//git rest --hard 会清空工作目录和暂存区的改动
//git rest --soft 会保留工作目录的内容,所带来新的文件差别放在暂存区

git rest --soft 使用场景

在master分支commit之后,发现应该在dev上提交

git rest --soft HEAD^ // 撤回commit,不撤回git add .
					 // HEAD^表示上一个版本,即上一次的commit
git stash  // 缓存暂存区的更改,并清空暂存区
git checkout dev
git stash pop // 将缓存应用到该分支的工作区,并删除缓存

常用命令

新项目到手一系列操作

在自己盘里新建文件夹,右击第二个,打开控制面板Git Bash Here

$ git clone 地址(git库位置)
//打开文件夹(如 cd ***)
$ git checkout dev
$ npm install
$ git checkout -b feature-ww  //feature-ww自己创建的分支名,新建分支并切换到该分支上,在该分支上写代码
$ git pull origin dev  //把gitlab上dev分支上的内容拉取到本地,拉取dev上最新代码
//拉取下来的代码如npm i 不成功,可以以管理员身份运行
$ git push -u origin feature-ww  //使自己建立的分支与远程分支关联!!!
// 右击 Git Bash here
git checkout dev // 切换到分支
git pull origin dev  // 拉取最新代码
//修改
//提交
git add .
git commit -m "本地修改命名"
git pull
git push
//相当于vscode编辑器中的将"暂存所有更改" -变成+ 更改 ✓提交"命名"回车

合并分支

// feature-ww分支合并到dev分支
git add .
git commit -m "命名"
git checkout dev
git pull origin dev
git merge feature-wu // feature-ww合并的那个分支
git push origin dev

将分支上的内容不提交,暂存到本地

git add .
git stash  //暂存内容
git stash pop  // 暂存内容释放

查看当前状态,删除分支

git branch  // 查看本地分支有哪些(已创建的本地分支)
git branch -r  // 查看远程分支
git branch -d [name]  // 删除分支,-d只能删除除了已经参与合并的分支,对于未有合并的分支是无法删除的,强制删除一个分支-D
git branch -a  // 所有分支查看

一个新项目在git上创建New Project ->create Project,然后将代码片段推到git上

git remote add origin ***(仓库地址)  // 本地项目,添加到远程git仓库地址
git add .
git commit -m "***"
git push -u origin master  // 把本地仓库提交

git回退线上代码

git log  // 查看要回退的版本号
git rest --hard 查看到回退的版本号  // 回退到之前的版本
git push -f  // 远程回退
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值