Git使用

1 版本控制

版本控制(Version Control)是一种用于管理和跟踪文件或代码的变化历史的系统。它使得多人协作开发变得更加高效,同时也提供了一种备份和恢复文件的方式。版本控制可以追踪每个文件的修改,记录修改的作者、时间和内容,并且能够方便地回退到历史版本或者将不同版本进行合并。

2 版本控制工具

版本控制工具(Version Control Tools)是用于实施版本控制的软件工具或平台。它们提供了一系列命令行或图形界面的功能,帮助用户管理文件的版本。

2.1 Git(分布式版本控制)

Git 是目前最流行的分布式版本控制系统。它是由Linus Torvalds为了管理Linux内核开发而创建的。Git 可以跟踪文件的每个修改,并将这些修改保存为一个称为“提交”的快照。它具有强大的分支和合并功能,可以支持大规模的多人协作开发。
在这里插入图片描述

2.2 SVN(集中式版本控制)

SVN(Subversion) 是一种集中式版本控制系统,与Git相比,它的工作方式略有不同。SVN 使用一个集中的服务器存储所有的文件版本,并且用户需要通过网络连接到服务器才能进行版本控制操作。再者,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。SVN 提供了类似于Git的基本功能,如版本回退、分支和合并等。
在这里插入图片描述

3 Git

3.1 Git基本理论

首先,Git和Linux是同一个人开发的,故在Git Bash中可以使用linux命令。
Git Bash中复制快捷键:ctrl + insert,粘贴快捷键:shift + insert。
Git一共有四个工作区域。三个本地工作区域:工作区(Workspace)、暂存区(Stage / Index)、资源库(Repository / Git Directory)。一个远程工作区域:远程git仓库(Remote Directory)。

  • Workspace:工作区,就是平时存放项目代码的地方。
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
  • Remote Directory:远程仓库,托管代码的服务器,如Github、Gitee等平台。

文件在这四个区域之间的转换关系如下:
在这里插入图片描述

3.2 Git配置命令(配置一次即可)

配置完一次后就不需要再配置了。
查看Git配置文件(都在本地)。这部分命令不重要

# 查看所有配置文件
git config -l
# 查看系统配置文件
git config --system --list
# 查看当前用户配置文件
git config --global --list

Git相关的配置文件的具体位置:

  • 系统配置文件:D:\Git\etc.gitconfig
  • 用户配置文件:C:\Users\Administrator.gitconfig

可以直接编辑配置文件,通过命令设置后会响应到这里。为了以后能够更好地进行协同开发,标识自己的身份,需要对用户配置文件的用户名和密码(邮箱)进行配置,否则不能上传代码。这部分命令重要

git config --global user.name "jundong.yao"  # 用户名
git config --global user.email "jundong2000@126.com"  # 邮箱

配置完成后即可发现用户配置文件中出现了用户名和邮箱。
在这里插入图片描述

3.3 Git常用命令(创建项目)

windows系统需要手动进入项目目录中,右键点击“Git Bash Here”,之后执行以下操作:

# 设置用户签名
git config --global user.name 用户名
# 设置用户签名
git config --global user.email 邮箱
# 初始化本地库
git init
# 查看本地库状态
git status
# 添加到暂存区
git add 文件名
# 提交到本地库
git commit -m "日志信息" 文件名
# 删除commit
# 查看简洁历史记录
git reflog
# 查看详细历史记录
git log
# 版本穿梭
git reset --hard 版本号
# 清理暂存区
git reset

如果对整个项目提交:

git add .
git commit -m '日志信息' 

如果只提交某个文件

git add hello.txt  #文件名
git commit -m "日志信息" hello.txt  # 文件名

忽略文件.gitignore文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,日志文件等,则可以在本地文件的主目录下创建".gitignore"文件。
Python以及其他语言的建议".gitignore"文件以下链接已给出,可以直接用:
https://github.com/github/gitignore/blob/main/Python.gitignore

3.4 Git分支命令

分支在公司中很重要。在公司中服务器分为多套服务器开发环境测试环境生产环境),比如说开发人员在开发环境中开发,用户在生产环境中使用。因此,在版本控制过程中,需要同时推进多个任务,为每一个任务可以单独创建一个分支。对于开发人员来说,分支可以把自己的工作从主线上分离开来,开发自己分支的时候不影响主线分支的运行。分支也是和版本号一样,通过指针引用来实现的。

分支的好处

  • 同时推进多个功能开发,提高开发效率。
  • 分支之间没有依赖关系,互不影响,其中一个分支开发失败不会对其他分支产生任何影响。
# 创建分支
git branch 分支名
# 查看分支
git branch -v
# 切换分支
git checkout 分支名
# 把指定分支合并到当前分支上
git merge 分支名

合并分支说明:如果想把hot-fix分支合并到master分支上,(也就是要把hot-fix分支的代码合并到master分支上)必须处于master分支上,执行下面的命令:

git merge hot-fix

合并时还可能产生冲突
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法替我们决定使用哪一个,必须人为决定新的代码。

# 首先进入提示中的出现冲突的文件中
# 对冲突的部分进行手动修改成自己想要的部分
# 修改后还要提交代码到本地仓库
git add hello.txt
git commit -m "merge test"  # 注意这里不要加文件名hello.txt,直接选择省略

3.5 Git团队协作(远程仓库)

需要用到代码托管中心,即远程仓库(github, gitee, gitlab),本博客以gitee为例来讲。
分为两种情况

  • 团队内协作
  • 跨团队协作(略)
3.5.1 SSH免密登录

首先需要设置本机绑定SSH公钥,实现免密登录!(挺重要,方便,只需设置一次)

# 进入 C:\Users\Administrator\.ssh 目录
# 生成公钥
ssh-keygen -t rsa  # 加密算法

执行完上述命令后,打开目录C:\Users\Administrator.ssh下的的"id_rsa.pub"(公钥)文件,将公钥信息 public key 字符串复制下。然后粘贴到自己github/gitee账户中设置中的SSH选项中即可。
github:
在这里插入图片描述
gitee:
在这里插入图片描述

3.5.2 创建远程仓库(github, gitee)

之后便是创建一个自己的远程仓库,假设仓库网址为:https://gitee.com/yaojundong/dev_test.git
远程仓库命令:

# 查看当前所有远程地址别名
git remote -v
# 给远程仓库起别名
git remote add 别名 远程地址
# 修改远程仓库别名
git remote rename 原始仓库名 新仓库名
# 删除远程仓库
git remote rm origin  # 别名
# 推送本地分支上的内容到远程仓库(可以用来创建新的远程分支)
git push 远程仓库地址别名 本地仓库分支名(:远程分支名)
# 将远程仓库的内容克隆到本地
git clone 远程仓库地址
# 将远程仓库对于分支最新的内容拉取下来,后与当前本地分支直接合并
git pull 远程仓库地址别名 远程仓库分支名(:本地分支名)
git pull origin master --allow-unrelated-histories  # 第一个pull可能要这样

克隆所做的三件事:

  • 复制代码到本地
  • 初始化项目
  • 直接创建别名(默认是origin)

推送相关设置

# 将本地分支与远程分支进行关联,建立跟踪关系(后续就不用添加本地仓库分支名了,但是只能是push设置)
git push -u 别名 本地仓库分支名
# 强制推送,覆盖远程仓库中的同名分支
git push -f 别名 本地仓库分支名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值