git简明教程以及资源分享

一:相关资源请查看原文 git简明教程以及资源分享 | 云隙拾笺

  • git绿色版win
  • 安卓git客户端 mgit

概述

Git 诞生于 2005 年,最初为 Linux 内核开发打造,是一款分布式版本控制系统。它可以完整留存代码的每一次修改记录,通过分支实现并行开发,让多人协同、版本回滚与变更追溯变得简单可靠,是现代软件开发最基础的协作工具

是什么: 分布式版本控制系统(版本库)

核心作用: 版本管理,多人协作

如何实现:对文件进行状态区分,仓库和远程互相同步

安装

windows平台推荐直接下载绿色版安装包,解压,然后将解压目录添加到环境变量即可

复制代码
使用命令查看是否安装成功:
git --version

macOS

Homebrew推荐

复制代码
brew install git

Linux(以Ubuntu/Debian为例)

复制代码
sudo apt update
sudo apt install git

工作流程

相关概念的理解:

  • 工作区:你电脑上正在编辑的项目文件夹,就是肉眼能直接看到、修改文件的地方。
  • 暂存区:临时收纳盒,挑选好要保存的改动,先放到这里,准备一次性存入版本库。
  • 本地仓库:存在你电脑里的版本历史档案室,存放所有提交过的代码快照与变更记录。
  • 远程仓库:放在云端 / 服务器上的共享档案室,用来备份代码,方便团队多人同步协作。

工作流程如下图所示:

文件的状态

  1. 已忽略 通过.gitignore文件配置。这些文件不会出现在Git的状态输出中,Git也不会尝试跟踪它们的修改
  2. 未跟踪 git还没有管理的文件,可能是新创建的文件
  3. 已修改 跟踪文件被修改(即和本地仓库文件不同),且不在暂存区
  4. 已暂存 将已修改或者未跟踪文件提交到暂存区,将暂存区提交到仓库,到状态5
  5. 未修改/已提交 跟踪文件和本地仓库相同

常用命令

git配置

git config --global --list # 查看配置

git config --global user.name "你的用户名" # 全局配置用户名和邮箱,作用是标识提交者,全局配置对所有仓库都有效

git config --global user.email "你的邮箱地址" # 注意这里设置用户签名和将来登录远程仓库的账号无关,此名称用于标识,登录账号用于登录

git config user.name 局部配置当前仓库的用户名

git config user.email 局部配置当前仓库的邮箱

仓库初始化

方式一: git clone url

git clone url dir #克隆到指定目录

方式二: git init

git init newrepo

基本命令

git status 当前状态

git status -s // 查看仓库状态

  • ??红 未跟踪
  • m红 已修改
  • d红色 已删除(工作目录删除,版本库中还存在)
  • a绿色 已暂存

git diff 显示工作区和暂存区的差异,若暂存区为空比较的工作区和本地仓库的差异

git diff --cached 显示暂存区和本地仓库的差异,若暂存区为空,不进行比较

git diff HEAD 显示工作区和本地仓库的差异

git log --oneline 查看提交历史,显示一行

git cherry-pick xxx 挑拣提交,将该提交的改动部分(非两个分支所有改动),合并到当前分支

git链接远程仓库

本地项目名和远程项目名没有实质联系,互相传递的是.git仓库中的代码

方式一:创建本地仓库,然后添加远程仓库

git remote add origin http://admin@106.12.212.179:8553/r/~admin/flask-file-server.git 添加远程仓库,别名+地址

git remote -v 查看链接远程仓库

git remote rm origin 删除

git pull origin xxx 拉取远程xxx分支并合并到当前分支

git pull origin xxx:xxx 拉取远程分支xxx和合并到本地分支xxx

git reset --hard origin/branch-name 拉取远程分支覆盖本地分支

git push origin 推送当前分支到远程同名分支

git push origin xxx 推送本地xxx分支到远程同名分支(提交的过程中需要登陆远程仓库的用户名和密码,若该用户不在此项目成员列表中,则不能提交)

git push origin local_branch_name:remote_branch_name 推送本地指定分支推送到到远端指定分支

git push origin --force 强制推送

方式二: clone自动添加

git clone xxx # 克隆默认的分支,master或者main

git clone -b <branch-name> <repository-url> # 克隆指定分支

分支操作

列出/创建分支 git branch

查看所有分支,包括远程分支 git branch -a

切换分支: git switch/checkout <branchname>

创建切换分支指定起点 git switch -c <new-branch-name> <start-point>

合并分支: git merge <branchname> # 合并分支到当前分支

删除分支 git branch -d <branchname>

强制删除未合并分支 git branch -D <branchname>

创建远程分支

  • 方式一:远程仓库创建分支,然后本地拉取分支
  • 方式二: 本地创建分支,将此分支推送到远程

删除远程分支 git push origin -d feature-branch

相关推荐
数字新视界2 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
FinelyYang2 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践
java·大数据·人工智能
SelectDB2 小时前
从 StarRocks 走向 Apache Doris:如何实现引擎平滑替换与架构升级?
大数据·数据库·数据分析
大大大大晴天2 小时前
每天认识一个组件:JanusGraph
大数据
数字新视界4 小时前
信创机房动环监控技术在智能运维中的应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
清华kenny5 小时前
中医馆如何参考安徽亳州中医AI健康辨识仪品牌排名前十
大数据·人工智能·安徽晓得养
GlobalInfo6 小时前
全球及中国机器人现场部署服务行业研究报告(2026版):市场现状、行业前景与占有率分析
大数据·运维·人工智能
codigger7 小时前
别再靠"最终版-改"活下去了:一篇讲透 Git 与 GitHub
git·程序员·github·编程·控制版本
Elastic 中国社区官方博客7 小时前
5 分钟内将 56 页扫描文档转化为带引用的答案:面向搜索无法读取的文档的检索增强生成流水线
大数据·运维·人工智能·elasticsearch·搜索引擎·信息可视化·全文检索