Git 常用命令及其使用场景

git checkout

# 下面两句命令的作用是一样的,都是将 index.html 恢复到上一次 commit 的状态
git checkout index.html
git checkout -- index.html

# 注意:如果是想在 login 分支的基础上,新建一个分支,进一步开发 login 分支,那么可以直接执行下面的新建并切换到新分支命令,
# 然后直接在新分支的基础上进行开发即可
git checkout -b login-extend

# 你可以在新分支 login-extend 上新增一些文件,然后 git add  和 git commit 提交到 git 仓库
# 注意:只有使用 git commit 提交到对应的分支中,该部分代码才会归于该分支
# 然后切换回 login 分支,然后就会发现,在新分支 login-extend 上新建的文件不见了,显示的都是 login 分支上的文件
# 再次切换回 login-extend 分支,发现工作区又会显示之前新建的文件

git 分支操作相关命令

# 创建并切换到 login 分支
git checkout -b login
# 切换到已存在的 login 分支( 如果不存在会报错 )
git checkout login

# 查看 git 仓库中的所有分支( * 标识的高亮分支就是当前所处的分支 ) 
git branch

# 将 main 分支的内容合并到当前的 login 分支( 当前所处分支为 login )
# 实际开发中,如果想在某一个分支的基础上进行进一步的开发,那么可以使用 git merge 命令,将目标分支的代码拷贝一份到当前分支中,
# 然后,就可以在新分支上继续开发目标分支了,两个分支的代码互不干扰
git merge main

# 将当前所处分支的名称修改为 main
git branch -M main

# 新增远程仓库地址
git remote add 远程仓库别名 远程仓库地址
# 提交代码到远程仓库分支并设置对应的上流分支,然后下次直接执行 git push,就可以完成将代码提交到已经设置的远程上流分支中
git push -u 远程仓库别名 某一个远程仓库分支

# 将当前分支提交到对应名称的远程分支上( 远程分支不存在时自动创建 )
git push 远程仓库别名 某一个远程仓库分支( 一般与当前提交的本地分支同名 )

# 删除分支
# 删除本地分支
git branch -d localBranchName
# 删除远程分支
git push origin --delete remoteBranchName

git commit

修改最近一次的提交信息

# 1.打开最近一次的提交信息
git commit --amend

# 2.输入 i,进入 vim 编辑器的编辑模式
# 第一行就是 git commit 时设置的 message

# 3.修改好之后,按下 esc 键退出编辑模式,然后输入 :wq 保存并退出
# 输入  :qa!  并按回车键来放弃所有更改并退出 Vim
# 将当前的提交和上一次的 commit 合并为一次 commit
git commit --amend --no-edit

修改

-a, --all 
Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are not affected.

# 告诉 git 之后自动暂存被修改的文件和被删除的文件变更,但是新创建的文件还是需要手动使用 git add 暂存
# 就是除了新增文件之外,之后可以跳过 git add 的步骤,直接使用 git commit 提交变更
git commit -a--a

git pull

# 拉取设置的远程上流分支中代码到本地分支中
git pull

# 执行上面的命令相当于执行下面两个命令
git fetch
git merge

git rm

# 删除工作区中的 test.txt 文件,并提交变更到暂存区
git rm test.txt

# 只删除暂存区中的 test.txt 文件,工作区中的保留
git rm test.txt --cached

# 清空暂存区( rm 是 linux 命令 )
# 就是删除 .git 目录下的 index 文件
rm .git/index

git stash 和 git stash pop

git stash命令,可以将当前未提交的修改(工作区的修改和暂存区的修改)先暂时储藏起来,保证工作区的干净。

然后就可以切换到其他分支进行 bug 修复等操作,完成之后,重新切换回 dev 分支下通过 git stash pop 命令将之前储藏的修改取出来,继续进行新功能的开发工作

# 临时存储工作区未提交的变更
# 注意:新建的文件并不会被储藏,注意不要手动删除,以免丢失
git stash

执行完 git stash 之后,可以看到 dev 分支中被修改的文件也已经恢复到了最近一次 commit 的版本,说明 dev 分支修改已经被临时储藏成功了。

这个时候就可以放心的切换到其他分支,完成紧急开发工作(比如修复线上版本的 bug)。

线上 bug 修复完成后,就可以继续开始之前的新功能开发了。

先切换到 dev 分支下:

# 切换到 dev 分支
git checkout dev

然后,取出之前临时储藏的修改

# 取出之前通过 git stash 储藏的变更
git stash pop

git reset

菜鸟教程:git reset 命令

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

git reset 命令语法格式如下:

git reset [--soft | --mixed | --hard] [HEAD]

–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

# 移除暂存区中暂存的变更, 不会影响工作区
git reset
# 回退到最近一次 commit 的版本
git reset HEAD~1
# 回退到上上次 commit 的版本
git reset HEAD~2

–soft 参数用于回退到某个版本:

git reset --soft HEAD

示例:

git reset --soft HEAD~3   # 回退上上上一个版本(回退 3 个版本)

–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次 commit 的版本

git reset --hard HEAD
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coderyzj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值