cen's blog cen's blog
首页
  • 编程文章

    • markdown使用
  • 学习笔记

    • C++学习
    • C++数据结构
    • MySQL
    • Linux
    • 网络编程
算法
  • Git
  • ProtoBuf
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

cen

十年饮冰,难凉热血
首页
  • 编程文章

    • markdown使用
  • 学习笔记

    • C++学习
    • C++数据结构
    • MySQL
    • Linux
    • 网络编程
算法
  • Git
  • ProtoBuf
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • Git
    • 初步认识
    • 基础配置
    • 忽略特殊文件
    • 远程仓库
      • 验证
      • 关联远程仓库
    • 分支管理
      • 创建分支
      • 查看分支
      • 切换分支
      • 合并分支
      • 删除分支
      • 修改分支名
      • 分支策略
  • ProtoBuf
  • 工具
cen
2025-09-28
目录

Git

# 初步认识

Git 是一种主流的版本控制器。所谓的版本控制器,就是能让你了解到一个文件的历史,以及它的发展过程的系统。通俗的讲就是一个可以记录工程的每一次改动和版本迭代的⼀个管理系统,同时也方便多人协同作业。

# 基础配置

# 设置用户名和e-mail地址
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
1
2
3

# 忽略特殊文件

在日常开发中,有些文件不想或者不应该提交到远端,创建.gitignore文件,然后把要忽略的文件名填进去,Git 就会自动忽略这些文件了。

模式 例子 说明
精确匹配 filename.txt 忽略所有名为 filename.txt 的文件
目录匹配 dir/ 忽略所有名为 dir 的目录及其内部所有内容
通配符 *.a 忽略所有以 .a 结尾的文件

# 远程仓库

# 验证

SSH 协议和 HTTPS 协议是 Git 最常使用的两种数据传输协议。SSH 协议使用了公钥加密和公钥登陆机制,体现了其实用性和安全性,使用此协议需要将我们的公钥放上服务器,由 Git 服务器进行管理;使用 HTTPS 方式时,没有要求,可以直接克隆下来。

  • 为了让本机能关联远程仓库,首次需要 SSH 验证: 在用户主(C:\Users\dell)目录下,看看有没有.ssh 目录, 如果有,再看看这个目录下有没有 id_rsa 和 id_rsa.pub 这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开 Shell(Windows 下打开 Git Bash),创建 SSH Key:
# 创建SSH Key
ssh-keygen -t rsa -C "email@example.com"
1
2
  • 接着,到 Github/Gitee 中新增 SSH 密钥即可

# 关联远程仓库

# 关联远程仓库,仓库名一般使用origin
git remote add <仓库名> <远程仓库地址>

# 把文件推送到远程仓库
git push -u <仓库名> <分支名>

# 简化 push
git push
1
2
3
4
5
6
7
8

由于远程库是空的,我们第一次推送 master 分支时,加上了-u 参数,Git 不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令。

# 分支管理

# 创建分支

# 创建分支
git checkout -b <分支名>
1
2

# 查看分支

# 查看分支
git branch
1
2

查看分支时,在分支前带 * 号的表示当前的分支

# 切换分支

# 切换分支
git checkout <分支名>
1
2

# 合并分支

# 合并本地的分支
git merge <分支名>

# 合并远程的分支
git merge <远程仓库名>/<分支名>
1
2
3
4
5

注意,是将指定分支合并到当前分支,并非当前分支合并到指定分支。

一般情况下是把当前分支切换到主分支,然后把子分支合并到主分支

C:\Users\cen\Desktop\LocalRepo>git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

C:\Users\cen\Desktop\LocalRepo>git merge dev
merge: dev - not something we can merge

C:\Users\cen\Desktop\LocalRepo>git merge dev1
Updating 371cfc3..c7906fc
Fast-forward
 server.hpp | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 server.hpp

C:\Users\cen\Desktop\LocalRepo>git push
info: detecting host provider for 'https://gitee.com/'...
info: detecting host provider for 'https://gitee.com/'...
info: detecting host provider for 'https://gitee.com/'...
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 2c4f3291
To https://gitee.com/cen-code/git-test.git
   c7906fc..7ee2cd3  master -> master
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 删除分支

# 删除分支
git branch -d <分支名>
1
2

# 修改分支名

# 修改分支名
git branch -m <原分支名> <新分支名>
1
2

# 分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

  • master 主分支:非常稳定,仅用来发布新版本
  • dev 开发主分支:比如 1.0 版本发布时,再把 dev 分支合并到 master 上,在 master 分支发布 1.0 版本
上次更新: 2025/11/11, 22:03:54
ProtoBuf

ProtoBuf→

最近更新
01
动态规划
11-08
02
ProtoBuf
09-28
03
Reactor
09-27
更多文章>
Theme by Vdoing | Copyright © 2024-2025 京ICP备2020044002号-3 京公网安备11010502056119号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式