Git实战经验

44 阅读2分钟

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节点