Git代码管理

目录:

  1. git环境配置        
  2. git工作流程
  3. git常用命令
  4. gitlab实战
  5. gitlog分析与检索
  6. 分支管理策略
  7. git合并与冲突

1.git环境配置        

Git 简介:

  • Git 是目前世界上最先进的分布式版本控制系统。
  • Git 优点:
    • 适合分布式开发,强调个体。
    • 公共服务器压力和数据量都不会太大。
    • 速度快、灵活。
    • 任意两个开发者之间可以很容易的解决冲突。
    • 离线工作。

Git 环境验证:

  • Windows:
    • cmd 中输入命令 git --version
  • MacOS:
    • 终端中输入命令 git --version

2.git工作流程

Git 基本概念:

  • 文件状态
    • 未跟踪(Untracked)
    • 未修改(Unmodified)
    • 已修改(Modified)
    • 暂存区(Staged)
  • 三个工作区域
    • 工作区(Working Directory)
    • 暂存区(Staging Area)
    • 仓库区(Repository)
  • 工作树(Worktree)

Git代码管理_第1张图片

Git 工作流程:

Git代码管理_第2张图片

3.git常用命令

基于 Git 的远程仓库:

  • GitHub        https://github.com/    世界上最主流的远程开源仓库。
  • Gitee           https://gitee.com/      国内目前比较主流的开源仓库,也可以私有化部署。(推荐)
  • GitLab         https://gitlab.com/      私有化部署,企业使用较多。

Git 同步命令:

克隆远程仓库:

  • git clone

       远程连接方式                       特点

  • HTTPS                                 连接使用给定 URL 即可 clone,在 push 时验证用户名和密码。
  • SSH 连接                             需要提前添加 SSH Key,在 push 时不需要输入用户名,配置                                         SSH 时设置了密码才需要输入密码。 

HTTPS 连接:

  • 配置全局帐号:
    • 配置用户名:git config --global user.name "your name"
    • 配置邮箱:git config --global user.email "[email protected]"
  • 验证配置结果:git config --global --list

SSH 连接:

Git代码管理_第3张图片

拉取远程仓库:

  • 拉取远程仓库到本地:
    • git pull

初始化仓库:

  • 在已存在的目录中初始化仓库:
    • git init
  • 关联远程仓库:
    • git remote add origin  

Git 修改命令:

跟踪新文件:

  • 添加文件或目录到暂存区:
    • git add /

# 跟踪某个文件

git add new_file.txt

# 跟踪当前目录下所有文件

git add . 

提交更新:

  • 提交到本地仓库:
    • git commit -m "comments"

推送到远程仓库:

  • 推送本地仓库到远程仓库:
    • git push

Git 常用调试命令:

检查当前文件状态:

  • 查看文件状态:
    • git status

查看已暂存和未暂存的修改:

  • 比较当前文件和暂存区域快照之间的差异:
    • git diff
  • 查看已暂存的将要添加到下次提交里的内容:
    • git diff --staged

撤销操作:

  • 撤销对文件的修改:
    • git checkout
  • 取消暂存:
    • git reset HEAD

cat readme.txt

1234

update1

update2

update3

git checkout readme.txt

cat readme.txt

1234

update1

update2

git reset HEAD file.txt

git status

On branch master

Untracked files:

         (use "git add ..." to include in what will be committed)

         file.txt

nothing added to commit but untracked files present (use "git add" to track) 

移除文件:

  • 删除文件:
    • git rm -f
  • 移出暂存区:
    • git rm --cached  

忽略文件:

  • .gitignore 文件。
  • 有些文件无需纳入 Git 的管理。
  • 比如日志文件,或者编译过程中创建的临时文件。

4.gitlab实战

GitLab 帐号:

  • 申请账号。
  • 申请权限。

配置公钥:

  1. 找到 id_rsa.pub,复制内容。
  2. GitLab -> 我的头像 -> Prefereces。
  3. SSH keys。
  4. 粘贴公钥,点击 add key。

Git代码管理_第4张图片

 Git代码管理_第5张图片

5.gitlog分析与检索

Git Log 分析:

  • 查看项目历史信息:
    • git log

Git Log 检索:

  • 筛选时间:
    • git log --since='2023-02-02 00:00:00'
  • 筛选作者:
    • git log --author='feier'
  • 筛选描述:
    • git log --grep='update'

6.分支管理策略

分支管理:

  • 概念:
    • 每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支。
  • 价值:
    • 多人协作。
    • 环境管理。

创建分支:

  • 新建分支,但仍然停留在当前分支:
    • git branch 分支名
  • 新建分支并直接切换至该分支:
    • git checkout -b 分支名

查看分支:

  • 列出所有本地分支:
    • git branch
  • 列出所有远程分支:
    • git branch -r
  • 列出所有本地与远程分支:
    • git branch -a

切换分支:

  • 切换到指定分支:
    • git checkout 分支名

删除分支:

  • 删除指定分支:
    • git branch -d 分支名

7.git合并与冲突

分支合并应用场景:

  • 合入主分支。
  • 主分支合并其他分支:
    • 通常使用 Merge Request 的方式。

合并分支:

  • 合并指定分支到当前分支:
    • git merge 其他分支 本分支
  • 变基:重新设置基准:
    • git rebase 其他分支

什么是冲突?

  • 冲突:在并行工作的模式下,工作最终会发生重叠。当多个成员以不同的方式更改同一行内容时,在这种情况下,Git 无法判断哪个版本是正确的,这时就会产生冲突。
  • 冲突场景:
    • 多个分支代码合并到一个分支时。
    • 多个分支向同一个远端分支推送代码时。

解决冲突:

  • 解决冲突方式:
    • IDE 中解决冲突:选择要保留的内容点击 Accept,保存代码。
    • 文件中解决冲突:保留需要的内容,删除其余内容,去掉分割线,保存代码。
  • 冲突解决流程:
    1. 在本地当前分支上,修改冲突内容。
    2. 执行 git add . 添加到暂存区。
    3. 执行 git commit -m '提交说明' 提交到本地仓库,完成合并。
    4. 执行 git push 提交到远程仓库。

你可能感兴趣的:(Git,git)