【Git】跟着来一遍,你差不多就该明白git了

本文档详细记录了使用Git进行初始化仓库、自动化部署、分支管理(包括develop分支和feature分支)以及解决合并冲突的过程。通过创建批处理文件实现commit-msg钩子,确保提交信息遵循规范。同时,介绍了如何添加和管理git标签,以及如何将本地更改推送到远程仓库。
摘要由CSDN通过智能技术生成

本文档用于记录git命令及其结果

期间每执行一步就会在本文档记录,通过编写本文档以及使用git+show log tag status命令可以帮你更快了解git的工作原理。

初始化仓库

mkdir git_repost_test
cd git_repost_test
git init # 初始化文件
git remote add origin git@gitee.com:fole-del/git-command-test-project.git #与远程仓库连接
git pull --allow-unrelated-histories origin master # 从远程仓库拉文件初始化本地仓,本地仓=本地仓+远程仓
git commit -m "fix(fole-del):添加了log记录文档"
git tag V1.0 # 添加标签V1.0

自动化部署

mkdir setting #添加setting文件夹
cd setting #切换到setting文件夹
touch autoHooks.bat #添加批处理文件,可以使用vim编辑
vi autoHooks.bat
---------------------------- # 添加框内代码到autoHooks.bat
@echo off
set "curDir=%cd%"
echo -------------------------------
set "curDir=%curDir:setting=%"

set source=%cd%\commit-msg.sample
set dest=%curDir%.git\hooks\commit-msg
echo %source%
echo %dest%
copy "%source%" "%dest%"

echo -------------------------------

----------------------------

touch commit-msg #创建commit-msg文件

----------------------------- # 添加框内文件到commit-msg
#!/bin/bash
#!/bin/bash
MSG=`awk '{printf("%s",$0)}' $1`
if [[ $MSG =~ ^(feat|fix|test|refactor|docs|style|chroe)\(.*\):.*$ ]]
then
	echo -e "\033[32m commit success! \033[0m"
else
    echo -e "\033[31m Error: the commit message is irregular \033[m"
	  echo -e "\033[31m Error: type must be one of [feat,fix,docs,style,refactor,test,chore] \033[m"
    echo -e "\033[31m eg: feat(文件): add the user login \033[m"
	exit 1
fi
-----------------------------

./autoHooks.bat # 执行批处理命令

git tag V1.01 # 因为配置了部署,加一个标签

使用develop分支开发

Git分支管理策略 develop分支_黄昏的大树-CSDN博客

关于develop分支的介绍可以看上述链接的博客。

git checkout -b develop master # 从master分支创建develop分支并切换到develop分支
cd .. # 退到上一级
git add * # 把刚才创建的setting文件夹以及随时更改的本文档(log.md)添加到缓存区
git status # 查看本地仓库  该命令用于查看在你上次提交之后是否有对文件进行再次修改
git tags "setting" # 添加setting标签
git commit -m "fix(setting):自动化部署"
---------------------------------------------------
# 接下里合并develop分支到mastter分支
git checkout master #切换到master分支,此时文档变为创建develop分支时的状态
git merge --no-ff develop #此时应该会看到提示,并且log.md文档内容修改为你刚才在develop分支最后保存的状态
git push # 提交到远程仓库
git push origin --tags # 将本地的所有标签一次性提交到远程仓库

仓库概况

标签页面

使用feature分支

关于feature分支不明白的可以看这篇文章柳暗花明又一村

之后的命令就会减少注释了,不懂得可以自己查阅

git checkout develop
git checkout -b feature-sayHello develop
touch main.cpp
vi main.cpp	 # 随便写点什么都行
git add main.pp
git tag V1.02
# 删除分支
git branch -D develop
# 删除远程分支
git branch --delete develop

git merge

feat分支的main.cpp文件中添加一段代码:

int intConflit(){
	cout << "conflict testing";
	return 1;
}

写完保存,然后执行git命令提交本次修改:

git add *
git commit -m "merge test --conflit"
git checkout master

切换到master分支后也修改main.cpp文件,随便增加一个函数

void testConflict(){
	cout << "测试conflict" << endl;
	cout << "这里是增加了一行代码" << endl;
}

然后也提交本次修改,再执行merge,来看一下main.cpp发生了什么变化:

feat分支master分支的修改合并了HEAD下之后等号之前显示当前分支代码的改变,feat之前等号之后显示的分支改变合并到当前分支的内容。

changed of main

GitLens

  1. Current change

Current change

  1. Incoming change

Incoming change

  1. Both change

Both change

  1. compare change

compare change

提交标签

git push origin v1.02
# 提交所有标签👇
git push origin tags
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧恩意

如有帮助,感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值