目录

第一部分:本地仓库

一、目标

二、开发实际场景

三、常用两种版本控制器方式

3.1 SVN

3.2 Git

3.3 Git工作流程图

四、Git安装与常用命令

4.1 Git环境配置

4.1.1 下载安装

4.1.2 基本配置

4.1.3 为常用指令配置别名(可选)

4.1.4 获取本地仓库(开始实际操作)

4.1.5基础操作指令

###文件案例练习###

五、分支(branch)

查看分支(branch)

切换分支(checkout)

合并分支(merge)

删除分支(brand/-d-D)

*解决分支冲突

开发种分支使用原则与流程

###分支案例练习###

分支合并快进模式说明(git智能的地方)

第二部分远程仓库

六、常用的托管服务(远程仓库)

6.1 注册码云

6.2 创建远程仓库

6.4 配置SSH公钥

6.5操作远程仓库

6.5.1 添加远程仓库

6.5.2 推送到远程仓库

6.5.3 本地分支与远程分支关联关系

6.5.4 从远程仓库拉取数据(clone)

6.5.5 抓取和拉取

1. 抓取(git fetch)

2. 拉取(git pull)

总结:用哪个?


第一部分:本地仓库

一、目标

无,直接从四git安装下载开始 ,来来去去就几条命令。

二、开发实际场景

  • 硬盘坏了?      硬盘坏了也不怕,Git 能把你写的东西捞回来。
  • 代码改崩了?      改乱了代码,Git 一键回到之前能跑的版本。
  • 多人改同一文件?    Git 能把两边的修改合并好,不互相覆盖。
  • 代码出 bug 了?         代码出问题,Git 能查到是哪个程序员、啥时候改的。

三、常用两种版本控制器方式

3.1 SVN

集中式:淘汰       git很强大

3.2 Git

Git 是 Linus Torvalds 为管理 Linux 内核开发而开发的开源分布式版本控制系统,无需中心服务器,本地每台电脑上存储一致。理论上两个程序员互传就可以了但我们为了不用总在线等对方/防止 “单点丢失”/方便多人协作总不能让每个人都和其他人互传一般也建立个共享库.

3.3 Git工作流程图

要点:我们只需要知道本地仓库 远程仓库就够了

四、Git安装与常用命令

git最初是为了管理Linux开发的,Git 本身不是 “基于 Linux 开发” 的 —— 它是一个独立的软件,也能在 Windows、Mac 上用。

4.1 Git环境配置

4.1.1 下载安装

下载地址:https://git-scm.com/download

下载完成后可以得到如下安装文件:

双击下载的安装文件来安装 Git。安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明 Git 安装成功。

备注:

Git GUI:Git 提供的图形界面工具

Git Bash:Git 提供的命令行工具

当安装 Git 后首先要做的事情是设置用户名称和 email 地址。这是非常重要的,因为每次 Git 提交都会使用该用户信息

4.1.2 基本配置

   1. 右键打开 Git Bash
   2. 设置用户信息(一定要配 不配会报错)

       git config --global user.name "你自己的名字 #错了再来一遍"
       git config --global user.email "你自己的邮箱@xxx.cn,#这个邮箱不要求必须存在的邮箱"

       查看配置信息

       git config --global user.name
       git config --global user.email

4.1.3 为常用指令配置别名(可选)

有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。

alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'


1.打开用户目录,创建 .bashrc 文件


部分 windows 系统不允许用户创建点号开头的文件,可以右键打开 gitBash, 执行 touch ~/.bashrc(也可以直接鼠标手动建立)

~用户的根目录(个人专属根/家目录)

cd ~:回到用户的根目录

touch ~/.xxx: 用户目录下创建.xxx文件

.当前( “现在待的文件夹”)

cd .:直接在当前目录(无意义)

cp a.txt ./某个文件夹/

..上一级目录

cd ..:

rm ../xxx.txt:

删除上一级目录里的 xxx.txt 文件

/系统根目录(所有目录的最顶层,类似 Windows 的 “此电脑”)cd /:进入系统根目录  

2. 在.bashrc文件中输入

