有关git的使用

Git

1. Git 的基本概念

Git 是一个开源的分布式控制系统(版本管理工具),是目前使用范围最广的版本管理工具。

它的作用就是对文件进行版本的管理,由于每次项目上线可能会产生一些无法预料的bug,这时就需要选择上一个正常的版本进行回滚。而Git的存在,就是为让开发人员能够方便地在不同版本间进行切换。码云、Github在某种程度上来说,就是代码的网盘,作为一些开源开发商代码发布、存放、征集bug及意见的功能。

除了版本管理这项功能,Git 在团队协作开发上也有很大的优势。

除了上面的优点,Git还有一个特殊的地方 —— 分布式管理。SVN是另外一个版本管理系统,但是它必须要在特定的网络上才能进行开发和管理。一旦服务器宕机或者网路崩溃,版本控制这个功能就失效了。Git的分布式管理,可以让每个开发人员将仓库的代码全部下载到本地,包括这个项目的每个分支、版本更新的记录。如果线上的环境崩, 完全可以通过本地选择一个正常的历史记录进行回滚,然后去有网的地方将代码上传更新。

2. Git 工作原理

2.1 工作区

Git 在本地初始化一个仓库后,会存在三个工作区域:工作目录、暂存区、本地仓库,当关联远程仓库时,就会有一个远程仓库。

  • 工作区(Workspace):平时存放、编写代码的地方;

  • 暂存区(Stage/Index):用于临时存放代码的改动的地方;

  • 本地仓库(Repository):用于存放所有版本的数据;

 

3. Git 的使用

3.1 Git 的配置

在上传代码前,首先要进行Git的配置,否则代码仓库不知道你的身份,这样就没法记录谁上传谁修改了代码。这个配置只要在安装Git后配置一次即可。

 git config --global user.name "你的用户名"
 git config --global user.email "你的邮箱"

要检查配置是否完成,可以通过以下命令查看

 git config -l

如果在这行信息最后,出现刚刚配置的用户名和邮箱,则代表配置成功

 diff.astextplain.textconv=astextplain
 filter.lfs.clean=git-lfs clean -- %f
 filter.lfs.smudge=git-lfs smudge -- %f
 filter.lfs.process=git-lfs filter-process
 filter.lfs.required=true
 http.sslbackend=openssl
 http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
 core.autocrlf=true
 core.fscache=true
 core.symlinks=false
 pull.rebase=false
 credential.helper=manager-core
 credential.https://dev.azure.com.usehttppath=true
 init.defaultbranch=master
 user.name=lyan
 user.email=1055869654@qq.com

3.2 创建项目

 # 在当前文件夹下新建 .git 仓库
 git init
 
 # 在当前文件夹下创建一个名为bluej的文件夹,里面有 .git
 git init bluej

3.3 关联远程仓库

 git remote add origin https://gitee.com/lyanlul/bluej_40.git

3.4 git 四步走

 git add .    # 提交当前目录下的所有文件到暂存区
 git commit -m "feat:新增了头部"  # 将暂存区的文件提交到本地仓库
 git pull     # 将远程仓库的代码拉取到本地进行同步
 git push # 将本地仓库的代码推送到远程仓库
 git push -u origin master  # 如果是第一次新建仓库,推送时要添加关联分支
3.4.1 修改 commit 信息

如果commit的备注信息打错了,可以通过以下命令进行修改

 git commit --amend

首先,默认会打开一个 vim 编辑器,然后输入 i ,会发现左下角变成了 -- INSERT -- ,再更改备注信息即可。修改完成后,先按下 ESC ,退出编辑模式,再输入 :wq 回车进行保存。

3.5 文件状态

 git status
  • Untracked:文件没有被跟踪,提交本地仓库到远程仓库时,Untracked 的文件不会被上传;

  • Modified:文件已被编辑(它已被git跟踪);

3.6 忽略文件

如果要忽略某些文件,不需要进行git的上传,则可以在根目录下新建一个文件 .gitignore

 .DS_Store               # 忽略所有 .DS_Store 文件
 /test # 忽略根目录下 test 文件夹
 test/ # 忽略所有 test 文件夹
 *.html # 忽略所有以 html 为后缀的文件

3.7 分支

3.7.1 查看分支
 # 查看本地所有分支
 git branch
 # 查看远程所有分支
 git branch -r
3.7.2 新建和切换分支
 # 新建分支
 git branch 分支名称
 # 切换分支
 git checkout 分支名称
 # 新建并切换分支
 git checkout -b 分支名称
3.7.3 上传分支
 git push origin 分支名称
3.7.4 删除分支
 # 删除本地分支
 git branch -d 分支名
 
 # 删除远程分支
 git branch -dr [remote/分支名] # 只是删除本地的远程分支记录
 git push origin --delete [分支名] # 真正的删除远程分支
3.7.5 合并分支
 # 先切换到你的分支下,然后再把其他分支的内容合并到你的分支上
 git merge 分支名称

3.8 版本回退

要进行版本回退,需要查看日志找到需要回退的那个版本的 hash 值

 git reset --hard 哈希值
3.8.1 查看日志
 # 查看简略日志
 git reflog
 
 # 查看详细日志
 git log

 

 

 

posted @   隐形的喷火龙  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示