Git的最舒适打开方式 | 豆包MarsCode AI刷题

98 阅读4分钟

Git的正确使用姿势与最佳实践:团队协作和版本控制的最佳实践


什么是Git?

  • Git 是一个免费开源的分布式版本控制系统,可以方便地 处理各种项目版本控制记录文件内容变化,不再让程序员在面对众多的代码版本时茫然无措。(亲身体验过朋友的数字命名法——文件夹1,文件夹11,文件夹1.1)

image.png

下载Git

Git (git-scm.com) 进入Dowloads模块,找对自己计算机对应版本下载即可

集中式与分布式的区别

除了git,其实还有svn、cvs这样的集中式版本控制系统

集中式版本控制系统 每次在写代码时, 都需要从服务器中拉取一份下来如果服务器丢失了,那么所有的代码就都丢失了,你的电脑仅保存当前的版本信息。换句话说,集中式就是把代码放在一个服务器上集中管理,你所有的回滚等操作 都需要服务器支持。

分布式版本控制系统 的优点在于,每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你也可以把自己的代码新建一份仓库分享给其它人。

Git的常用命令

命令代码命令作用
git config --global配置git环境
git init创建本地空仓库,直接就是main
git add 文件名将文件添加到缓存区
git commit -m把刚刚用git add添加到提交缓存区里的文件提交到本地仓库中
git commit --amend改写提交
git log查看历史提交日志
git status查看本地库状态,可以检测文件是否被改动
git reset --hard 要回滚到的版本ID回滚代码仓库
常见Git配置:

git config --global user.name "Jack" # 将用户名设置为Jack

git config --global user.email Jacklove@xx.com # 设置邮箱

Git命令别名配置:

git config --global alias.cam "commit --amend --no-edit" # 将后面的命令取别名cam


Objects:

commit, tree, blob 在git里面都属于 Object, 除此之外还有一个 tag 的Object commit: 记录提交信息,对应唯一版本代码 tree: 存储文件的目录信息 blob: 存储文件的内容

  • 通过commit寻找到tree信息,每个commit都会存储对应的tree id;
  • 通过tree存储的信息,获取到对应的目录树信息;
  • 从tree中获得blob的id,通过该id获取对应文件的内容。
修改历史版本
  • git commit --amend 可以修改最近一次的commit信息,修改之后 commit id 会变
  • git rebase 通过git rebase -i HEAD~3 可以实现对最近3个commit进行修改
    • 合并 commit
    • 修改具体的 commit message
    • 删除某个commit

Git的分支命令

分支的作用:同时并行多个功能开发,提高开发效率

命令代码命令作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git commit -m把刚刚用git add添加到提交缓存区里的文件提交到本地仓库中
git merge 需要合并的分支名把指定的分支合并到当前分支上

Git 远端交互与多人合作

将远端代码拉取到本地

git clone : 拉取完整的仓库到本地目录,可以指定分支,深度(配合Github食用更佳)

git fetch : 将远端某些分支最新代码拉取到本地,不会执行merge操作。如果需要和本地代码合并需要手动操作

git pull : 拉取远端某分支,并和本地代码进行合并。相当于 git fetch + git merge

将本地代码同步至远端

git push

通常使用 git push origin main (可能产生冲突,谨慎对待!


使用vscode的小伙伴也可以下载插件,使用更简单的图形化界面操作