# 用于输出 git 提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 用于输出当前目录所有文件及基本信息
alias ll='ls -al'

3.打开 gitBash,执行 source ~/.bashrc

4. 解决GitBash乱码问题

  1.打开gitbash执行

      git config --global core.quotepath false

 2.${git_home}/etc/bash.bashrc 安装目录文件最后加入下面两行
     export LANG="zh_CN.UTF-8"
     export LC_ALL="zh_CN.UTF-8"

4.1.4 获取本地仓库(开始实际操作)

要使用 Git 对我们的代码进行版本控制,首先需要获得本地仓库

1)在电脑的任意位置创建一个空目录(例如 test)作为我们的本地 Git 仓库

2)进入这个目录中,点击右键打开 Git bash 窗口

3)git仓库初始化: git init

4)如果创建成功后可在文件夹下看到隐藏的.git 目录。

4.1.5基础操作指令

Git 工作目录(test01)下对于文件的修改 (增加、删除、更新) 会存在几个状态,这些修改的状态会随着我们执行 Git 的命令而发生变化。

本章节主要讲解如何使用命令来控制这些状态之间的转换:

        1.git add (工作区 --> 暂存区)

        2.git commit (暂存区 --> 本地仓库)

       3. status   (文件状态)

      4. log   (提交记录)

1.文件提交到git创库(add / commit -m"")

2.文件修改(vi)

鼠标右键编辑也可以

3.文件版本回退(reset --hard )

第二次回退版本到第一次  如果失误清屏看不到第二次的id  版本找回

4.添加文件忽略列表

###文件案例练习###

#################### 仓库初始化 ####################
创建目录(git_test01)并在目录下打开 gitbash
略

1.初始化git仓库  # git init

.创建文件  # touch file01.txt

2.加入暂存区 # git add .

3.提交本地仓库,提交记录内容commit 001 # git commit --m 'commit 001'


.日志 # git log


#################### 修改文件并提交 ####################
1.修改文件内容 # vi file01.txt


2.加入暂存区 # git add .

3.提交本地仓库 # git commit --m 'update file01'

.日志 # git log

精简的方式显示提交记录 # git-log

#################### 将最后一次修改还原 ####################
1.日志 # git-log

2.找到倒数第 2 次提交的 commitID # git reflog


3.版本回退 # git reset commitID --hard

五、分支(branch)

查看分支(branch)

切换分支(checkout)

master分支开发:添加并提交了 .gitignore

dev01分支开发:添加一个文件 file02.txt  

情况各自分支开发互不影响:master分支没有file02.txt ,dev01分支没有.gitignore

合并分支(merge)

删掉分支影响观察  git  branch -d dev02

删除分支(brand/-d-D)

*解决分支冲突

虽然分支开发,但如果两个人 改了同一个文件同一行。master用谁的?

演示:dev分支上修改仓库文件

演示:master分支上修改仓库文件

查看冲突文件

修改冲突文件

合并

开发种分支使用原则与流程

###分支案例练习###

#################### 创建并切换到 dev01 分支,在 dev01 分支提交
[master] 创建分支 dev01
git branch dev01
[master] 切换到 dev01
git checkout dev01
[dev01] 创建文件 file02.txt
略
[dev01] 将修改加入暂存区并提交到仓库,提交记录内容为:add file02 on dev
git add .git commit -m 'add file02 on dev'
[dev01] 以精简的方式显示提交记录
git-log#################### 切换到 master 分支,将 dev01 合并到 master 分支
[dev01] 切换到 master 分支
git checkout master
[master] 合并 dev01 到 master 分支
git merge dev01
[master] 以精简的方式显示提交记录
git-log
[master] 查看文件变化 (目录下也出现了 file02.txt)
略#################### 删除 dev01 分支
[master] 删除 dev01 分支
git branch -d dev01
[master] 以精简的方式显示提交记录
git-log

分支合并快进模式说明(git智能的地方)

为git log命令创建一个别名git-log,并将一长串复杂的日志格式化命令绑定到这个别名上。

alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'

dev分支

提交前dev状态 dev  master都具备的。 dev与master只差了一个提交  dev全

