Git是一个分布式版本控制系统,用于跟踪文件的变更。它最初由Linus Torvalds为Linux内核开发而创建,但现在已经广泛应用于各种软件项目的开发中。
Git的主要功能
- 版本控制:Git允许你记录文件的历史变更,可以查看任何时间点的文件状态。
- 分支管理:Git支持创建和管理多个分支,这非常适合于并行开发和特性开发。
- 合并与解决冲突:可以轻松合并不同分支的代码,同时Git提供了工具来帮助解决合并时可能出现的冲突。
- 回滚:可以轻松回滚到项目的早期版本。
- 远程仓库:可以与远程仓库(如GitHub, GitLab, Bitbucket等)交互,便于多人协作和代码分享。
1. 撤销最后一次提交
git reset --soft HEAD~1
此时更改会回到暂存区,你可以重新提交:
git commit -m "提交信息"
--soft
参数保留更改,--hard
则会直接丢弃更改,
2.暂存未完成的更改,
使用场景:你在A分支做了代码,没写完,有更高的优先级,需要处理另外一个分支上B的事情,做完B的时候再切换到A分支,然后用 git stash pop拿出没写完的代码继续跟进。
暂存更改:
git stash
恢复更改:
git stash pop
git stash list
查看所有暂存的更改,方便管理。
3.合并多个提交(Squash)
git rebase -i HEAD~3
运行上面命令后,Git 会打开一个交互式编辑器(通常是 Vim 或你配置的默认编辑器)
pick tyu123 First commit message
pick yyy456 Second commit message
pick ikl789 Third commit message
如果想把第二次提交和第三次提交合并到第一次提交中,并修改最终的提交信息,可以这样将前面 pick 改为 squash:
pick tyu123 First commit message
squash yyy456 Second commit message
squash ikl789 Third commit message
按 Esc,输入 :wq
,然后回车,保存并退出。Git 会提示你编辑合并后的提交信息,完成后提交历史就会被整理成一条新的提交。
-
squash: 合并提交,并保留所有提交信息。
-
fixup: 合并提交,但只保留第一个提交的信息。
4. 忽略不必要的文件
# 忽略 node_modules 文件夹
node_modules/
# 忽略环境配置文件
.env
git add .gitignore
git commit -m "添加 .gitignore 文件"
5. 删除分支
git branch -d branch-name
删除远程分支:
git push origin --delete branch-name
6.遴选提交节点(市面上很少人用,有些人没听过)
使用场景:你当前在A分支,你想要将B分支的某个commit节点拿过来到A分支,不用逐个复制文件的改动
git cherry-pick B分支的commit节点