整理Git

2026.1.13 周二

Git(分布式版本控制系统

1.仓库(Repository)

用来存储项目所有版本信息的"数据库",分为

*本地仓库:存在你电脑上的.git隐藏文件夹(包含完整的版本历史)

*远程仓库:托管在网络服务器上(如 GitHub、GitLab、Gitee),用于团队共享代码

2.提交(Commit)

Git 中最基本的操作之一:将当前工作区的修改"固化"为一个版本快照 ,并附带一条描述信息(说明这次修改做了什么)。每个 Commit 有唯一 ID(哈希值,如 a1b2c3d),可追溯;提交历史是一条链,可通过 Commit ID 回溯到任意版本。

3.分支(Branch)

从主线(默认叫main/master)分离出的独立开发线。并行开发不同功能。

*分支切换:可随时切换到不同的分支,修改不会相互影响。

*分支合并:开发完成后,将分支的修改合并回主线。

4.暂存区(Staging Area)

介于"工作区"和"本地仓库"之间的缓冲区域。作用是可以精准控制提交内容---只把需要的修改放入暂存区,在提交到仓库,避免无关修改混入版本历史。

*工作区:你正在编辑的文件

*暂存区:临时存放"准备提交"的修改(通过 git add将工作区修改加入暂存区)

5.远程协作

克隆(Clone)

将远程仓库完整复制到本地(git clone 远程地址)

拉取(Pull)

从远程仓库获取最新修改并合并到本地(git pull = git fetch + git merge)

推送(Push)

将本地仓库的修改上传到远程仓库(git push)

抓取(Fetch)

仅从远程获取最新修改(不自动合并,需手动处理冲突)

6.基本工作流程

1.克隆 / 初始化仓库

克隆远程:git clone 地址

初始化本地: git init(将现有文件夹转换为git 仓库)

2.修改文件

在工作区编辑代码

3.暂存修改

将需要提交的修改加入暂存区

git add <文件名> # 暂存单个文件

git add . # 暂存所有修改(常用)

4.提交修改

将暂存区的内容固化为版本

git commit -m "feat: 添加用户登录接口" # -m 后接提交描述(必填)

5.同步远程

  • 拉取远程最新修改:git pull(避免冲突)

  • 推送本地提交到远程:git push origin main(假设主分支是 main

7.常用命令

git init 初始化本地仓库

git clone <url> 克隆远程仓库到本地

git statu 查看工作区和暂存区的状态(哪些文件被修改/未暂存)

git add <file> 将文件加入暂存区

git commit -m "msg" 提交暂存区到本地仓库

git log 查看提交历史

git branch 查看所有本地分支(*表示当前分支)

git checkout -b <branch> 创建并切换到新分支

git merge <branch> 将指定分支合并到当前分支

git pull 拉取远程更新并合并

git push 推送本地提交到远程

git reset <commit>回退到指定 Commit(谨慎使用,会修改历史)

8.具体操作

配置用户信息

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
1.GitLab中,点击左侧的Project选项,找到 SSH,复制 eg:git@github.com:用户名/项目名.git

2.先创建一个project文件夹,在终端中cd project/ 到这个文件夹下面,git clone +你复制ssh上面的东西(把网上的代码仓库整个复制 到你的电脑,这样你的 project/文件夹里会有代码文件了)

  1. 配置用户名和邮箱git config --global user.name "Your Name" git config --global user.email "your_email@example.com"(告诉 Git 你是谁(就像署名),这样你修改代码后,别人知道是谁改的)
  2. ssh-keygen -t rsa -b 4096生成SSH密钥(私钥id_rsa:保存在你的电脑上,绝不外传;公钥id_rsa.pub:上传到GitHub/GitLab)
  3. 把公钥内容粘贴到 GitHub/GitLab 设置里,这样网站就认识你的电脑了,以后不用每次输密码
  • 点击右上角头像 -> 【Settings】(设置) -> 侧边栏 【SSH Keys】
  • 将 id_rsa.pub 文件的内容全部复制,粘贴到"Key"文本框中。
  • 点击 【Add key】 添加。

9.alias 别名

如何配置别名

编辑 ~/.bashrc 或 ~/.bash_profile

nano ~/.bashrc

或者

vim ~/.bashrc

将下面的别名配置粘贴到文件末尾

保存后运行

source ~/.bashrc

(1)git操作别名

alias gs='git status' - 查看仓库状态

alias ga='git add' - 添加文件到暂存区

alias gd='git diff' - 查看文件差异

alias gb='git branch -v' - 查看分支详情(带最后提交信息)

alias gcm='git commit -m' - 提交并填写提交信息

alias gam='git commit --amend' - 修改最后一次提交

alias gck='git checkout' - 切换分支或恢复文件

alias gcp='git cherry-pick' - 挑选提交

alias gp='git push' - 推送到远程

alias gpf='git push -f' - 强制推送(谨慎使用)

alias gplm='git pull origin master' - 从 origin/master 拉取

alias gpo='git pull origin ' - 从指定分支拉取

(2)项目管理别名

alias start='pnpm start'

alias dev='pnpm run dev'

alias pi='pnpm install'

alias pj="cd ~/project"·

alias std="cd ~/study"

是一组非常实用的 Shell 别名(Shell Alias)配置,主要用于命令行操作的快捷方式。这些别名让你可以输入简短的命令来代替长而复杂的完整命令,大幅提高在终端中的工作效率。

cat ~/.ssh/id_rsa.pub 查看ssh密钥

gck ai-photo-v1.3切换分支

git pull origin ai-photo-v1.3从上面拉代码

gck -b ai-photo-v1.3-follow从上面创建一个新分支

git log查看日志

相关推荐
生活在一步步变好i2 小时前
模块化与包管理核心知识点详解
前端
千寻girling2 小时前
Vue.js 前端开发实战 ( 电子版 ) —— 黑马
前端·javascript·vue.js·b树·决策树·随机森林·最小二乘法
程序员爱钓鱼2 小时前
Node.js 编程实战:博客系统 —— 数据库设计
前端·后端·node.js
m0_741412242 小时前
Webpack:F:\nochinese_path\React_code\webpack
前端·react.js·webpack
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于Web技术的知识付费平台为例,包含答辩的问题和答案
前端
困惑阿三2 小时前
利用 Flexbox 实现无需媒体查询(Media Queries)的自动响应式网格。
开发语言·前端·javascript
朝阳392 小时前
前端项目的 【README.md】详解
前端
浩冉学编程2 小时前
html中在某个父元素动态生成列表子元素,添加点击事件,利用事件委托
前端·javascript·html
OpenTiny社区2 小时前
TinyPro v1.4 空降:Spring Boot 集成,后端兄弟也能愉快写前端!
前端·javascript·vue.js