master做的修改dev都有了 dev比master多一个

这个时候把dev合并master上面  没必要太麻烦  用一条命令合并(我也不给你合并 我就把master放到提交位置 在同一个地方   master和dev一模一样)

master合并

第二部分远程仓库

六、常用的托管服务(远程仓库)

  • GitHub:面向开源及私有软件项目的托管平台,仅支持 Git 版本库格式,地址https://github.com/。
  • 码云(Gitee):国内代码托管平台,服务器在国内,速度比 GitHub 快,地址https://gitee.com/。
  • GitLab:开源仓库管理系统项目,基于 Git 搭建 web 服务,常用于企业、学校内部搭建 Git 私服,地址https://about.gitlab.com/。

6.1 注册码云

要想使用码云远程仓库,需要注册账号(地址:https://gitee.com/signup)

6.2 创建远程仓库

6.4 配置SSH公钥

  • 生成 SSH 公钥
    • ssh-keygen -t rsa
    • 不断回车
      • 如果公钥已经存在,则自动覆盖
      • #密钥备份 mv ~/.ssh  ~/.ssh.bark2
  • Gitee 设置账户公钥
    • 查看公钥
      • cat ~/.ssh/id_rsa.pub

远程仓库复制本地仓库公钥

  • 验证是否配置成功
    • ssh -T git@gitee.com

6.5操作远程仓库

6.5.1 添加远程仓库

6.5.2 推送到远程仓库

正常推送git push 远端名称 本地分支名:远端分支名如 git push origin master:master

本地与远端分支

名相同

git push 远端名称 分支名如 git push origin master
推送并建立分支关联git push --set-upstream 远端名称 分支名如 git push --set-upstream origin master,后续可直接用 git push 推送
分支已关联git push直接推送当前分支到已关联的远端分支
强制覆盖远端分支git push -f 远端名称 分支名慎用,会强制覆盖远端分支内容

6.5.3 本地分支与远程分支关联关系

查看关联关系我们可以用  git branch -vv

6.5.4 从远程仓库拉取数据(clone)

如果已经有一个远端仓库,我们可以直接 clone 到本地。

  • 命令: git clone <仓库路径> [本地目录]
    • 本地目录可以省略,会自动生成一个目录

克隆对于同一个仓库只克隆一次到本地,后续操作。A提交推到仓库,B把提交更新到本地

就不需要克隆整个大文件。我们对于新增加的提交进行同步就可以了。

6.5.5 抓取和拉取

远程分支和本地的分支一样,我们可以进行 merge 操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。

  • 抓取 命令: git fetch [remote name] [branch name]
    • 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
    • 如果不指定远端名称和分支名,则抓取所有分支。
  • 拉取 命令: git pull [remote name] [branch name]
    • 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
    • 如果不指定远端名称和分支名,则抓取所有并更新当前分支。

1. 抓取(git fetch)

  • 操作逻辑:只会下载远端仓库的更新到本地,但不会自动合并到本地分支。相当于 “把远端的新内容‘拿’到本地,但先不与本地代码合并”。
  • 使用场景:如果你想先查看远端更新了什么内容,再决定是否合并,就用git fetch。例如:团队协作时,你想先看看同事提交了哪些代码,再判断是否要合并到自己的分支,避免直接合并导致冲突或代码逻辑问题。

2. 拉取(git pull)

  • 操作逻辑:等同于 git fetch + git merge,即先下载远端更新,再自动合并到本地当前分支。
  • 使用场景:如果你确定远端的更新可以直接合并到本地,且不需要先查看细节,就用git pull。例如:你自己的分支只有你在开发,远端的更新是你之前提交的,想快速把远端最新内容拉到本地继续开发,就可以用git pull。

总结:用哪个?

  • 想先审查远端更新,再手动合并 → 用 git fetch。
  • 想直接把远端更新合并到本地 → 用 git pull(更快捷)。

日常开发中,git pull 使用频率更高(因为它一步完成 “下载 + 合并”);但在多人协作、对代码合并比较谨慎的场景下,git fetch 会更稳妥。

。。。。。不往后看了,暂时不需要,也没多少内容了。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