02_Git

文章目录

Git

git的特点

  • 分布式
    • 比如说:同事A、同事B、同事C都能对远程仓库进行操作,就是分布式
  • 离线可用
    • SVN(集中式版本控制工具)如果网络中断,则没办法提交代码
    • Git(分布式版本控制工具)如果网络中断,可以提交代码到本地仓库,没办法推进代码
  • 可以回退

Git的核心流程

  • 远程仓库:类似于网络上的存储空间,可以存储代码
    • 比如:githubgiteegitlab、自己搭建服务器
  • 本地仓库:远程仓库在本地的一个路径,没办法操作它
  • 缓冲区:没办法直接操作
  • 工作空间:可以直接操作

Git的命令

clone指令

  • 只有第一次拉去远程仓库到本地仓库用clone指令,之后就用pull指令
shell 复制代码
# 下载远程仓库的内容,并且在本地创建一个和远程仓库名同名的文件夹
eg:
git clone https://gitee.com/test.git

# 下载到指定的文件夹中。文件夹需要是个空目录
git clone https://gitee.com/test.git dirName

status指令

这个命令可以帮助我们查看工作区和缓冲区中的变化

eg:

  • 红颜色:指工作区中的变化
  • 绿颜色:指缓冲区中的变化

add指令

  • 这个命令可以帮助我们把工作区中的变化提交到缓冲区
  • add的时候,要指定文件名
  • 常见提交方式有:
shell 复制代码
# 有以下的三种提交方式

# 文件的名字
git add fileName


# 文件的类型,通配符添加
# 指将所有的java文件添加到缓冲区
git add *.java


# 所有文件
git add .

eg:

commit指令

  • 这个命令可以帮助我们把git仓库中缓冲区中的内容提交到本地仓库
  • 不能将指定文件进行commit操作

第一次提交的时候要设置用户名和邮箱

  • 执行指令去设置
shell 复制代码
git config --global user.email "forExample@xx.com"

git config --global user.name "xxx"

eg:

上图中的738b48f是一个版本号

注意事项

  • 这一步会产生一个文件的版本号
  • 如果是第一次commit,需要设置用户名和邮件地址
  • 只会把缓冲区中的变化提交到本地仓库,不会把工作区中的变化提交到本地仓库
  • commit的时候需要指定提交的信息,提交的信息一般要去设置模板

commit的格式

shell 复制代码
# 提交
git commit -m "msg"
## msg:msg信息一般要有统一的格式 例如:描述信息 (issue号)
# 1.描述信息 (issue号)
# 2.(issue号) 描述信息

# 尽量做到,见到描述信息可以知道这次提交是干什么的。
# 不要写什么 1 abc 

push指令

  • push这个命令可以帮助我们把本地仓库中的所有变化推送到远程仓库
  • 不能指定文件进行push操作
  • push指令的第一步一般是pull指令
  • 只有当本地仓库中的版本领先于远程仓库的时候,才可以进行push操作

eg:

pull指令

  • 会拉取远程仓库中的所有的变化到本地 ,并且会显示出版本号
  • 当本地仓库中的版本落后于远程仓库的时候 ,就要pull

eg:

log指令

查看仓库中的所有的版本信息

eg:


Git中处理冲突


总结

  • 先push的人不处理冲突,后push的人要处理 冲突
  • 和组员一起开发的时候,尽量不要开发同一个文件,很容易产生冲突
  • push之前最好先pull一下,不然可能会push失败
    • 早上上班之后,第一件事情,拉取最新的代码(pull)
    • 晚上下班之前,最后一件事情,把最新的本地代码推送上去(push)。代码一定要能编译通过

协同合作

不管是 开源的仓库,还是私有的仓库,都是 只有仓库中的成员才能去修改仓库中的代码。

  • 开源:所有人都可以访问到
  • 私有:只有仓库指定的成员才能看到

Git中回退的措施

  • git diff 文件名

    • 可以查看文件发生了哪些变化
  • git checkout 文件名

    • 将在工作区中文件的变化丢掉
  • git reset 文件名

    • 把缓冲区中的变化,回退到工作区。注意:git reset不会改变文件中的内容
  • git reset --hard 版本号

  • git reflog

    • 查看之前的版本号

忽略文件

  • 可以在Git仓库的根目录下添加一个.gitignore 这个名字的文件,可以在这个文件中声明哪些文件不被git追踪版本信息。
  • 一旦一个文件已经被追踪并且提交到远程仓库中去了,那么再在.gitignore 这个文件中去忽略它的变化,是无效的
相关推荐
哆哆啦005 小时前
obsidian远程同步方案:infiniCloud+remotely save方案
笔记·git·obsidian
西柚小萌新6 小时前
【计算机常识】--使用 Gitea 在本地/内网搭建 Git 私有服务器
服务器·git·gitea
zhangfeng11337 小时前
scp 命令的使用方法 什么软件支持 .git bash xshell .openssh
开发语言·git·bash
_君莫笑16 小时前
大厂Git使用规范
git
无心水1 天前
【Hermes:安全、权限与生产环境】39、智能体也会犯错?Hermes 纠错、回滚与遗忘机制全指南 —— 让 AI 的错误像 Git 一样可逆可控
人工智能·git·安全·mcp协议·openclaw·hermes·honcho
南境十里·墨染春水1 天前
linux学习进展 git详解
linux·git·学习
zhangfeng11331 天前
CodeBuddy ai对话框上面的git docs terminal Rulds 干嘛用的,以thinkphp fastadmin 为例,插件市场
人工智能·git·编程
OYangxf1 天前
Git Conflict Resolution
大数据·git·elasticsearch
高斯林.神犇1 天前
Git全套流程
git
次元工程师!1 天前
LangFlow开发(一)—安装和部署
git·python·大模型·langflow