git实操教程

一基础概念
在这里插入图片描述
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

1.1master分支
master分支时随时在生成环境可用的分支,只有研发经理有权对其做操作。
1.2分支和标签(tag)
可在一个分支上编辑并提交代码,但不能在tag上提交代码,即tag不能被修改,只能作为某个历史版本的留存,所以应该保证tag随时可用,应该基于master打tag。
二Git操作
2.1合并分支
要合并到哪个分支,就应该先切换到哪个分支。
2.2码云(gitee.com)上创建远端仓库
Gitee(码云)是一款企业级 DevOps 研发管理平台。其地址:https://gitee.com/
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
2.3使用SSH操作git
比使用https更安全的是SSH的方式。SSH使用RSA非对称加密,比Https要更加安全,但是需要额外的一些配置,如下:
首先,要生成公钥私钥对:
在这里插入图片描述

将id_rsa.pub的文件内容配置到远程仓库中:
在这里插入图片描述

在克隆远程仓库之前,需要先修改TortoiseGit的ssh程序:
进入TortoiseGit的设置菜单:
在这里插入图片描述

到git的安装目录下,找到ssh.exe,如下图:
在这里插入图片描述

然后就可以克隆远程仓库了:在要克隆的目录中右键单击鼠标,选“Git克隆”。
2.4使用命令行操作git
2.4.1设置全局配置
鼠标右键后打开“Git Bash Here”设置操作的用户名和邮箱:
git config --global user.name “用户名”
git config --global user.email “邮箱”
查看设置的内容:git config user.name
查看所有配置项:git config --list
配置的内容保存在如下文件里:C:\Users\wzt75.gitconfig
.gitconfig文件内容示例如下:
[core]
hooksPath = F:/setup/git/git-acl-master/git_template
compression = -1
[user]
email = wzt7576@163.com
name = wzt7576
[pack]
windowMemory = 100m
SizeLimit = 100m
threads = 1
window = 0
[http]
sslVerify = false
[credential]
helper = store
上述内容中,hooksPath 配置的是提交文件时的注释格式校验规则。
2.4.2创建本地仓库
初始化仓库(带工作区):git init 一般在本地创建
初始化仓库(不带工作区):git init --bare 一般是在远程创建。
2.4.3克隆远程仓库
git clone https或SSH地址
克隆是将远程仓库的所有分支都下载到本地仓库,但是默认只有远程的master分支会自动在本地仓库创建本地的master分支名,其他的需要切换分支(git checkout <远程分支名>)才会在本地仓库创建本地分支名。
2.4.4查看文件状态
文件状态讲解,总体有2种状态:未跟踪和已跟踪。
1.untracked 未跟踪:未加入版本控制
2.tracked 已跟踪:已加入版本控制
2.1Staged 已暂存状态:添加到暂存区,但未提交到本地仓库
2.2Unmodified 未被修改状态:已提交后还没修改过。
2.3Modified 已修改状态:修改后还未提交
查看命令:
git status
git status -s
未被修改状态的文件 用命令查看时不会被显示出来。
2.4.5加入暂存区&取消暂存
git add 文件名
git reset 文件名
2.4.6提交文件
git commit -m “注释” [文件名可选]
2.4.7从工作区删除文件和回退文件
rm 文件名
git checkout 文件名 从暂存区回退文件内容到工作区
git checkout head 文件名 从本地仓库回退文件内容到暂存区,再到工作区。
2.4.8操作远程仓库
查看:
git remote -v
git remote show 仓库简称
添加本地仓库关联的远程仓库:git remote add
删除本地仓库到远程仓库的关联:git remote rm
2.4.9从远程仓库获取代码
1.对于没有本地仓库的情况,直接克隆远程仓库:git clone https或SSH地址
2.对于已有本地仓库的情况,先fetch,再merge:
step1. 首先查看一下本地仓库的对远程仓库的链接:
git remote -v
step2. 如果没有关联远程仓库,必须要创建远程仓库的关联:
git remote add
step3 . git fetch <本地仓库到远程仓库的关联名> <远程仓库的分支名>
step4. 把某个远程仓库的某个分支合并到当前工作区:
git merge <本地仓库到远程仓库的关联名> <远程仓库的分支名>
3.对于已有本地仓库的情况,可以使用pull来代替fetch和merge:
step1. 首先查看一下本地仓库的对远程仓库的链接:
git remote -v
step2. 如果没有关联远程仓库,必须要创建远程仓库的关联:
git remote add
step3. 把某个远程仓库的某个分支拉取到当前工作区:
git pull <本地仓库到远程仓库的关联名> <远程仓库的分支名>
强制拉取合并:
git pull <本地仓库到远程仓库的关联名> <远程仓库的分支名>
–allow-unrelated-histories
2.4.10推送到远程仓库
step1. 查看文件状态 git status -s
step2. 如果有未提交的文件,先提交到本地仓库:git commit -m “备注” [文件名可选]
step3. git push <本地仓库到远程仓库的关联名> <远程仓库的分支名>
2.4.11分支操作
查看本地分支:git branch (带*表示是当前的分支)
查看远程分支:git branch -r
查看所有分支:git branch -a
基于当前分支内容创建本地新分支:git branch <分支名>
切换分支:git checkout <分支名>
删除本地分支:git branch -d <分支名> 如果要删除的分支是当前分支则不允许删除。
强制删除本地分支:git branch -D <分支名>
2.4.12在本地合并分支
要和并到哪个分支就应该先切换到哪个分支(先切换成要合并到的分支):
git checkout master
将<分支名>合并到master分支:git merge <分支名>
2.4.13将分支推送到远程仓库
git push <本地仓库到远程仓库的关联名> <本地仓库中的分支名> (远程仓库中会默认以本地分支名新建一个远程分支)
2.4.14处理冲突
在合并分支时有可能发生冲突,先看准发生冲突的文件:
在这里插入图片描述

再修改这个文件的内容:
在这里插入图片描述

修改成
在这里插入图片描述

然后要标记冲突已经被解决:git add user.txt
最后提交:git commit
2.4.15删除远程仓库的分支
git push <本地仓库到远程仓库的关联名> -d <远程仓库的分支名>
2.4.16操作tag
查看所有标签:git tag
基于当前分支打tag:git tag [tagName]
查看某个分支的详细信息:git show [tagName]
删除本地tag:git tag -d [tagName]
删除远程仓库中的tag:git push <本地仓库到远程仓库的关联名> :refs/tags/[tagName]
2.4.17推送某个tag到远程仓库
git push <本地仓库到远程仓库的关联名> <本地仓库中的tag名> (远程仓库中会默认以本地tag名新建一个远程tag)
2.4.18基于某个tag创建一个分支
由于tag中的代码是不能提交的,所以要想修改代码并提交必须创建一个基于tag的分支,然后再针对此分支操作:
创建并自动切换到新分支:git checkout -b [分支名] [tagName]

三实际工作中的分支使用流程
每个公司的分支和分支使用流程不尽相同,但基本包括以下几个分支和:
3.1分支示例
master 主分支 随时可用的
develop 开发分支 用于将开发测试通过的各个需求的分支合并到此分支进行验证整体需求功能。只有研发经理有权向远程仓库推送develop分支,其他开发人员只能拉取develop分支,但不能推送。
feature 需求开发分支 分配给每个开发人员的子需求的开发分支
test 测试分支 用于将feature合并到的此并让测试人员测试的分支
hotfix 线上bug临时处理分支,从master上拉取,修改后合并到master。
3.2分支操作流程示例
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wztima

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值