0
点赞
收藏
分享

微信扫一扫

关于Git

Git

1.1 概述

Git是一个开源的分布式版本控制系统,可以快速、高效地处理任何大小的项目。

**版本控制:**跟踪和管理软件代码变更,以便将来查阅特定版本修订情况。最重要的是可以记录文件修改历史,从而让用户能够查看历史版本。

1.2 集中式版本控制 VS 分布式版本控制

集中式:有一个单一的集中管理的服务器,保存所有文件的修订版本,协同工作的人都通过客户端连接到这台服务器,取出最新文件或者提交更新

**缺点:**中央服务器的单点故障,服务器损坏,都无法区文件和更新

关于Git_git

**分布式:**个人电脑就是一个库,在自己的库里做版本控制,再提交到远程库,又称代码托管中心(如GitHub)

**优点:**服务器断网也能开发(版本控制在本地运行);每个客户端保存的是整个完整的项目

关于Git_服务器_02

1.3 Git工作机制

关于Git_服务器_03

版本库👉.git

  • 当我们使用git管理文件时,比如git init时,这个时候,会多一个.git文件,我们把这个文件称之为版本库。
  • .git文件另外一个作用就是它在创建的时候,会自动创建master分支,并且将HEAD指针指向master分支。

工作区

  • 本地项目存放文件的位置
  • 可以理解成图上的workspace

暂存区 (Index/Stage)

  • 顾名思义就是暂时存放文件的地方,通过是通过add命令将工作区的文件添加到缓冲区

本地仓库(Repository)

  • 通常情况下,我们使用commit命令可以将暂存区的文件添加到本地仓库
  • 通常而言,HEAD指针指向的就是master分支

远程仓库(Remote)

  • 举个例子,当我们使用GitHub托管我们项目时,它就是一个远程仓库。
  • 通常我们使用clone命令将远程仓库代码拷贝下来,本地代码更新后,通过push托送给远程仓库。

1.4 Git 常用命令

配置命令

git config --list	# 列出当前配置
git config --local --list	# 列出repository配置
git config --global --list	# 列出全局配置
git config --system --list	# 列出系统配置

git config --global user.name Lowell	# 设置用户签名
git config --global user.email xxx@xxx.com	# 设置用户邮箱

Git首次安装必须设置用户签名,否则无法提交代码

git init	# 初始化本地库

git status	# 查询状态

git add <file>	# 添加至暂存区

git commit -m "first commit(版本信息)" <file>	# 提交到本地库

git reflog	# 查看版本信息

git log	# 查看版本详细信息

git reset <版本号>	# 版本穿越

红色代表未追踪到文件,绿色代表Git追踪到了文件,但是还存在暂存区,依旧可以被删除

在本地库的内存中,存有你每次提交的文件的日志信息,版本穿越其实就是通过修改head所指向的分支的指针,指向你需要的版本的地址

1.5 Git分支操作

概述

Git分支是指向提交对象的可变指针。Git的默认分支名字是master。在多次提交操作之后,已经有一个指向最后那个提交对象的master分支。master分支会在每次提交时自动向前移动

优点

同时并行推进多个功能开发,提高开发效率。各个分支在开发过程中,如果某一个分支开发失败,不会影响其他分支。

分支命令

git branch -v	# 查看本地分支
git branch -r	# 查看远程分支
git branch -a	# 查看本地和远程分支

git branch <name>	# 创建分支
git checkout <name>	# 从当前分支切换其他分支
git merge <name>    # 将指定分支合并到当前分支
git branch -m <oldname> <newname>	# 重命名分支

git branch -d <name>	# 删除分支
git push origin -d <name>	# 删除远程分支

git branch --merged	# 查看有哪些分支已经合并到了当前分支
git branch --no-merged	# 查看有哪些分支没有合并到当前分支

合并分支产生代码冲突的原因

  • 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法决定使用哪一个,必须人为决定

(master | MERGING)正在合并中,未成功

切换分支的本质就是移动HEAD指针

Github 操作

git remote -v	// 查看当前所有远程别名
git remote add <name> 远程库url	// 创建远程仓库别名
git push 别名/url 分支		// 将本地库
git pull 别名/url 分支
git clone url	// 将文件从远程库拉取代码,初始化本地库,创建别名
fork // 将文件从别人的远程库拉到自己的远程库

举报

相关推荐

关于git的整理

关于git的操作

关于git约定式提交IDEA

干货:关于Git的超赞讲解

关于git、gitlab、jenkins你知道多少?

git中关于用户信息的命令

0 条评论